Browse code

LLVM: don't assert on AVX chips (cherry-pick from upstream), bb #2763

LLVM was claiming it cannot lower MEMBARRIER on chips with AVX, because
some debugging code was left behind that deactivated SSE2, even though these
chips do have SSE2.
Also regenerate the codegen tables.

Author: Nate Begeman <natebegeman@mac.com>
Date: Fri Dec 3 21:54:14 2010 +0000

Remove SSE1-4 disable when AVX is enabled. While this may be useful for development,
it completely breaks scalar fp in xmm regs when AVX is enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120843 91177308-0d34-0410-b5e6-96231b3b80d8

Török Edvin authored on 2011/05/04 19:58:55
Showing 5 changed files
... ...
@@ -1,3 +1,8 @@
1
+Wed May  4 14:07:12 EEST 2011 (edwin)
2
+-------------------------------------
3
+ * libclamav/c++/llvm/lib/Target/X86/X86InstrInfo.td: bb #2763
4
+ don't assert on AVX chips (Intel Core i5 and i7)
5
+
1 6
 Tue May  3 22:52:04 PDT 2011 (tk)
2 7
 ---------------------------------
3 8
  * sigtool: properly normalize html files (bb#2764)
... ...
@@ -1371,6 +1371,24 @@ SDNode *SelectCode(SDNode *N) {
1371 1371
               OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDARX), 0|OPFL_Chain,
1372 1372
                   1, MVT::i64, 2, 2, 3, 
1373 1373
             0, 
1374
+          40,  TARGET_OPCODE(PPCISD::STCX),
1375
+            OPC_RecordNode,
1376
+            OPC_RecordChild1,
1377
+            OPC_Scope, 17, 
1378
+              OPC_CheckChild1Type, MVT::i32,
1379
+              OPC_RecordChild2,
1380
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
1381
+              OPC_EmitMergeInputChains1_0,
1382
+              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWCX), 0|OPFL_Chain,
1383
+                  1, MVT::i32, 3, 1, 3, 4, 
1384
+            17, 
1385
+              OPC_CheckChild1Type, MVT::i64,
1386
+              OPC_RecordChild2,
1387
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
1388
+              OPC_EmitMergeInputChains1_0,
1389
+              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDCX), 0|OPFL_Chain,
1390
+                  1, MVT::i32, 3, 1, 3, 4, 
1391
+            0, 
1374 1392
           40,  TARGET_OPCODE(PPCISD::LBRX),
1375 1393
             OPC_RecordNode,
1376 1394
             OPC_RecordChild1,
... ...
@@ -1390,6 +1408,34 @@ SDNode *SelectCode(SDNode *N) {
1390 1390
               OPC_MorphNodeTo, TARGET_OPCODE(PPC::LWBRX), 0|OPFL_Chain,
1391 1391
                   1, MVT::i32, 2, 2, 3, 
1392 1392
             0, 
1393
+          41,  TARGET_OPCODE(PPCISD::STBRX),
1394
+            OPC_RecordNode,
1395
+            OPC_RecordChild1,
1396
+            OPC_RecordChild2,
1397
+            OPC_MoveChild, 3,
1398
+            OPC_Scope, 16, 
1399
+              OPC_CheckValueType, MVT::i16,
1400
+              OPC_MoveParent,
1401
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
1402
+              OPC_EmitMergeInputChains1_0,
1403
+              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STHBRX), 0|OPFL_Chain,
1404
+                  0, 3, 1, 3, 4, 
1405
+            16, 
1406
+              OPC_CheckValueType, MVT::i32,
1407
+              OPC_MoveParent,
1408
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
1409
+              OPC_EmitMergeInputChains1_0,
1410
+              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STWBRX), 0|OPFL_Chain,
1411
+                  0, 3, 1, 3, 4, 
1412
+            0, 
1413
+          16,  TARGET_OPCODE(PPCISD::STFIWX),
1414
+            OPC_RecordNode,
1415
+            OPC_RecordChild1,
1416
+            OPC_RecordChild2,
1417
+            OPC_CheckComplexPat, /*CP*/0, /*#*/2,
1418
+            OPC_EmitMergeInputChains1_0,
1419
+            OPC_MorphNodeTo, TARGET_OPCODE(PPC::STFIWX), 0|OPFL_Chain,
1420
+                0, 3, 1, 3, 4, 
1393 1421
           37,  TARGET_OPCODE(PPCISD::LOAD),
1394 1422
             OPC_RecordNode,
1395 1423
             OPC_CaptureFlagInput,
... ...
@@ -1407,6 +1453,22 @@ SDNode *SelectCode(SDNode *N) {
1407 1407
               OPC_MorphNodeTo, TARGET_OPCODE(PPC::LDX), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
1408 1408
                   1, MVT::i64, 2, 2, 3, 
1409 1409
             0, 
1410
+          35,  TARGET_OPCODE(PPCISD::STD_32),
1411
+            OPC_RecordNode,
1412
+            OPC_RecordChild1,
1413
+            OPC_CheckChild1Type, MVT::i32,
1414
+            OPC_RecordChild2,
1415
+            OPC_Scope, 13, 
1416
+              OPC_CheckComplexPat, /*CP*/3, /*#*/2,
1417
+              OPC_EmitMergeInputChains1_0,
1418
+              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STD_32), 0|OPFL_Chain,
1419
+                  0, 3, 1, 3, 4, 
1420
+            13, 
1421
+              OPC_CheckComplexPat, /*CP*/2, /*#*/2,
1422
+              OPC_EmitMergeInputChains1_0,
1423
+              OPC_MorphNodeTo, TARGET_OPCODE(PPC::STDX_32), 0|OPFL_Chain,
1424
+                  0, 3, 1, 3, 4, 
1425
+            0, 
1410 1426
           84|128,4,  TARGET_OPCODE(ISD::XOR),
1411 1427
             OPC_Scope, 39|128,1, 
1412 1428
               OPC_MoveChild, 0,
... ...
@@ -3721,68 +3783,6 @@ SDNode *SelectCode(SDNode *N) {
3721 3721
               OPC_MorphNodeTo, TARGET_OPCODE(PPC::VNMSUBFP), 0,
3722 3722
                   1, MVT::v4f32, 3, 0, 1, 2, 
3723 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 3724
           26,  TARGET_OPCODE(ISD::CALLSEQ_END),
3787 3725
             OPC_RecordNode,
3788 3726
             OPC_CaptureFlagInput,
... ...
@@ -4367,6 +4367,13 @@ SDNode *SelectCode(SDNode *N) {
4367 4367
 
4368 4368
               0, 
4369 4369
             0, 
4370
+          15,  TARGET_OPCODE(PPCISD::VPERM),
4371
+            OPC_RecordChild0,
4372
+            OPC_RecordChild1,
4373
+            OPC_RecordChild2,
4374
+            OPC_CheckType, MVT::v16i8,
4375
+            OPC_MorphNodeTo, TARGET_OPCODE(PPC::VPERM), 0,
4376
+                1, MVT::v16i8, 3, 0, 1, 2, 
4370 4377
           17,  TARGET_OPCODE(PPCISD::RET_FLAG),
4371 4378
             OPC_RecordNode,
4372 4379
             OPC_CaptureFlagInput,
... ...
@@ -4432,13 +4439,6 @@ SDNode *SelectCode(SDNode *N) {
4432 4432
               OPC_MorphNodeTo, TARGET_OPCODE(PPC::MTCTR8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
4433 4433
                   1, MVT::i64, 1, 1, 
4434 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 4435
           15,  TARGET_OPCODE(PPCISD::VMADDFP),
4443 4436
             OPC_RecordChild0,
4444 4437
             OPC_RecordChild1,
... ...
@@ -5115,6 +5115,1962 @@ SDNode *SelectCode(SDNode *N) {
5115 5115
                     0, 6, 3, 4, 5, 6, 7, 1, 
5116 5116
               0, 
5117 5117
             0, 
5118
+          120|128,33,  TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
5119
+            OPC_Scope, 76, 
5120
+              OPC_MoveChild, 0,
5121
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
5122
+              OPC_MoveChild, 0,
5123
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5124
+              OPC_RecordMemRef,
5125
+              OPC_RecordNode,
5126
+              OPC_CheckFoldableChainNode,
5127
+              OPC_RecordChild1,
5128
+              OPC_CheckPredicate, 2,
5129
+              OPC_CheckPredicate, 3,
5130
+              OPC_CheckPredicate, 19,
5131
+              OPC_CheckType, MVT::v2i64,
5132
+              OPC_MoveParent,
5133
+              OPC_MoveParent,
5134
+              OPC_MoveChild, 1,
5135
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5136
+              OPC_MoveParent,
5137
+              OPC_CheckType, MVT::v4i32,
5138
+              OPC_Scope, 20, 
5139
+                OPC_CheckPredicate, 20,
5140
+                OPC_CheckPatternPredicate, 10,
5141
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
5142
+                OPC_EmitMergeInputChains1_0,
5143
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
5144
+                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
5145
+              20, 
5146
+                OPC_CheckPredicate, 21,
5147
+                OPC_CheckPatternPredicate, 10,
5148
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
5149
+                OPC_EmitMergeInputChains1_0,
5150
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
5151
+                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
5152
+              0, 
5153
+            57, 
5154
+              OPC_RecordChild0,
5155
+              OPC_MoveChild, 1,
5156
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5157
+              OPC_RecordMemRef,
5158
+              OPC_RecordNode,
5159
+              OPC_CheckFoldableChainNode,
5160
+              OPC_RecordChild1,
5161
+              OPC_CheckPredicate, 2,
5162
+              OPC_CheckPredicate, 3,
5163
+              OPC_MoveParent,
5164
+              OPC_CheckPredicate, 11,
5165
+              OPC_SwitchType , 17,  MVT::v4i32,
5166
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5167
+                OPC_EmitMergeInputChains1_1,
5168
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
5169
+                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
5170
+              17,  MVT::v2i64,
5171
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5172
+                OPC_EmitMergeInputChains1_1,
5173
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
5174
+                    1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
5175
+              0, 
5176
+            83, 
5177
+              OPC_RecordNode,
5178
+              OPC_MoveChild, 0,
5179
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
5180
+              OPC_MoveChild, 0,
5181
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5182
+              OPC_RecordMemRef,
5183
+              OPC_RecordNode,
5184
+              OPC_CheckFoldableChainNode,
5185
+              OPC_RecordChild1,
5186
+              OPC_CheckPredicate, 2,
5187
+              OPC_CheckPredicate, 3,
5188
+              OPC_CheckPredicate, 19,
5189
+              OPC_CheckType, MVT::v2i64,
5190
+              OPC_MoveParent,
5191
+              OPC_MoveParent,
5192
+              OPC_MoveChild, 1,
5193
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5194
+              OPC_MoveParent,
5195
+              OPC_CheckPredicate, 22,
5196
+              OPC_CheckType, MVT::v4i32,
5197
+              OPC_Scope, 22, 
5198
+                OPC_CheckPatternPredicate, 0,
5199
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5200
+                OPC_EmitMergeInputChains1_1,
5201
+                OPC_EmitNodeXForm, 0, 0,
5202
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
5203
+                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
5204
+              22, 
5205
+                OPC_CheckPatternPredicate, 2,
5206
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5207
+                OPC_EmitMergeInputChains1_1,
5208
+                OPC_EmitNodeXForm, 0, 0,
5209
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
5210
+                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
5211
+              0, 
5212
+            96, 
5213
+              OPC_MoveChild, 0,
5214
+              OPC_SwitchOpcode , 47,  TARGET_OPCODE(ISD::BIT_CONVERT),
5215
+                OPC_MoveChild, 0,
5216
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5217
+                OPC_RecordMemRef,
5218
+                OPC_RecordNode,
5219
+                OPC_CheckFoldableChainNode,
5220
+                OPC_RecordChild1,
5221
+                OPC_CheckPredicate, 2,
5222
+                OPC_CheckPredicate, 3,
5223
+                OPC_CheckPredicate, 19,
5224
+                OPC_CheckType, MVT::v2i64,
5225
+                OPC_MoveParent,
5226
+                OPC_MoveParent,
5227
+                OPC_MoveChild, 1,
5228
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5229
+                OPC_MoveParent,
5230
+                OPC_CheckPredicate, 23,
5231
+                OPC_CheckType, MVT::v4i32,
5232
+                OPC_CheckPatternPredicate, 10,
5233
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
5234
+                OPC_EmitMergeInputChains1_0,
5235
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
5236
+                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
5237
+              39,  TARGET_OPCODE(ISD::LOAD),
5238
+                OPC_RecordMemRef,
5239
+                OPC_RecordNode,
5240
+                OPC_CheckFoldableChainNode,
5241
+                OPC_RecordChild1,
5242
+                OPC_CheckPredicate, 2,
5243
+                OPC_CheckPredicate, 3,
5244
+                OPC_CheckPredicate, 19,
5245
+                OPC_MoveParent,
5246
+                OPC_MoveChild, 1,
5247
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5248
+                OPC_MoveParent,
5249
+                OPC_CheckPredicate, 23,
5250
+                OPC_CheckType, MVT::v2i64,
5251
+                OPC_CheckPatternPredicate, 10,
5252
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
5253
+                OPC_EmitMergeInputChains1_0,
5254
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
5255
+                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
5256
+              0, 
5257
+            86|128,1, 
5258
+              OPC_RecordNode,
5259
+              OPC_MoveChild, 0,
5260
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
5261
+              OPC_MoveChild, 0,
5262
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5263
+              OPC_RecordMemRef,
5264
+              OPC_RecordNode,
5265
+              OPC_CheckFoldableChainNode,
5266
+              OPC_RecordChild1,
5267
+              OPC_CheckPredicate, 2,
5268
+              OPC_CheckPredicate, 3,
5269
+              OPC_Scope, 26|128,1, 
5270
+                OPC_CheckPredicate, 19,
5271
+                OPC_SwitchType , 112,  MVT::v2i64,
5272
+                  OPC_MoveParent,
5273
+                  OPC_MoveParent,
5274
+                  OPC_MoveChild, 1,
5275
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5276
+                  OPC_MoveParent,
5277
+                  OPC_CheckType, MVT::v8i16,
5278
+                  OPC_Scope, 24, 
5279
+                    OPC_CheckPredicate, 24,
5280
+                    OPC_CheckPatternPredicate, 0,
5281
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5282
+                    OPC_EmitMergeInputChains1_1,
5283
+                    OPC_EmitNodeXForm, 1, 0,
5284
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
5285
+                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
5286
+                  24, 
5287
+                    OPC_CheckPredicate, 25,
5288
+                    OPC_CheckPatternPredicate, 0,
5289
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5290
+                    OPC_EmitMergeInputChains1_1,
5291
+                    OPC_EmitNodeXForm, 2, 0,
5292
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
5293
+                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
5294
+                  24, 
5295
+                    OPC_CheckPredicate, 24,
5296
+                    OPC_CheckPatternPredicate, 2,
5297
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5298
+                    OPC_EmitMergeInputChains1_1,
5299
+                    OPC_EmitNodeXForm, 1, 0,
5300
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
5301
+                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
5302
+                  24, 
5303
+                    OPC_CheckPredicate, 25,
5304
+                    OPC_CheckPatternPredicate, 2,
5305
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5306
+                    OPC_EmitMergeInputChains1_1,
5307
+                    OPC_EmitNodeXForm, 2, 0,
5308
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
5309
+                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
5310
+                  0, 
5311
+                34,  MVT::v4f32,
5312
+                  OPC_MoveParent,
5313
+                  OPC_MoveParent,
5314
+                  OPC_MoveChild, 1,
5315
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5316
+                  OPC_MoveParent,
5317
+                  OPC_CheckPredicate, 22,
5318
+                  OPC_CheckType, MVT::v4i32,
5319
+                  OPC_CheckPatternPredicate, 2,
5320
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5321
+                  OPC_EmitMergeInputChains1_1,
5322
+                  OPC_EmitNodeXForm, 0, 0,
5323
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
5324
+                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
5325
+                0, 
5326
+              36, 
5327
+                OPC_CheckType, MVT::v1i64,
5328
+                OPC_MoveParent,
5329
+                OPC_MoveParent,
5330
+                OPC_MoveChild, 1,
5331
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5332
+                OPC_MoveParent,
5333
+                OPC_CheckPredicate, 26,
5334
+                OPC_CheckType, MVT::v4i16,
5335
+                OPC_CheckPatternPredicate, 9,
5336
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5337
+                OPC_EmitMergeInputChains1_1,
5338
+                OPC_EmitNodeXForm, 3, 0,
5339
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSHUFWmi), 0|OPFL_Chain|OPFL_MemRefs,
5340
+                    1, MVT::v4i16, 6, 3, 4, 5, 6, 7, 8, 
5341
+              0, 
5342
+            43|128,2, 
5343
+              OPC_RecordChild0,
5344
+              OPC_MoveChild, 1,
5345
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
5346
+              OPC_MoveChild, 0,
5347
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5348
+              OPC_RecordMemRef,
5349
+              OPC_RecordNode,
5350
+              OPC_CheckFoldableChainNode,
5351
+              OPC_RecordChild1,
5352
+              OPC_CheckPredicate, 2,
5353
+              OPC_CheckPredicate, 3,
5354
+              OPC_CheckPredicate, 19,
5355
+              OPC_CheckType, MVT::v2i64,
5356
+              OPC_MoveParent,
5357
+              OPC_MoveParent,
5358
+              OPC_Scope, 67, 
5359
+                OPC_CheckPredicate, 27,
5360
+                OPC_SwitchType , 19,  MVT::v16i8,
5361
+                  OPC_CheckPatternPredicate, 0,
5362
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5363
+                  OPC_EmitMergeInputChains1_1,
5364
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
5365
+                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
5366
+                19,  MVT::v8i16,
5367
+                  OPC_CheckPatternPredicate, 0,
5368
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5369
+                  OPC_EmitMergeInputChains1_1,
5370
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
5371
+                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
5372
+                19,  MVT::v4i32,
5373
+                  OPC_CheckPatternPredicate, 0,
5374
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5375
+                  OPC_EmitMergeInputChains1_1,
5376
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5377
+                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
5378
+                0, 
5379
+              67, 
5380
+                OPC_CheckPredicate, 12,
5381
+                OPC_SwitchType , 19,  MVT::v16i8,
5382
+                  OPC_CheckPatternPredicate, 0,
5383
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5384
+                  OPC_EmitMergeInputChains1_1,
5385
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
5386
+                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
5387
+                19,  MVT::v8i16,
5388
+                  OPC_CheckPatternPredicate, 0,
5389
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5390
+                  OPC_EmitMergeInputChains1_1,
5391
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
5392
+                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
5393
+                19,  MVT::v4i32,
5394
+                  OPC_CheckPatternPredicate, 0,
5395
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5396
+                  OPC_EmitMergeInputChains1_1,
5397
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5398
+                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
5399
+                0, 
5400
+              67, 
5401
+                OPC_CheckPredicate, 27,
5402
+                OPC_SwitchType , 19,  MVT::v16i8,
5403
+                  OPC_CheckPatternPredicate, 2,
5404
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5405
+                  OPC_EmitMergeInputChains1_1,
5406
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
5407
+                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
5408
+                19,  MVT::v8i16,
5409
+                  OPC_CheckPatternPredicate, 2,
5410
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5411
+                  OPC_EmitMergeInputChains1_1,
5412
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
5413
+                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
5414
+                19,  MVT::v4i32,
5415
+                  OPC_CheckPatternPredicate, 2,
5416
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5417
+                  OPC_EmitMergeInputChains1_1,
5418
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5419
+                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
5420
+                0, 
5421
+              67, 
5422
+                OPC_CheckPredicate, 12,
5423
+                OPC_SwitchType , 19,  MVT::v16i8,
5424
+                  OPC_CheckPatternPredicate, 2,
5425
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5426
+                  OPC_EmitMergeInputChains1_1,
5427
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
5428
+                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
5429
+                19,  MVT::v8i16,
5430
+                  OPC_CheckPatternPredicate, 2,
5431
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5432
+                  OPC_EmitMergeInputChains1_1,
5433
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
5434
+                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
5435
+                19,  MVT::v4i32,
5436
+                  OPC_CheckPatternPredicate, 2,
5437
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5438
+                  OPC_EmitMergeInputChains1_1,
5439
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5440
+                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
5441
+                0, 
5442
+              0, 
5443
+            55, 
5444
+              OPC_RecordNode,
5445
+              OPC_RecordChild0,
5446
+              OPC_MoveChild, 1,
5447
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
5448
+              OPC_MoveChild, 0,
5449
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5450
+              OPC_RecordMemRef,
5451
+              OPC_RecordNode,
5452
+              OPC_CheckFoldableChainNode,
5453
+              OPC_RecordChild1,
5454
+              OPC_CheckPredicate, 2,
5455
+              OPC_CheckPredicate, 3,
5456
+              OPC_CheckPredicate, 19,
5457
+              OPC_CheckType, MVT::v2i64,
5458
+              OPC_MoveParent,
5459
+              OPC_MoveParent,
5460
+              OPC_CheckPredicate, 28,
5461
+              OPC_CheckType, MVT::v4i32,
5462
+              OPC_CheckPatternPredicate, 2,
5463
+              OPC_CheckComplexPat, /*CP*/0, /*#*/3,
5464
+              OPC_EmitMergeInputChains, 1, 2, 
5465
+              OPC_EmitNodeXForm, 0, 0,
5466
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
5467
+                  1, MVT::v4i32, 7, 1, 4, 5, 6, 7, 8, 9, 
5468
+            23|128,3, 
5469
+              OPC_RecordChild0,
5470
+              OPC_Scope, 79|128,2, 
5471
+                OPC_MoveChild, 1,
5472
+                OPC_SwitchOpcode , 61|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
5473
+                  OPC_MoveChild, 0,
5474
+                  OPC_SwitchOpcode , 22|128,1,  TARGET_OPCODE(ISD::LOAD),
5475
+                    OPC_RecordMemRef,
5476
+                    OPC_RecordNode,
5477
+                    OPC_CheckFoldableChainNode,
5478
+                    OPC_RecordChild1,
5479
+                    OPC_CheckPredicate, 2,
5480
+                    OPC_CheckPredicate, 3,
5481
+                    OPC_CheckType, MVT::v1i64,
5482
+                    OPC_MoveParent,
5483
+                    OPC_MoveParent,
5484
+                    OPC_Scope, 67, 
5485
+                      OPC_CheckPredicate, 29,
5486
+                      OPC_SwitchType , 19,  MVT::v8i8,
5487
+                        OPC_CheckPatternPredicate, 9,
5488
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5489
+                        OPC_EmitMergeInputChains1_1,
5490
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
5491
+                            1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
5492
+                      19,  MVT::v4i16,
5493
+                        OPC_CheckPatternPredicate, 9,
5494
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5495
+                        OPC_EmitMergeInputChains1_1,
5496
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
5497
+                            1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
5498
+                      19,  MVT::v2i32,
5499
+                        OPC_CheckPatternPredicate, 9,
5500
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5501
+                        OPC_EmitMergeInputChains1_1,
5502
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5503
+                            1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
5504
+                      0, 
5505
+                    67, 
5506
+                      OPC_CheckPredicate, 30,
5507
+                      OPC_SwitchType , 19,  MVT::v8i8,
5508
+                        OPC_CheckPatternPredicate, 9,
5509
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5510
+                        OPC_EmitMergeInputChains1_1,
5511
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
5512
+                            1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
5513
+                      19,  MVT::v4i16,
5514
+                        OPC_CheckPatternPredicate, 9,
5515
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5516
+                        OPC_EmitMergeInputChains1_1,
5517
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
5518
+                            1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
5519
+                      19,  MVT::v2i32,
5520
+                        OPC_CheckPatternPredicate, 9,
5521
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5522
+                        OPC_EmitMergeInputChains1_1,
5523
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5524
+                            1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
5525
+                      0, 
5526
+                    0, 
5527
+                  28,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
5528
+                    OPC_RecordNode,
5529
+                    OPC_CheckFoldableChainNode,
5530
+                    OPC_RecordChild1,
5531
+                    OPC_CheckType, MVT::v2i64,
5532
+                    OPC_MoveParent,
5533
+                    OPC_MoveParent,
5534
+                    OPC_CheckPredicate, 31,
5535
+                    OPC_CheckType, MVT::v4i32,
5536
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5537
+                    OPC_EmitMergeInputChains1_1,
5538
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain,
5539
+                        1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
5540
+                  0, 
5541
+                29,  TARGET_OPCODE(ISD::UNDEF),
5542
+                  OPC_MoveParent,
5543
+                  OPC_SwitchType , 11,  MVT::v2i64,
5544
+                    OPC_CheckPredicate, 23,
5545
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
5546
+                        1, MVT::v2i64, 2, 0, 0, 
5547
+                  11,  MVT::v4i32,
5548
+                    OPC_CheckPredicate, 32,
5549
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
5550
+                        1, MVT::v4i32, 2, 0, 0, 
5551
+                  0, 
5552
+                103,  TARGET_OPCODE(ISD::LOAD),
5553
+                  OPC_RecordMemRef,
5554
+                  OPC_RecordNode,
5555
+                  OPC_CheckFoldableChainNode,
5556
+                  OPC_RecordChild1,
5557
+                  OPC_CheckPredicate, 2,
5558
+                  OPC_CheckPredicate, 3,
5559
+                  OPC_CheckPredicate, 19,
5560
+                  OPC_MoveParent,
5561
+                  OPC_CheckType, MVT::v2i64,
5562
+                  OPC_Scope, 21, 
5563
+                    OPC_CheckPredicate, 27,
5564
+                    OPC_CheckPatternPredicate, 0,
5565
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5566
+                    OPC_EmitMergeInputChains1_1,
5567
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5568
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
5569
+                  21, 
5570
+                    OPC_CheckPredicate, 12,
5571
+                    OPC_CheckPatternPredicate, 0,
5572
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5573
+                    OPC_EmitMergeInputChains1_1,
5574
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5575
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
5576
+                  21, 
5577
+                    OPC_CheckPredicate, 27,
5578
+                    OPC_CheckPatternPredicate, 2,
5579
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5580
+                    OPC_EmitMergeInputChains1_1,
5581
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5582
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
5583
+                  21, 
5584
+                    OPC_CheckPredicate, 12,
5585
+                    OPC_CheckPatternPredicate, 2,
5586
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5587
+                    OPC_EmitMergeInputChains1_1,
5588
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
5589
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
5590
+                  0, 
5591
+                0, 
5592
+              29, 
5593
+                OPC_RecordChild1,
5594
+                OPC_CheckType, MVT::v4i32,
5595
+                OPC_Scope, 11, 
5596
+                  OPC_CheckPredicate, 31,
5597
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
5598
+                      1, MVT::v4i32, 2, 0, 1, 
5599
+                11, 
5600
+                  OPC_CheckPredicate, 33,
5601
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
5602
+                      1, MVT::v4i32, 2, 0, 1, 
5603
+                0, 
5604
+              36, 
5605
+                OPC_MoveChild, 1,
5606
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5607
+                OPC_MoveParent,
5608
+                OPC_CheckType, MVT::v4i32,
5609
+                OPC_Scope, 12, 
5610
+                  OPC_CheckPredicate, 20,
5611
+                  OPC_CheckPatternPredicate, 10,
5612
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
5613
+                      1, MVT::v4i32, 1, 0, 
5614
+                12, 
5615
+                  OPC_CheckPredicate, 21,
5616
+                  OPC_CheckPatternPredicate, 10,
5617
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
5618
+                      1, MVT::v4i32, 1, 0, 
5619
+                0, 
5620
+              0, 
5621
+            46, 
5622
+              OPC_RecordNode,
5623
+              OPC_RecordChild0,
5624
+              OPC_MoveChild, 1,
5625
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5626
+              OPC_MoveParent,
5627
+              OPC_CheckType, MVT::v4i32,
5628
+              OPC_Scope, 16, 
5629
+                OPC_CheckPredicate, 34,
5630
+                OPC_CheckPatternPredicate, 11,
5631
+                OPC_EmitNodeXForm, 0, 0,
5632
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
5633
+                    1, MVT::v4i32, 2, 1, 2, 
5634
+              16, 
5635
+                OPC_CheckPredicate, 35,
5636
+                OPC_CheckPatternPredicate, 11,
5637
+                OPC_EmitNodeXForm, 0, 0,
5638
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
5639
+                    1, MVT::v4i32, 2, 1, 2, 
5640
+              0, 
5641
+            24|128,2, 
5642
+              OPC_RecordChild0,
5643
+              OPC_Scope, 82, 
5644
+                OPC_RecordChild1,
5645
+                OPC_Scope, 50, 
5646
+                  OPC_CheckPredicate, 36,
5647
+                  OPC_SwitchType , 21,  MVT::v4i32,
5648
+                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
5649
+                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
5650
+                        1, MVT::f32, 2, 1, 2, 
5651
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
5652
+                        1, MVT::v4i32, 2, 0, 3, 
5653
+                  21,  MVT::v2i64,
5654
+                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
5655
+                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
5656
+                        1, MVT::f64, 2, 1, 2, 
5657
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
5658
+                        1, MVT::v2i64, 2, 0, 3, 
5659
+                  0, 
5660
+                27, 
5661
+                  OPC_CheckPredicate, 11,
5662
+                  OPC_CheckType, MVT::v4i32,
5663
+                  OPC_CheckPatternPredicate, 2,
5664
+                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
5665
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
5666
+                      1, MVT::f64, 2, 1, 2, 
5667
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
5668
+                      1, MVT::v4i32, 2, 0, 3, 
5669
+                0, 
5670
+              64|128,1, 
5671
+                OPC_MoveChild, 1,
5672
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5673
+                OPC_MoveParent,
5674
+                OPC_Scope, 15, 
5675
+                  OPC_CheckPredicate, 37,
5676
+                  OPC_CheckType, MVT::v2i64,
5677
+                  OPC_CheckPatternPredicate, 2,
5678
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
5679
+                      1, MVT::v2i64, 2, 0, 0, 
5680
+                15, 
5681
+                  OPC_CheckPredicate, 12,
5682
+                  OPC_CheckType, MVT::v2i64,
5683
+                  OPC_CheckPatternPredicate, 2,
5684
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
5685
+                      1, MVT::v2i64, 2, 0, 0, 
5686
+                37, 
5687
+                  OPC_CheckPredicate, 34,
5688
+                  OPC_SwitchType , 9,  MVT::v16i8,
5689
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
5690
+                        1, MVT::v16i8, 2, 0, 0, 
5691
+                  9,  MVT::v8i16,
5692
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
5693
+                        1, MVT::v8i16, 2, 0, 0, 
5694
+                  9,  MVT::v4i32,
5695
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
5696
+                        1, MVT::v4i32, 2, 0, 0, 
5697
+                  0, 
5698
+                37, 
5699
+                  OPC_CheckPredicate, 35,
5700
+                  OPC_SwitchType , 9,  MVT::v16i8,
5701
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
5702
+                        1, MVT::v16i8, 2, 0, 0, 
5703
+                  9,  MVT::v8i16,
5704
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
5705
+                        1, MVT::v8i16, 2, 0, 0, 
5706
+                  9,  MVT::v4i32,
5707
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
5708
+                        1, MVT::v4i32, 2, 0, 0, 
5709
+                  0, 
5710
+                37, 
5711
+                  OPC_CheckPredicate, 38,
5712
+                  OPC_SwitchType , 9,  MVT::v8i8,
5713
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrr), 0,
5714
+                        1, MVT::v8i8, 2, 0, 0, 
5715
+                  9,  MVT::v4i16,
5716
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrr), 0,
5717
+                        1, MVT::v4i16, 2, 0, 0, 
5718
+                  9,  MVT::v2i32,
5719
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
5720
+                        1, MVT::v2i32, 2, 0, 0, 
5721
+                  0, 
5722
+                37, 
5723
+                  OPC_CheckPredicate, 39,
5724
+                  OPC_SwitchType , 9,  MVT::v8i8,
5725
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrr), 0,
5726
+                        1, MVT::v8i8, 2, 0, 0, 
5727
+                  9,  MVT::v4i16,
5728
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrr), 0,
5729
+                        1, MVT::v4i16, 2, 0, 0, 
5730
+                  9,  MVT::v2i32,
5731
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrr), 0,
5732
+                        1, MVT::v2i32, 2, 0, 0, 
5733
+                  0, 
5734
+                0, 
5735
+              0, 
5736
+            39, 
5737
+              OPC_MoveChild, 0,
5738
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
5739
+              OPC_CheckPredicate, 40,
5740
+              OPC_MoveParent,
5741
+              OPC_MoveChild, 1,
5742
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
5743
+              OPC_MoveChild, 0,
5744
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
5745
+              OPC_RecordChild0,
5746
+              OPC_CheckChild0Type, MVT::v1i64,
5747
+              OPC_CheckType, MVT::i64,
5748
+              OPC_MoveParent,
5749
+              OPC_MoveParent,
5750
+              OPC_CheckPredicate, 36,
5751
+              OPC_CheckType, MVT::v2i64,
5752
+              OPC_CheckPatternPredicate, 2,
5753
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
5754
+                  1, MVT::v2i64, 1, 0, 
5755
+            34|128,2, 
5756
+              OPC_RecordNode,
5757
+              OPC_RecordChild0,
5758
+              OPC_Scope, 42, 
5759
+                OPC_MoveChild, 1,
5760
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5761
+                OPC_MoveParent,
5762
+                OPC_CheckPredicate, 22,
5763
+                OPC_CheckType, MVT::v4i32,
5764
+                OPC_Scope, 14, 
5765
+                  OPC_CheckPatternPredicate, 0,
5766
+                  OPC_EmitNodeXForm, 0, 0,
5767
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
5768
+                      1, MVT::v4i32, 2, 1, 2, 
5769
+                14, 
5770
+                  OPC_CheckPatternPredicate, 2,
5771
+                  OPC_EmitNodeXForm, 0, 0,
5772
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
5773
+                      1, MVT::v4i32, 2, 1, 2, 
5774
+                0, 
5775
+              124, 
5776
+                OPC_RecordChild1,
5777
+                OPC_CheckPredicate, 41,
5778
+                OPC_SwitchType , 15,  MVT::v1i64,
5779
+                  OPC_CheckPatternPredicate, 12,
5780
+                  OPC_EmitNodeXForm, 4, 0,
5781
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
5782
+                      1, MVT::v1i64, 3, 2, 1, 3, 
5783
+                15,  MVT::v2i32,
5784
+                  OPC_CheckPatternPredicate, 12,
5785
+                  OPC_EmitNodeXForm, 4, 0,
5786
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
5787
+                      1, MVT::v2i32, 3, 2, 1, 3, 
5788
+                15,  MVT::v4i16,
5789
+                  OPC_CheckPatternPredicate, 12,
5790
+                  OPC_EmitNodeXForm, 4, 0,
5791
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
5792
+                      1, MVT::v4i16, 3, 2, 1, 3, 
5793
+                15,  MVT::v8i8,
5794
+                  OPC_CheckPatternPredicate, 12,
5795
+                  OPC_EmitNodeXForm, 4, 0,
5796
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
5797
+                      1, MVT::v8i8, 3, 2, 1, 3, 
5798
+                15,  MVT::v4i32,
5799
+                  OPC_CheckPatternPredicate, 12,
5800
+                  OPC_EmitNodeXForm, 4, 0,
5801
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
5802
+                      1, MVT::v4i32, 3, 2, 1, 3, 
5803
+                15,  MVT::v8i16,
5804
+                  OPC_CheckPatternPredicate, 12,
5805
+                  OPC_EmitNodeXForm, 4, 0,
5806
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
5807
+                      1, MVT::v8i16, 3, 2, 1, 3, 
5808
+                15,  MVT::v16i8,
5809
+                  OPC_CheckPatternPredicate, 12,
5810
+                  OPC_EmitNodeXForm, 4, 0,
5811
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
5812
+                      1, MVT::v16i8, 3, 2, 1, 3, 
5813
+                0, 
5814
+              117, 
5815
+                OPC_MoveChild, 1,
5816
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
5817
+                OPC_MoveParent,
5818
+                OPC_SwitchType , 70,  MVT::v8i16,
5819
+                  OPC_Scope, 16, 
5820
+                    OPC_CheckPredicate, 24,
5821
+                    OPC_CheckPatternPredicate, 0,
5822
+                    OPC_EmitNodeXForm, 1, 0,
5823
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWri), 0,
5824
+                        1, MVT::v8i16, 2, 1, 2, 
5825
+                  16, 
5826
+                    OPC_CheckPredicate, 25,
5827
+                    OPC_CheckPatternPredicate, 0,
5828
+                    OPC_EmitNodeXForm, 2, 0,
5829
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWri), 0,
5830
+                        1, MVT::v8i16, 2, 1, 2, 
5831
+                  16, 
5832
+                    OPC_CheckPredicate, 24,
5833
+                    OPC_CheckPatternPredicate, 2,
5834
+                    OPC_EmitNodeXForm, 1, 0,
5835
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
5836
+                        1, MVT::v8i16, 2, 1, 2, 
5837
+                  16, 
5838
+                    OPC_CheckPredicate, 25,
5839
+                    OPC_CheckPatternPredicate, 2,
5840
+                    OPC_EmitNodeXForm, 2, 0,
5841
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
5842
+                        1, MVT::v8i16, 2, 1, 2, 
5843
+                  0, 
5844
+                17,  MVT::v2i64,
5845
+                  OPC_CheckPredicate, 22,
5846
+                  OPC_CheckPatternPredicate, 2,
5847
+                  OPC_EmitNodeXForm, 0, 0,
5848
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
5849
+                      1, MVT::v2i64, 3, 1, 1, 2, 
5850
+                16,  MVT::v4i16,
5851
+                  OPC_CheckPredicate, 26,
5852
+                  OPC_CheckPatternPredicate, 9,
5853
+                  OPC_EmitNodeXForm, 3, 0,
5854
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSHUFWri), 0,
5855
+                      1, MVT::v4i16, 2, 1, 2, 
5856
+                0, 
5857
+              0, 
5858
+            104|128,1, 
5859
+              OPC_RecordChild0,
5860
+              OPC_RecordChild1,
5861
+              OPC_Scope, 56, 
5862
+                OPC_CheckPredicate, 27,
5863
+                OPC_SwitchType , 11,  MVT::v16i8,
5864
+                  OPC_CheckPatternPredicate, 0,
5865
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLBWrr), 0,
5866
+                      1, MVT::v16i8, 2, 0, 1, 
5867
+                11,  MVT::v8i16,
5868
+                  OPC_CheckPatternPredicate, 0,
5869
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLWDrr), 0,
5870
+                      1, MVT::v8i16, 2, 0, 1, 
5871
+                11,  MVT::v4i32,
5872
+                  OPC_CheckPatternPredicate, 0,
5873
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLDQrr), 0,
5874
+                      1, MVT::v4i32, 2, 0, 1, 
5875
+                11,  MVT::v2i64,
5876
+                  OPC_CheckPatternPredicate, 0,
5877
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLQDQrr), 0,
5878
+                      1, MVT::v2i64, 2, 0, 1, 
5879
+                0, 
5880
+              56, 
5881
+                OPC_CheckPredicate, 12,
5882
+                OPC_SwitchType , 11,  MVT::v16i8,
5883
+                  OPC_CheckPatternPredicate, 0,
5884
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHBWrr), 0,
5885
+                      1, MVT::v16i8, 2, 0, 1, 
5886
+                11,  MVT::v8i16,
5887
+                  OPC_CheckPatternPredicate, 0,
5888
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHWDrr), 0,
5889
+                      1, MVT::v8i16, 2, 0, 1, 
5890
+                11,  MVT::v4i32,
5891
+                  OPC_CheckPatternPredicate, 0,
5892
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHDQrr), 0,
5893
+                      1, MVT::v4i32, 2, 0, 1, 
5894
+                11,  MVT::v2i64,
5895
+                  OPC_CheckPatternPredicate, 0,
5896
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHQDQrr), 0,
5897
+                      1, MVT::v2i64, 2, 0, 1, 
5898
+                0, 
5899
+              56, 
5900
+                OPC_CheckPredicate, 27,
5901
+                OPC_SwitchType , 11,  MVT::v16i8,
5902
+                  OPC_CheckPatternPredicate, 2,
5903
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
5904
+                      1, MVT::v16i8, 2, 0, 1, 
5905
+                11,  MVT::v8i16,
5906
+                  OPC_CheckPatternPredicate, 2,
5907
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
5908
+                      1, MVT::v8i16, 2, 0, 1, 
5909
+                11,  MVT::v4i32,
5910
+                  OPC_CheckPatternPredicate, 2,
5911
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
5912
+                      1, MVT::v4i32, 2, 0, 1, 
5913
+                11,  MVT::v2i64,
5914
+                  OPC_CheckPatternPredicate, 2,
5915
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
5916
+                      1, MVT::v2i64, 2, 0, 1, 
5917
+                0, 
5918
+              56, 
5919
+                OPC_CheckPredicate, 12,
5920
+                OPC_SwitchType , 11,  MVT::v16i8,
5921
+                  OPC_CheckPatternPredicate, 2,
5922
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
5923
+                      1, MVT::v16i8, 2, 0, 1, 
5924
+                11,  MVT::v8i16,
5925
+                  OPC_CheckPatternPredicate, 2,
5926
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
5927
+                      1, MVT::v8i16, 2, 0, 1, 
5928
+                11,  MVT::v4i32,
5929
+                  OPC_CheckPatternPredicate, 2,
5930
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
5931
+                      1, MVT::v4i32, 2, 0, 1, 
5932
+                11,  MVT::v2i64,
5933
+                  OPC_CheckPatternPredicate, 2,
5934
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
5935
+                      1, MVT::v2i64, 2, 0, 1, 
5936
+                0, 
5937
+              0, 
5938
+            41, 
5939
+              OPC_RecordNode,
5940
+              OPC_RecordChild0,
5941
+              OPC_RecordChild1,
5942
+              OPC_CheckPredicate, 28,
5943
+              OPC_SwitchType , 15,  MVT::v4i32,
5944
+                OPC_CheckPatternPredicate, 2,
5945
+                OPC_EmitNodeXForm, 0, 0,
5946
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
5947
+                    1, MVT::v4i32, 3, 1, 2, 3, 
5948
+              15,  MVT::v2i64,
5949
+                OPC_CheckPatternPredicate, 2,
5950
+                OPC_EmitNodeXForm, 0, 0,
5951
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
5952
+                    1, MVT::v2i64, 3, 1, 2, 3, 
5953
+              0, 
5954
+            7|128,3, 
5955
+              OPC_RecordChild0,
5956
+              OPC_Scope, 91, 
5957
+                OPC_RecordChild1,
5958
+                OPC_Scope, 43, 
5959
+                  OPC_CheckPredicate, 29,
5960
+                  OPC_SwitchType , 11,  MVT::v8i8,
5961
+                    OPC_CheckPatternPredicate, 9,
5962
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrr), 0,
5963
+                        1, MVT::v8i8, 2, 0, 1, 
5964
+                  11,  MVT::v4i16,
5965
+                    OPC_CheckPatternPredicate, 9,
5966
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrr), 0,
5967
+                        1, MVT::v4i16, 2, 0, 1, 
5968
+                  11,  MVT::v2i32,
5969
+                    OPC_CheckPatternPredicate, 9,
5970
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrr), 0,
5971
+                        1, MVT::v2i32, 2, 0, 1, 
5972
+                  0, 
5973
+                43, 
5974
+                  OPC_CheckPredicate, 30,
5975
+                  OPC_SwitchType , 11,  MVT::v8i8,
5976
+                    OPC_CheckPatternPredicate, 9,
5977
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrr), 0,
5978
+                        1, MVT::v8i8, 2, 0, 1, 
5979
+                  11,  MVT::v4i16,
5980
+                    OPC_CheckPatternPredicate, 9,
5981
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrr), 0,
5982
+                        1, MVT::v4i16, 2, 0, 1, 
5983
+                  11,  MVT::v2i32,
5984
+                    OPC_CheckPatternPredicate, 9,
5985
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
5986
+                        1, MVT::v2i32, 2, 0, 1, 
5987
+                  0, 
5988
+                0, 
5989
+              38|128,2, 
5990
+                OPC_MoveChild, 1,
5991
+                OPC_SwitchOpcode , 119,  TARGET_OPCODE(ISD::BIT_CONVERT),
5992
+                  OPC_MoveChild, 0,
5993
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
5994
+                  OPC_MoveChild, 0,
5995
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
5996
+                  OPC_RecordMemRef,
5997
+                  OPC_RecordNode,
5998
+                  OPC_CheckFoldableChainNode,
5999
+                  OPC_RecordChild1,
6000
+                  OPC_CheckPredicate, 2,
6001
+                  OPC_CheckPredicate, 3,
6002
+                  OPC_CheckPredicate, 4,
6003
+                  OPC_CheckType, MVT::f64,
6004
+                  OPC_MoveParent,
6005
+                  OPC_CheckType, MVT::v2f64,
6006
+                  OPC_MoveParent,
6007
+                  OPC_MoveParent,
6008
+                  OPC_CheckType, MVT::v4f32,
6009
+                  OPC_Scope, 21, 
6010
+                    OPC_CheckPredicate, 11,
6011
+                    OPC_CheckPatternPredicate, 0,
6012
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6013
+                    OPC_EmitMergeInputChains1_1,
6014
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6015
+                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6016
+                  21, 
6017
+                    OPC_CheckPredicate, 31,
6018
+                    OPC_CheckPatternPredicate, 0,
6019
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6020
+                    OPC_EmitMergeInputChains1_1,
6021
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6022
+                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6023
+                  21, 
6024
+                    OPC_CheckPredicate, 11,
6025
+                    OPC_CheckPatternPredicate, 1,
6026
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6027
+                    OPC_EmitMergeInputChains1_1,
6028
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6029
+                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6030
+                  21, 
6031
+                    OPC_CheckPredicate, 31,
6032
+                    OPC_CheckPatternPredicate, 1,
6033
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6034
+                    OPC_EmitMergeInputChains1_1,
6035
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6036
+                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6037
+                  0, 
6038
+                111,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
6039
+                  OPC_MoveChild, 0,
6040
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6041
+                  OPC_RecordMemRef,
6042
+                  OPC_RecordNode,
6043
+                  OPC_CheckFoldableChainNode,
6044
+                  OPC_RecordChild1,
6045
+                  OPC_CheckPredicate, 2,
6046
+                  OPC_CheckPredicate, 3,
6047
+                  OPC_CheckPredicate, 4,
6048
+                  OPC_CheckType, MVT::f64,
6049
+                  OPC_MoveParent,
6050
+                  OPC_MoveParent,
6051
+                  OPC_CheckType, MVT::v2f64,
6052
+                  OPC_Scope, 21, 
6053
+                    OPC_CheckPredicate, 11,
6054
+                    OPC_CheckPatternPredicate, 0,
6055
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6056
+                    OPC_EmitMergeInputChains1_1,
6057
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6058
+                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6059
+                  21, 
6060
+                    OPC_CheckPredicate, 31,
6061
+                    OPC_CheckPatternPredicate, 0,
6062
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6063
+                    OPC_EmitMergeInputChains1_1,
6064
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6065
+                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6066
+                  21, 
6067
+                    OPC_CheckPredicate, 11,
6068
+                    OPC_CheckPatternPredicate, 2,
6069
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6070
+                    OPC_EmitMergeInputChains1_1,
6071
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6072
+                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6073
+                  21, 
6074
+                    OPC_CheckPredicate, 31,
6075
+                    OPC_CheckPatternPredicate, 2,
6076
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6077
+                    OPC_EmitMergeInputChains1_1,
6078
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6079
+                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6080
+                  0, 
6081
+                51,  TARGET_OPCODE(ISD::LOAD),
6082
+                  OPC_RecordMemRef,
6083
+                  OPC_RecordNode,
6084
+                  OPC_CheckFoldableChainNode,
6085
+                  OPC_RecordChild1,
6086
+                  OPC_CheckPredicate, 2,
6087
+                  OPC_CheckPredicate, 3,
6088
+                  OPC_MoveParent,
6089
+                  OPC_CheckPredicate, 11,
6090
+                  OPC_SwitchType , 17,  MVT::v4f32,
6091
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6092
+                    OPC_EmitMergeInputChains1_1,
6093
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6094
+                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6095
+                  17,  MVT::v2f64,
6096
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6097
+                    OPC_EmitMergeInputChains1_1,
6098
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6099
+                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6100
+                  0, 
6101
+                0, 
6102
+              0, 
6103
+            52, 
6104
+              OPC_MoveChild, 0,
6105
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
6106
+              OPC_MoveChild, 0,
6107
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6108
+              OPC_RecordMemRef,
6109
+              OPC_RecordNode,
6110
+              OPC_CheckFoldableChainNode,
6111
+              OPC_RecordChild1,
6112
+              OPC_CheckPredicate, 2,
6113
+              OPC_CheckPredicate, 3,
6114
+              OPC_CheckPredicate, 19,
6115
+              OPC_CheckType, MVT::v2f64,
6116
+              OPC_MoveParent,
6117
+              OPC_MoveParent,
6118
+              OPC_MoveChild, 1,
6119
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6120
+              OPC_MoveParent,
6121
+              OPC_CheckPredicate, 23,
6122
+              OPC_CheckType, MVT::v4f32,
6123
+              OPC_CheckPatternPredicate, 10,
6124
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6125
+              OPC_EmitMergeInputChains1_0,
6126
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6127
+                  1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
6128
+            45|128,2, 
6129
+              OPC_RecordChild0,
6130
+              OPC_MoveChild, 1,
6131
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6132
+              OPC_RecordMemRef,
6133
+              OPC_RecordNode,
6134
+              OPC_CheckFoldableChainNode,
6135
+              OPC_RecordChild1,
6136
+              OPC_CheckPredicate, 2,
6137
+              OPC_CheckPredicate, 3,
6138
+              OPC_CheckPredicate, 19,
6139
+              OPC_MoveParent,
6140
+              OPC_Scope, 46, 
6141
+                OPC_CheckPredicate, 12,
6142
+                OPC_SwitchType , 19,  MVT::v4f32,
6143
+                  OPC_CheckPatternPredicate, 0,
6144
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6145
+                  OPC_EmitMergeInputChains1_1,
6146
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6147
+                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6148
+                19,  MVT::v2f64,
6149
+                  OPC_CheckPatternPredicate, 0,
6150
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6151
+                  OPC_EmitMergeInputChains1_1,
6152
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6153
+                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6154
+                0, 
6155
+              46, 
6156
+                OPC_CheckPredicate, 27,
6157
+                OPC_SwitchType , 19,  MVT::v4f32,
6158
+                  OPC_CheckPatternPredicate, 0,
6159
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6160
+                  OPC_EmitMergeInputChains1_1,
6161
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6162
+                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6163
+                19,  MVT::v2f64,
6164
+                  OPC_CheckPatternPredicate, 0,
6165
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6166
+                  OPC_EmitMergeInputChains1_1,
6167
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6168
+                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6169
+                0, 
6170
+              46, 
6171
+                OPC_CheckPredicate, 12,
6172
+                OPC_SwitchType , 19,  MVT::v8f32,
6173
+                  OPC_CheckPatternPredicate, 0,
6174
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6175
+                  OPC_EmitMergeInputChains1_1,
6176
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
6177
+                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
6178
+                19,  MVT::v4f64,
6179
+                  OPC_CheckPatternPredicate, 0,
6180
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6181
+                  OPC_EmitMergeInputChains1_1,
6182
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
6183
+                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
6184
+                0, 
6185
+              46, 
6186
+                OPC_CheckPredicate, 27,
6187
+                OPC_SwitchType , 19,  MVT::v8f32,
6188
+                  OPC_CheckPatternPredicate, 0,
6189
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6190
+                  OPC_EmitMergeInputChains1_1,
6191
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
6192
+                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
6193
+                19,  MVT::v4f64,
6194
+                  OPC_CheckPatternPredicate, 0,
6195
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6196
+                  OPC_EmitMergeInputChains1_1,
6197
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
6198
+                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
6199
+                0, 
6200
+              46, 
6201
+                OPC_CheckPredicate, 12,
6202
+                OPC_SwitchType , 19,  MVT::v4f32,
6203
+                  OPC_CheckPatternPredicate, 1,
6204
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6205
+                  OPC_EmitMergeInputChains1_1,
6206
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6207
+                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6208
+                19,  MVT::v2f64,
6209
+                  OPC_CheckPatternPredicate, 2,
6210
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6211
+                  OPC_EmitMergeInputChains1_1,
6212
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6213
+                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6214
+                0, 
6215
+              46, 
6216
+                OPC_CheckPredicate, 27,
6217
+                OPC_SwitchType , 19,  MVT::v4f32,
6218
+                  OPC_CheckPatternPredicate, 1,
6219
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6220
+                  OPC_EmitMergeInputChains1_1,
6221
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
6222
+                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
6223
+                19,  MVT::v2f64,
6224
+                  OPC_CheckPatternPredicate, 2,
6225
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6226
+                  OPC_EmitMergeInputChains1_1,
6227
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
6228
+                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
6229
+                0, 
6230
+              0, 
6231
+            11|128,2, 
6232
+              OPC_MoveChild, 0,
6233
+              OPC_SwitchOpcode , 55,  TARGET_OPCODE(ISD::BIT_CONVERT),
6234
+                OPC_MoveChild, 0,
6235
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
6236
+                OPC_MoveChild, 0,
6237
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6238
+                OPC_RecordMemRef,
6239
+                OPC_RecordNode,
6240
+                OPC_CheckFoldableChainNode,
6241
+                OPC_RecordChild1,
6242
+                OPC_CheckPredicate, 2,
6243
+                OPC_CheckPredicate, 3,
6244
+                OPC_CheckPredicate, 4,
6245
+                OPC_CheckType, MVT::i64,
6246
+                OPC_MoveParent,
6247
+                OPC_CheckType, MVT::v2i64,
6248
+                OPC_MoveParent,
6249
+                OPC_MoveParent,
6250
+                OPC_MoveChild, 1,
6251
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6252
+                OPC_MoveParent,
6253
+                OPC_CheckPredicate, 23,
6254
+                OPC_CheckType, MVT::v2f64,
6255
+                OPC_CheckPatternPredicate, 10,
6256
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6257
+                OPC_EmitMergeInputChains1_0,
6258
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6259
+                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
6260
+              1|128,1,  TARGET_OPCODE(ISD::LOAD),
6261
+                OPC_RecordMemRef,
6262
+                OPC_RecordNode,
6263
+                OPC_CheckFoldableChainNode,
6264
+                OPC_RecordChild1,
6265
+                OPC_CheckPredicate, 2,
6266
+                OPC_CheckPredicate, 3,
6267
+                OPC_CheckPredicate, 19,
6268
+                OPC_MoveParent,
6269
+                OPC_MoveChild, 1,
6270
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6271
+                OPC_MoveParent,
6272
+                OPC_SwitchType , 20,  MVT::v2f64,
6273
+                  OPC_CheckPredicate, 23,
6274
+                  OPC_CheckPatternPredicate, 10,
6275
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6276
+                  OPC_EmitMergeInputChains1_0,
6277
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6278
+                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
6279
+                86,  MVT::v4f32,
6280
+                  OPC_Scope, 20, 
6281
+                    OPC_CheckPredicate, 20,
6282
+                    OPC_CheckPatternPredicate, 0,
6283
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6284
+                    OPC_EmitMergeInputChains1_0,
6285
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6286
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
6287
+                  20, 
6288
+                    OPC_CheckPredicate, 21,
6289
+                    OPC_CheckPatternPredicate, 0,
6290
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6291
+                    OPC_EmitMergeInputChains1_0,
6292
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6293
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
6294
+                  20, 
6295
+                    OPC_CheckPredicate, 20,
6296
+                    OPC_CheckPatternPredicate, 10,
6297
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6298
+                    OPC_EmitMergeInputChains1_0,
6299
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6300
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
6301
+                  20, 
6302
+                    OPC_CheckPredicate, 21,
6303
+                    OPC_CheckPatternPredicate, 10,
6304
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6305
+                    OPC_EmitMergeInputChains1_0,
6306
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6307
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
6308
+                  0, 
6309
+                0, 
6310
+              69,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
6311
+                OPC_MoveChild, 0,
6312
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6313
+                OPC_RecordMemRef,
6314
+                OPC_RecordNode,
6315
+                OPC_CheckFoldableChainNode,
6316
+                OPC_RecordChild1,
6317
+                OPC_CheckPredicate, 2,
6318
+                OPC_CheckPredicate, 3,
6319
+                OPC_CheckPredicate, 4,
6320
+                OPC_CheckType, MVT::f64,
6321
+                OPC_MoveParent,
6322
+                OPC_MoveParent,
6323
+                OPC_MoveChild, 1,
6324
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6325
+                OPC_MoveParent,
6326
+                OPC_CheckPredicate, 23,
6327
+                OPC_CheckType, MVT::v2f64,
6328
+                OPC_Scope, 18, 
6329
+                  OPC_CheckPatternPredicate, 0,
6330
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6331
+                  OPC_EmitMergeInputChains1_0,
6332
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6333
+                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
6334
+                18, 
6335
+                  OPC_CheckPatternPredicate, 10,
6336
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6337
+                  OPC_EmitMergeInputChains1_0,
6338
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
6339
+                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
6340
+                0, 
6341
+              0, 
6342
+            35, 
6343
+              OPC_RecordChild0,
6344
+              OPC_MoveChild, 1,
6345
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6346
+              OPC_MoveParent,
6347
+              OPC_CheckType, MVT::v4f32,
6348
+              OPC_Scope, 11, 
6349
+                OPC_CheckPredicate, 23,
6350
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
6351
+                    1, MVT::v4f32, 2, 0, 0, 
6352
+              11, 
6353
+                OPC_CheckPredicate, 32,
6354
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
6355
+                    1, MVT::v4f32, 2, 0, 0, 
6356
+              0, 
6357
+            60|128,1, 
6358
+              OPC_RecordNode,
6359
+              OPC_RecordChild0,
6360
+              OPC_MoveChild, 1,
6361
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6362
+              OPC_RecordMemRef,
6363
+              OPC_RecordNode,
6364
+              OPC_CheckFoldableChainNode,
6365
+              OPC_RecordChild1,
6366
+              OPC_CheckPredicate, 2,
6367
+              OPC_CheckPredicate, 3,
6368
+              OPC_CheckPredicate, 19,
6369
+              OPC_MoveParent,
6370
+              OPC_CheckPredicate, 28,
6371
+              OPC_SwitchType , 54,  MVT::v4f32,
6372
+                OPC_Scope, 25, 
6373
+                  OPC_CheckPatternPredicate, 0,
6374
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6375
+                  OPC_EmitMergeInputChains, 1, 2, 
6376
+                  OPC_EmitNodeXForm, 0, 0,
6377
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
6378
+                      1, MVT::v4f32, 7, 1, 4, 5, 6, 7, 8, 9, 
6379
+                25, 
6380
+                  OPC_CheckPatternPredicate, 1,
6381
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6382
+                  OPC_EmitMergeInputChains, 1, 2, 
6383
+                  OPC_EmitNodeXForm, 0, 0,
6384
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
6385
+                      1, MVT::v4f32, 7, 1, 4, 5, 6, 7, 8, 9, 
6386
+                0, 
6387
+              25,  MVT::v8f32,
6388
+                OPC_CheckPatternPredicate, 0,
6389
+                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6390
+                OPC_EmitMergeInputChains, 1, 2, 
6391
+                OPC_EmitNodeXForm, 0, 0,
6392
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
6393
+                    1, MVT::v8f32, 7, 1, 4, 5, 6, 7, 8, 9, 
6394
+              54,  MVT::v2f64,
6395
+                OPC_Scope, 25, 
6396
+                  OPC_CheckPatternPredicate, 0,
6397
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6398
+                  OPC_EmitMergeInputChains, 1, 2, 
6399
+                  OPC_EmitNodeXForm, 0, 0,
6400
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
6401
+                      1, MVT::v2f64, 7, 1, 4, 5, 6, 7, 8, 9, 
6402
+                25, 
6403
+                  OPC_CheckPatternPredicate, 2,
6404
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6405
+                  OPC_EmitMergeInputChains, 1, 2, 
6406
+                  OPC_EmitNodeXForm, 0, 0,
6407
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
6408
+                      1, MVT::v2f64, 7, 1, 4, 5, 6, 7, 8, 9, 
6409
+                0, 
6410
+              25,  MVT::v4f64,
6411
+                OPC_CheckPatternPredicate, 0,
6412
+                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6413
+                OPC_EmitMergeInputChains, 1, 2, 
6414
+                OPC_EmitNodeXForm, 0, 0,
6415
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
6416
+                    1, MVT::v4f64, 7, 1, 4, 5, 6, 7, 8, 9, 
6417
+              0, 
6418
+            62, 
6419
+              OPC_RecordChild0,
6420
+              OPC_RecordChild1,
6421
+              OPC_CheckType, MVT::v4f32,
6422
+              OPC_Scope, 13, 
6423
+                OPC_CheckPredicate, 31,
6424
+                OPC_CheckPatternPredicate, 0,
6425
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLHPSrr), 0,
6426
+                    1, MVT::v4f32, 2, 0, 1, 
6427
+              13, 
6428
+                OPC_CheckPredicate, 33,
6429
+                OPC_CheckPatternPredicate, 0,
6430
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHLPSrr), 0,
6431
+                    1, MVT::v4f32, 2, 0, 1, 
6432
+              13, 
6433
+                OPC_CheckPredicate, 31,
6434
+                OPC_CheckPatternPredicate, 1,
6435
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
6436
+                    1, MVT::v4f32, 2, 0, 1, 
6437
+              13, 
6438
+                OPC_CheckPredicate, 33,
6439
+                OPC_CheckPatternPredicate, 1,
6440
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
6441
+                    1, MVT::v4f32, 2, 0, 1, 
6442
+              0, 
6443
+            46, 
6444
+              OPC_RecordNode,
6445
+              OPC_RecordChild0,
6446
+              OPC_MoveChild, 1,
6447
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6448
+              OPC_MoveParent,
6449
+              OPC_CheckType, MVT::v4f32,
6450
+              OPC_Scope, 16, 
6451
+                OPC_CheckPredicate, 34,
6452
+                OPC_CheckPatternPredicate, 11,
6453
+                OPC_EmitNodeXForm, 0, 0,
6454
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
6455
+                    1, MVT::v4f32, 2, 1, 2, 
6456
+              16, 
6457
+                OPC_CheckPredicate, 35,
6458
+                OPC_CheckPatternPredicate, 11,
6459
+                OPC_EmitNodeXForm, 0, 0,
6460
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
6461
+                    1, MVT::v4f32, 2, 1, 2, 
6462
+              0, 
6463
+            90|128,2, 
6464
+              OPC_RecordChild0,
6465
+              OPC_Scope, 82, 
6466
+                OPC_RecordChild1,
6467
+                OPC_Scope, 50, 
6468
+                  OPC_CheckPredicate, 36,
6469
+                  OPC_SwitchType , 21,  MVT::v4f32,
6470
+                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
6471
+                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
6472
+                        1, MVT::f32, 2, 1, 2, 
6473
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
6474
+                        1, MVT::v4f32, 2, 0, 3, 
6475
+                  21,  MVT::v2f64,
6476
+                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
6477
+                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
6478
+                        1, MVT::f64, 2, 1, 2, 
6479
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
6480
+                        1, MVT::v2f64, 2, 0, 3, 
6481
+                  0, 
6482
+                27, 
6483
+                  OPC_CheckPredicate, 11,
6484
+                  OPC_CheckType, MVT::v4f32,
6485
+                  OPC_CheckPatternPredicate, 2,
6486
+                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
6487
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
6488
+                      1, MVT::f64, 2, 1, 2, 
6489
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
6490
+                      1, MVT::v4f32, 2, 0, 3, 
6491
+                0, 
6492
+              68, 
6493
+                OPC_MoveChild, 1,
6494
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6495
+                OPC_MoveParent,
6496
+                OPC_SwitchType , 30,  MVT::v2f64,
6497
+                  OPC_Scope, 13, 
6498
+                    OPC_CheckPredicate, 37,
6499
+                    OPC_CheckPatternPredicate, 2,
6500
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
6501
+                        1, MVT::v2f64, 2, 0, 0, 
6502
+                  13, 
6503
+                    OPC_CheckPredicate, 12,
6504
+                    OPC_CheckPatternPredicate, 2,
6505
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
6506
+                        1, MVT::v2f64, 2, 0, 0, 
6507
+                  0, 
6508
+                26,  MVT::v4f32,
6509
+                  OPC_Scope, 11, 
6510
+                    OPC_CheckPredicate, 34,
6511
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
6512
+                        1, MVT::v4f32, 2, 0, 0, 
6513
+                  11, 
6514
+                    OPC_CheckPredicate, 35,
6515
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
6516
+                        1, MVT::v4f32, 2, 0, 0, 
6517
+                  0, 
6518
+                0, 
6519
+              61|128,1, 
6520
+                OPC_RecordChild1,
6521
+                OPC_Scope, 30, 
6522
+                  OPC_CheckPredicate, 12,
6523
+                  OPC_SwitchType , 11,  MVT::v4f32,
6524
+                    OPC_CheckPatternPredicate, 0,
6525
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrr), 0,
6526
+                        1, MVT::v4f32, 2, 0, 1, 
6527
+                  11,  MVT::v2f64,
6528
+                    OPC_CheckPatternPredicate, 0,
6529
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrr), 0,
6530
+                        1, MVT::v2f64, 2, 0, 1, 
6531
+                  0, 
6532
+                30, 
6533
+                  OPC_CheckPredicate, 27,
6534
+                  OPC_SwitchType , 11,  MVT::v4f32,
6535
+                    OPC_CheckPatternPredicate, 0,
6536
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrr), 0,
6537
+                        1, MVT::v4f32, 2, 0, 1, 
6538
+                  11,  MVT::v2f64,
6539
+                    OPC_CheckPatternPredicate, 0,
6540
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrr), 0,
6541
+                        1, MVT::v2f64, 2, 0, 1, 
6542
+                  0, 
6543
+                30, 
6544
+                  OPC_CheckPredicate, 12,
6545
+                  OPC_SwitchType , 11,  MVT::v8f32,
6546
+                    OPC_CheckPatternPredicate, 0,
6547
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSYrr), 0,
6548
+                        1, MVT::v8f32, 2, 0, 1, 
6549
+                  11,  MVT::v4f64,
6550
+                    OPC_CheckPatternPredicate, 0,
6551
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDYrr), 0,
6552
+                        1, MVT::v4f64, 2, 0, 1, 
6553
+                  0, 
6554
+                30, 
6555
+                  OPC_CheckPredicate, 27,
6556
+                  OPC_SwitchType , 11,  MVT::v8f32,
6557
+                    OPC_CheckPatternPredicate, 0,
6558
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSYrr), 0,
6559
+                        1, MVT::v8f32, 2, 0, 1, 
6560
+                  11,  MVT::v4f64,
6561
+                    OPC_CheckPatternPredicate, 0,
6562
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDYrr), 0,
6563
+                        1, MVT::v4f64, 2, 0, 1, 
6564
+                  0, 
6565
+                30, 
6566
+                  OPC_CheckPredicate, 12,
6567
+                  OPC_SwitchType , 11,  MVT::v4f32,
6568
+                    OPC_CheckPatternPredicate, 1,
6569
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
6570
+                        1, MVT::v4f32, 2, 0, 1, 
6571
+                  11,  MVT::v2f64,
6572
+                    OPC_CheckPatternPredicate, 2,
6573
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
6574
+                        1, MVT::v2f64, 2, 0, 1, 
6575
+                  0, 
6576
+                30, 
6577
+                  OPC_CheckPredicate, 27,
6578
+                  OPC_SwitchType , 11,  MVT::v4f32,
6579
+                    OPC_CheckPatternPredicate, 1,
6580
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
6581
+                        1, MVT::v4f32, 2, 0, 1, 
6582
+                  11,  MVT::v2f64,
6583
+                    OPC_CheckPatternPredicate, 2,
6584
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
6585
+                        1, MVT::v2f64, 2, 0, 1, 
6586
+                  0, 
6587
+                0, 
6588
+              0, 
6589
+            50, 
6590
+              OPC_RecordNode,
6591
+              OPC_RecordChild0,
6592
+              OPC_Scope, 24, 
6593
+                OPC_MoveChild, 1,
6594
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6595
+                OPC_MoveParent,
6596
+                OPC_CheckPredicate, 22,
6597
+                OPC_CheckType, MVT::v4f32,
6598
+                OPC_CheckPatternPredicate, 2,
6599
+                OPC_EmitNodeXForm, 0, 0,
6600
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
6601
+                    1, MVT::v4f32, 2, 1, 2, 
6602
+              20, 
6603
+                OPC_RecordChild1,
6604
+                OPC_CheckPredicate, 41,
6605
+                OPC_CheckType, MVT::v4f32,
6606
+                OPC_CheckPatternPredicate, 12,
6607
+                OPC_EmitNodeXForm, 4, 0,
6608
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
6609
+                    1, MVT::v4f32, 3, 2, 1, 3, 
6610
+              0, 
6611
+            41|128,1, 
6612
+              OPC_RecordChild0,
6613
+              OPC_MoveChild, 1,
6614
+              OPC_SwitchOpcode , 71,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
6615
+                OPC_RecordChild0,
6616
+                OPC_Scope, 33, 
6617
+                  OPC_CheckChild0Type, MVT::f32,
6618
+                  OPC_MoveParent,
6619
+                  OPC_CheckPredicate, 36,
6620
+                  OPC_CheckType, MVT::v4f32,
6621
+                  OPC_Scope, 11, 
6622
+                    OPC_CheckPatternPredicate, 0,
6623
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSrr), 0,
6624
+                        1, MVT::v4f32, 2, 0, 1, 
6625
+                  11, 
6626
+                    OPC_CheckPatternPredicate, 1,
6627
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
6628
+                        1, MVT::v4f32, 2, 0, 1, 
6629
+                  0, 
6630
+                33, 
6631
+                  OPC_CheckChild0Type, MVT::f64,
6632
+                  OPC_MoveParent,
6633
+                  OPC_CheckPredicate, 36,
6634
+                  OPC_CheckType, MVT::v2f64,
6635
+                  OPC_Scope, 11, 
6636
+                    OPC_CheckPatternPredicate, 0,
6637
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDrr), 0,
6638
+                        1, MVT::v2f64, 2, 0, 1, 
6639
+                  11, 
6640
+                    OPC_CheckPatternPredicate, 2,
6641
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
6642
+                        1, MVT::v2f64, 2, 0, 1, 
6643
+                  0, 
6644
+                0, 
6645
+              87,  TARGET_OPCODE(ISD::UNDEF),
6646
+                OPC_MoveParent,
6647
+                OPC_SwitchType , 54,  MVT::v4f32,
6648
+                  OPC_Scope, 12, 
6649
+                    OPC_CheckPredicate, 20,
6650
+                    OPC_CheckPatternPredicate, 0,
6651
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrr), 0,
6652
+                        1, MVT::v4f32, 1, 0, 
6653
+                  12, 
6654
+                    OPC_CheckPredicate, 21,
6655
+                    OPC_CheckPatternPredicate, 0,
6656
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrr), 0,
6657
+                        1, MVT::v4f32, 1, 0, 
6658
+                  12, 
6659
+                    OPC_CheckPredicate, 20,
6660
+                    OPC_CheckPatternPredicate, 10,
6661
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
6662
+                        1, MVT::v4f32, 1, 0, 
6663
+                  12, 
6664
+                    OPC_CheckPredicate, 21,
6665
+                    OPC_CheckPatternPredicate, 10,
6666
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
6667
+                        1, MVT::v4f32, 1, 0, 
6668
+                  0, 
6669
+                26,  MVT::v2f64,
6670
+                  OPC_CheckPredicate, 23,
6671
+                  OPC_Scope, 10, 
6672
+                    OPC_CheckPatternPredicate, 0,
6673
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrr), 0,
6674
+                        1, MVT::v2f64, 1, 0, 
6675
+                  10, 
6676
+                    OPC_CheckPatternPredicate, 10,
6677
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrr), 0,
6678
+                        1, MVT::v2f64, 1, 0, 
6679
+                  0, 
6680
+                0, 
6681
+              0, 
6682
+            53|128,1, 
6683
+              OPC_RecordNode,
6684
+              OPC_RecordChild0,
6685
+              OPC_Scope, 42, 
6686
+                OPC_MoveChild, 1,
6687
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
6688
+                OPC_MoveParent,
6689
+                OPC_CheckPredicate, 22,
6690
+                OPC_SwitchType , 13,  MVT::v4f32,
6691
+                  OPC_EmitNodeXForm, 0, 0,
6692
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
6693
+                      1, MVT::v4f32, 3, 1, 1, 2, 
6694
+                15,  MVT::v2f64,
6695
+                  OPC_CheckPatternPredicate, 2,
6696
+                  OPC_EmitNodeXForm, 0, 0,
6697
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
6698
+                      1, MVT::v2f64, 3, 1, 1, 2, 
6699
+                0, 
6700
+              4|128,1, 
6701
+                OPC_RecordChild1,
6702
+                OPC_Scope, 110, 
6703
+                  OPC_CheckPredicate, 28,
6704
+                  OPC_SwitchType , 34,  MVT::v4f32,
6705
+                    OPC_Scope, 15, 
6706
+                      OPC_CheckPatternPredicate, 0,
6707
+                      OPC_EmitNodeXForm, 0, 0,
6708
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
6709
+                          1, MVT::v4f32, 3, 1, 2, 3, 
6710
+                    15, 
6711
+                      OPC_CheckPatternPredicate, 1,
6712
+                      OPC_EmitNodeXForm, 0, 0,
6713
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
6714
+                          1, MVT::v4f32, 3, 1, 2, 3, 
6715
+                    0, 
6716
+                  15,  MVT::v8f32,
6717
+                    OPC_CheckPatternPredicate, 0,
6718
+                    OPC_EmitNodeXForm, 0, 0,
6719
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSYrri), 0,
6720
+                        1, MVT::v8f32, 3, 1, 2, 3, 
6721
+                  34,  MVT::v2f64,
6722
+                    OPC_Scope, 15, 
6723
+                      OPC_CheckPatternPredicate, 0,
6724
+                      OPC_EmitNodeXForm, 0, 0,
6725
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrri), 0,
6726
+                          1, MVT::v2f64, 3, 1, 2, 3, 
6727
+                    15, 
6728
+                      OPC_CheckPatternPredicate, 2,
6729
+                      OPC_EmitNodeXForm, 0, 0,
6730
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
6731
+                          1, MVT::v2f64, 3, 1, 2, 3, 
6732
+                    0, 
6733
+                  15,  MVT::v4f64,
6734
+                    OPC_CheckPatternPredicate, 0,
6735
+                    OPC_EmitNodeXForm, 0, 0,
6736
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDYrri), 0,
6737
+                        1, MVT::v4f64, 3, 1, 2, 3, 
6738
+                  0, 
6739
+                17, 
6740
+                  OPC_CheckPredicate, 11,
6741
+                  OPC_CheckType, MVT::v4f32,
6742
+                  OPC_EmitNodeXForm, 0, 0,
6743
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
6744
+                      1, MVT::v4f32, 3, 2, 1, 3, 
6745
+                0, 
6746
+              0, 
6747
+            0, 
6748
+          94|128,6,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
6749
+            OPC_Scope, 61|128,3, 
6750
+              OPC_MoveChild, 0,
6751
+              OPC_SwitchOpcode , 93|128,1,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
6752
+                OPC_Scope, 11|128,1, 
6753
+                  OPC_MoveChild, 0,
6754
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6755
+                  OPC_RecordMemRef,
6756
+                  OPC_RecordNode,
6757
+                  OPC_CheckFoldableChainNode,
6758
+                  OPC_RecordChild1,
6759
+                  OPC_CheckPredicate, 2,
6760
+                  OPC_SwitchType , 74,  MVT::i32,
6761
+                    OPC_Scope, 46, 
6762
+                      OPC_CheckPredicate, 8,
6763
+                      OPC_MoveParent,
6764
+                      OPC_MoveParent,
6765
+                      OPC_CheckType, MVT::v4i32,
6766
+                      OPC_Scope, 18, 
6767
+                        OPC_CheckPatternPredicate, 0,
6768
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6769
+                        OPC_EmitMergeInputChains1_0,
6770
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6771
+                            1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
6772
+                      18, 
6773
+                        OPC_CheckPatternPredicate, 2,
6774
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6775
+                        OPC_EmitMergeInputChains1_0,
6776
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6777
+                            1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
6778
+                      0, 
6779
+                    24, 
6780
+                      OPC_CheckPredicate, 8,
6781
+                      OPC_MoveParent,
6782
+                      OPC_MoveParent,
6783
+                      OPC_CheckType, MVT::v2i32,
6784
+                      OPC_CheckPatternPredicate, 9,
6785
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6786
+                      OPC_EmitMergeInputChains1_0,
6787
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6788
+                          1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
6789
+                    0, 
6790
+                  48,  MVT::i64,
6791
+                    OPC_CheckPredicate, 3,
6792
+                    OPC_CheckPredicate, 4,
6793
+                    OPC_MoveParent,
6794
+                    OPC_MoveParent,
6795
+                    OPC_CheckType, MVT::v2i64,
6796
+                    OPC_Scope, 18, 
6797
+                      OPC_CheckPatternPredicate, 0,
6798
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6799
+                      OPC_EmitMergeInputChains1_0,
6800
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6801
+                          1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6802
+                    18, 
6803
+                      OPC_CheckPatternPredicate, 2,
6804
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6805
+                      OPC_EmitMergeInputChains1_0,
6806
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6807
+                          1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6808
+                    0, 
6809
+                  0, 
6810
+                77, 
6811
+                  OPC_RecordChild0,
6812
+                  OPC_Scope, 43, 
6813
+                    OPC_CheckChild0Type, MVT::i32,
6814
+                    OPC_MoveParent,
6815
+                    OPC_SwitchType , 24,  MVT::v4i32,
6816
+                      OPC_Scope, 10, 
6817
+                        OPC_CheckPatternPredicate, 0,
6818
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZDI2PDIrr), 0,
6819
+                            1, MVT::v4i32, 1, 0, 
6820
+                      10, 
6821
+                        OPC_CheckPatternPredicate, 2,
6822
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrr), 0,
6823
+                            1, MVT::v4i32, 1, 0, 
6824
+                      0, 
6825
+                    10,  MVT::v2i32,
6826
+                      OPC_CheckPatternPredicate, 9,
6827
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrr), 0,
6828
+                          1, MVT::v2i32, 1, 0, 
6829
+                    0, 
6830
+                  29, 
6831
+                    OPC_CheckChild0Type, MVT::i64,
6832
+                    OPC_MoveParent,
6833
+                    OPC_CheckType, MVT::v2i64,
6834
+                    OPC_Scope, 10, 
6835
+                      OPC_CheckPatternPredicate, 0,
6836
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZQI2PQIrr), 0,
6837
+                          1, MVT::v2i64, 1, 0, 
6838
+                    10, 
6839
+                      OPC_CheckPatternPredicate, 2,
6840
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrr), 0,
6841
+                          1, MVT::v2i64, 1, 0, 
6842
+                    0, 
6843
+                  0, 
6844
+                0, 
6845
+              123,  TARGET_OPCODE(ISD::BIT_CONVERT),
6846
+                OPC_MoveChild, 0,
6847
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6848
+                OPC_RecordMemRef,
6849
+                OPC_RecordNode,
6850
+                OPC_CheckFoldableChainNode,
6851
+                OPC_RecordChild1,
6852
+                OPC_CheckPredicate, 2,
6853
+                OPC_CheckPredicate, 3,
6854
+                OPC_SwitchType , 40,  MVT::v4f32,
6855
+                  OPC_MoveParent,
6856
+                  OPC_MoveParent,
6857
+                  OPC_SwitchType , 16,  MVT::v4i32,
6858
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6859
+                    OPC_EmitMergeInputChains1_0,
6860
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6861
+                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
6862
+                  16,  MVT::v2i64,
6863
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6864
+                    OPC_EmitMergeInputChains1_0,
6865
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6866
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6867
+                  0, 
6868
+                20,  MVT::v2i64,
6869
+                  OPC_MoveParent,
6870
+                  OPC_MoveParent,
6871
+                  OPC_CheckType, MVT::v4i32,
6872
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6873
+                  OPC_EmitMergeInputChains1_0,
6874
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6875
+                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
6876
+                20,  MVT::v4i32,
6877
+                  OPC_MoveParent,
6878
+                  OPC_MoveParent,
6879
+                  OPC_CheckType, MVT::v2i64,
6880
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6881
+                  OPC_EmitMergeInputChains1_0,
6882
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6883
+                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6884
+                20,  MVT::v1i64,
6885
+                  OPC_MoveParent,
6886
+                  OPC_MoveParent,
6887
+                  OPC_CheckType, MVT::v2i32,
6888
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6889
+                  OPC_EmitMergeInputChains1_0,
6890
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6891
+                      1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
6892
+                0, 
6893
+              87,  TARGET_OPCODE(ISD::LOAD),
6894
+                OPC_RecordMemRef,
6895
+                OPC_RecordNode,
6896
+                OPC_RecordChild1,
6897
+                OPC_CheckPredicate, 2,
6898
+                OPC_CheckPredicate, 3,
6899
+                OPC_MoveParent,
6900
+                OPC_SwitchType , 16,  MVT::v4i32,
6901
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6902
+                  OPC_EmitMergeInputChains1_0,
6903
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
6904
+                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
6905
+                57,  MVT::v2i64,
6906
+                  OPC_Scope, 16, 
6907
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6908
+                    OPC_EmitMergeInputChains1_0,
6909
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6910
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6911
+                  18, 
6912
+                    OPC_CheckPatternPredicate, 0,
6913
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6914
+                    OPC_EmitMergeInputChains1_0,
6915
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6916
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6917
+                  18, 
6918
+                    OPC_CheckPatternPredicate, 2,
6919
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6920
+                    OPC_EmitMergeInputChains1_0,
6921
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
6922
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
6923
+                  0, 
6924
+                0, 
6925
+              0, 
6926
+            77, 
6927
+              OPC_RecordChild0,
6928
+              OPC_SwitchType , 24,  MVT::v2i64,
6929
+                OPC_Scope, 10, 
6930
+                  OPC_CheckPatternPredicate, 0,
6931
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZPQILo2PQIrr), 0,
6932
+                      1, MVT::v2i64, 1, 0, 
6933
+                10, 
6934
+                  OPC_CheckPatternPredicate, 2,
6935
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrr), 0,
6936
+                      1, MVT::v2i64, 1, 0, 
6937
+                0, 
6938
+              16,  MVT::v2i32,
6939
+                OPC_EmitNode, TARGET_OPCODE(X86::MMX_V_SET0), 0,
6940
+                    1, MVT::v2i32, 0, 
6941
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
6942
+                    1, MVT::v2i32, 2, 0, 1, 
6943
+              28,  MVT::v4i32,
6944
+                OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PI), 0,
6945
+                    1, MVT::v4i32, 0, 
6946
+                OPC_EmitInteger, MVT::i32, X86::sub_ss,
6947
+                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
6948
+                    1, MVT::f32, 2, 0, 2, 
6949
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
6950
+                    1, MVT::v4i32, 2, 1, 3, 
6951
+              0, 
6952
+            31|128,2, 
6953
+              OPC_MoveChild, 0,
6954
+              OPC_SwitchOpcode , 16|128,1,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
6955
+                OPC_Scope, 93, 
6956
+                  OPC_MoveChild, 0,
6957
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6958
+                  OPC_RecordMemRef,
6959
+                  OPC_RecordNode,
6960
+                  OPC_CheckFoldableChainNode,
6961
+                  OPC_RecordChild1,
6962
+                  OPC_CheckPredicate, 2,
6963
+                  OPC_CheckPredicate, 3,
6964
+                  OPC_CheckPredicate, 4,
6965
+                  OPC_SwitchType , 36,  MVT::f32,
6966
+                    OPC_MoveParent,
6967
+                    OPC_MoveParent,
6968
+                    OPC_CheckType, MVT::v4f32,
6969
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6970
+                    OPC_EmitMergeInputChains1_0,
6971
+                    OPC_EmitInteger, MVT::i32, 0, 
6972
+                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
6973
+                        1, MVT::f32, 5, 2, 3, 4, 5, 6, 
6974
+                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
6975
+                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
6976
+                        1, MVT::v4f32, 3, 7, 8, 9, 
6977
+                  36,  MVT::f64,
6978
+                    OPC_MoveParent,
6979
+                    OPC_MoveParent,
6980
+                    OPC_CheckType, MVT::v2f64,
6981
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6982
+                    OPC_EmitMergeInputChains1_0,
6983
+                    OPC_EmitInteger, MVT::i64, 0, 
6984
+                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
6985
+                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
6986
+                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
6987
+                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
6988
+                        1, MVT::v2f64, 3, 7, 8, 9, 
6989
+                  0, 
6990
+                47, 
6991
+                  OPC_RecordChild0,
6992
+                  OPC_Scope, 21, 
6993
+                    OPC_CheckChild0Type, MVT::f64,
6994
+                    OPC_MoveParent,
6995
+                    OPC_CheckType, MVT::v2f64,
6996
+                    OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
6997
+                        1, MVT::v2f64, 0, 
6998
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
6999
+                        1, MVT::v2f64, 2, 1, 0, 
7000
+                  21, 
7001
+                    OPC_CheckChild0Type, MVT::f32,
7002
+                    OPC_MoveParent,
7003
+                    OPC_CheckType, MVT::v4f32,
7004
+                    OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
7005
+                        1, MVT::v4f32, 0, 
7006
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
7007
+                        1, MVT::v4f32, 2, 1, 0, 
7008
+                  0, 
7009
+                0, 
7010
+              51,  TARGET_OPCODE(ISD::BIT_CONVERT),
7011
+                OPC_MoveChild, 0,
7012
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
7013
+                OPC_RecordMemRef,
7014
+                OPC_RecordNode,
7015
+                OPC_CheckFoldableChainNode,
7016
+                OPC_RecordChild1,
7017
+                OPC_CheckPredicate, 2,
7018
+                OPC_CheckPredicate, 3,
7019
+                OPC_CheckType, MVT::v4f32,
7020
+                OPC_MoveParent,
7021
+                OPC_MoveParent,
7022
+                OPC_CheckType, MVT::v2f64,
7023
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
7024
+                OPC_EmitMergeInputChains1_0,
7025
+                OPC_EmitInteger, MVT::i64, 0, 
7026
+                OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
7027
+                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
7028
+                OPC_EmitInteger, MVT::i32, X86::sub_sd,
7029
+                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
7030
+                    1, MVT::v2f64, 3, 7, 8, 9, 
7031
+              78,  TARGET_OPCODE(ISD::LOAD),
7032
+                OPC_RecordMemRef,
7033
+                OPC_RecordNode,
7034
+                OPC_RecordChild1,
7035
+                OPC_CheckPredicate, 2,
7036
+                OPC_CheckPredicate, 3,
7037
+                OPC_MoveParent,
7038
+                OPC_SwitchType , 32,  MVT::v4f32,
7039
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
7040
+                  OPC_EmitMergeInputChains1_0,
7041
+                  OPC_EmitInteger, MVT::i32, 0, 
7042
+                  OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
7043
+                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
7044
+                  OPC_EmitInteger, MVT::i32, X86::sub_ss,
7045
+                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
7046
+                      1, MVT::v4f32, 3, 7, 8, 9, 
7047
+                32,  MVT::v2f64,
7048
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
7049
+                  OPC_EmitMergeInputChains1_0,
7050
+                  OPC_EmitInteger, MVT::i64, 0, 
7051
+                  OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
7052
+                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
7053
+                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
7054
+                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
7055
+                      1, MVT::v2f64, 3, 7, 8, 9, 
7056
+                0, 
7057
+              0, 
7058
+            45, 
7059
+              OPC_RecordChild0,
7060
+              OPC_SwitchType , 28,  MVT::v4f32,
7061
+                OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
7062
+                    1, MVT::v4f32, 0, 
7063
+                OPC_EmitInteger, MVT::i32, X86::sub_ss,
7064
+                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
7065
+                    1, MVT::f32, 2, 0, 2, 
7066
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
7067
+                    1, MVT::v4f32, 2, 1, 3, 
7068
+              10,  MVT::v2f64,
7069
+                OPC_CheckPatternPredicate, 2,
7070
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrr), 0,
7071
+                    1, MVT::v2f64, 1, 0, 
7072
+              0, 
7073
+            0, 
5118 7074
           82|128,12,  TARGET_OPCODE(X86ISD::CMP),
5119 7075
             OPC_Scope, 121|128,5, 
5120 7076
               OPC_MoveChild, 0,
... ...
@@ -5591,7 +7547,7 @@ SDNode *SelectCode(SDNode *N) {
5591 5591
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
5592 5592
                 OPC_Scope, 62, 
5593 5593
                   OPC_MoveParent,
5594
-                  OPC_CheckPredicate, 19,
5594
+                  OPC_CheckPredicate, 42,
5595 5595
                   OPC_SwitchType , 17,  MVT::i8,
5596 5596
                     OPC_MoveParent,
5597 5597
                     OPC_MoveChild, 1,
... ...
@@ -5630,7 +7586,7 @@ SDNode *SelectCode(SDNode *N) {
5630 5630
                       1, MVT::i32, 2, 0, 2, 
5631 5631
                 0, 
5632 5632
               55, 
5633
-                OPC_CheckPredicate, 19,
5633
+                OPC_CheckPredicate, 42,
5634 5634
                 OPC_SwitchType , 15,  MVT::i8,
5635 5635
                   OPC_MoveParent,
5636 5636
                   OPC_MoveChild, 1,
... ...
@@ -5844,7 +7800,7 @@ SDNode *SelectCode(SDNode *N) {
5844 5844
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIrm), 0|OPFL_Chain|OPFL_MemRefs,
5845 5845
                       2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
5846 5846
                 23, 
5847
-                  OPC_CheckPatternPredicate, 10,
5847
+                  OPC_CheckPatternPredicate, 13,
5848 5848
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5849 5849
                   OPC_EmitMergeInputChains1_1,
5850 5850
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -5863,7 +7819,7 @@ SDNode *SelectCode(SDNode *N) {
5863 5863
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIrr), 0,
5864 5864
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
5865 5865
                 15, 
5866
-                  OPC_CheckPatternPredicate, 10,
5866
+                  OPC_CheckPatternPredicate, 13,
5867 5867
                   OPC_EmitConvertToTarget, 2,
5868 5868
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIrr), 0,
5869 5869
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -5895,7 +7851,7 @@ SDNode *SelectCode(SDNode *N) {
5895 5895
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIArm), 0|OPFL_Chain|OPFL_MemRefs,
5896 5896
                       2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
5897 5897
                 23, 
5898
-                  OPC_CheckPatternPredicate, 10,
5898
+                  OPC_CheckPatternPredicate, 13,
5899 5899
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5900 5900
                   OPC_EmitMergeInputChains1_1,
5901 5901
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -5914,7 +7870,7 @@ SDNode *SelectCode(SDNode *N) {
5914 5914
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIArr), 0,
5915 5915
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
5916 5916
                 15, 
5917
-                  OPC_CheckPatternPredicate, 10,
5917
+                  OPC_CheckPatternPredicate, 13,
5918 5918
                   OPC_EmitConvertToTarget, 2,
5919 5919
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIArr), 0,
5920 5920
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -5946,7 +7902,7 @@ SDNode *SelectCode(SDNode *N) {
5946 5946
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRICrm), 0|OPFL_Chain|OPFL_MemRefs,
5947 5947
                       2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
5948 5948
                 23, 
5949
-                  OPC_CheckPatternPredicate, 10,
5949
+                  OPC_CheckPatternPredicate, 13,
5950 5950
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
5951 5951
                   OPC_EmitMergeInputChains1_1,
5952 5952
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -5965,7 +7921,7 @@ SDNode *SelectCode(SDNode *N) {
5965 5965
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRICrr), 0,
5966 5966
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
5967 5967
                 15, 
5968
-                  OPC_CheckPatternPredicate, 10,
5968
+                  OPC_CheckPatternPredicate, 13,
5969 5969
                   OPC_EmitConvertToTarget, 2,
5970 5970
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRICrr), 0,
5971 5971
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -5997,7 +7953,7 @@ SDNode *SelectCode(SDNode *N) {
5997 5997
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIOrm), 0|OPFL_Chain|OPFL_MemRefs,
5998 5998
                       2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
5999 5999
                 23, 
6000
-                  OPC_CheckPatternPredicate, 10,
6000
+                  OPC_CheckPatternPredicate, 13,
6001 6001
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6002 6002
                   OPC_EmitMergeInputChains1_1,
6003 6003
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -6016,7 +7972,7 @@ SDNode *SelectCode(SDNode *N) {
6016 6016
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIOrr), 0,
6017 6017
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
6018 6018
                 15, 
6019
-                  OPC_CheckPatternPredicate, 10,
6019
+                  OPC_CheckPatternPredicate, 13,
6020 6020
                   OPC_EmitConvertToTarget, 2,
6021 6021
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIOrr), 0,
6022 6022
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -6048,7 +8004,7 @@ SDNode *SelectCode(SDNode *N) {
6048 6048
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRISrm), 0|OPFL_Chain|OPFL_MemRefs,
6049 6049
                       2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
6050 6050
                 23, 
6051
-                  OPC_CheckPatternPredicate, 10,
6051
+                  OPC_CheckPatternPredicate, 13,
6052 6052
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6053 6053
                   OPC_EmitMergeInputChains1_1,
6054 6054
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -6067,7 +8023,7 @@ SDNode *SelectCode(SDNode *N) {
6067 6067
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRISrr), 0,
6068 6068
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
6069 6069
                 15, 
6070
-                  OPC_CheckPatternPredicate, 10,
6070
+                  OPC_CheckPatternPredicate, 13,
6071 6071
                   OPC_EmitConvertToTarget, 2,
6072 6072
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRISrr), 0,
6073 6073
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -6099,7 +8055,7 @@ SDNode *SelectCode(SDNode *N) {
6099 6099
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIZrm), 0|OPFL_Chain|OPFL_MemRefs,
6100 6100
                       2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
6101 6101
                 23, 
6102
-                  OPC_CheckPatternPredicate, 10,
6102
+                  OPC_CheckPatternPredicate, 13,
6103 6103
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6104 6104
                   OPC_EmitMergeInputChains1_1,
6105 6105
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -6118,7 +8074,7 @@ SDNode *SelectCode(SDNode *N) {
6118 6118
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIZrr), 0,
6119 6119
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
6120 6120
                 15, 
6121
-                  OPC_CheckPatternPredicate, 10,
6121
+                  OPC_CheckPatternPredicate, 13,
6122 6122
                   OPC_EmitConvertToTarget, 2,
6123 6123
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIZrr), 0,
6124 6124
                       2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -6154,7 +8110,7 @@ SDNode *SelectCode(SDNode *N) {
6154 6154
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
6155 6155
                       2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
6156 6156
                 31, 
6157
-                  OPC_CheckPatternPredicate, 10,
6157
+                  OPC_CheckPatternPredicate, 13,
6158 6158
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6159 6159
                   OPC_EmitMergeInputChains, 1, 2, 
6160 6160
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -6178,7 +8134,7 @@ SDNode *SelectCode(SDNode *N) {
6178 6178
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIrr), 0|OPFL_FlagInput,
6179 6179
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6180 6180
                 21, 
6181
-                  OPC_CheckPatternPredicate, 10,
6181
+                  OPC_CheckPatternPredicate, 13,
6182 6182
                   OPC_EmitConvertToTarget, 4,
6183 6183
                   OPC_EmitCopyToReg, 1, X86::EAX,
6184 6184
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -6216,7 +8172,7 @@ SDNode *SelectCode(SDNode *N) {
6216 6216
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIArm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
6217 6217
                       2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
6218 6218
                 31, 
6219
-                  OPC_CheckPatternPredicate, 10,
6219
+                  OPC_CheckPatternPredicate, 13,
6220 6220
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6221 6221
                   OPC_EmitMergeInputChains, 1, 2, 
6222 6222
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -6240,7 +8196,7 @@ SDNode *SelectCode(SDNode *N) {
6240 6240
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIArr), 0|OPFL_FlagInput,
6241 6241
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6242 6242
                 21, 
6243
-                  OPC_CheckPatternPredicate, 10,
6243
+                  OPC_CheckPatternPredicate, 13,
6244 6244
                   OPC_EmitConvertToTarget, 4,
6245 6245
                   OPC_EmitCopyToReg, 1, X86::EAX,
6246 6246
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -6278,7 +8234,7 @@ SDNode *SelectCode(SDNode *N) {
6278 6278
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRICrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
6279 6279
                       2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
6280 6280
                 31, 
6281
-                  OPC_CheckPatternPredicate, 10,
6281
+                  OPC_CheckPatternPredicate, 13,
6282 6282
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6283 6283
                   OPC_EmitMergeInputChains, 1, 2, 
6284 6284
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -6302,7 +8258,7 @@ SDNode *SelectCode(SDNode *N) {
6302 6302
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRICrr), 0|OPFL_FlagInput,
6303 6303
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6304 6304
                 21, 
6305
-                  OPC_CheckPatternPredicate, 10,
6305
+                  OPC_CheckPatternPredicate, 13,
6306 6306
                   OPC_EmitConvertToTarget, 4,
6307 6307
                   OPC_EmitCopyToReg, 1, X86::EAX,
6308 6308
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -6340,7 +8296,7 @@ SDNode *SelectCode(SDNode *N) {
6340 6340
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIOrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
6341 6341
                       2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
6342 6342
                 31, 
6343
-                  OPC_CheckPatternPredicate, 10,
6343
+                  OPC_CheckPatternPredicate, 13,
6344 6344
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6345 6345
                   OPC_EmitMergeInputChains, 1, 2, 
6346 6346
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -6364,7 +8320,7 @@ SDNode *SelectCode(SDNode *N) {
6364 6364
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIOrr), 0|OPFL_FlagInput,
6365 6365
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6366 6366
                 21, 
6367
-                  OPC_CheckPatternPredicate, 10,
6367
+                  OPC_CheckPatternPredicate, 13,
6368 6368
                   OPC_EmitConvertToTarget, 4,
6369 6369
                   OPC_EmitCopyToReg, 1, X86::EAX,
6370 6370
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -6402,7 +8358,7 @@ SDNode *SelectCode(SDNode *N) {
6402 6402
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRISrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
6403 6403
                       2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
6404 6404
                 31, 
6405
-                  OPC_CheckPatternPredicate, 10,
6405
+                  OPC_CheckPatternPredicate, 13,
6406 6406
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6407 6407
                   OPC_EmitMergeInputChains, 1, 2, 
6408 6408
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -6426,7 +8382,7 @@ SDNode *SelectCode(SDNode *N) {
6426 6426
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRISrr), 0|OPFL_FlagInput,
6427 6427
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6428 6428
                 21, 
6429
-                  OPC_CheckPatternPredicate, 10,
6429
+                  OPC_CheckPatternPredicate, 13,
6430 6430
                   OPC_EmitConvertToTarget, 4,
6431 6431
                   OPC_EmitCopyToReg, 1, X86::EAX,
6432 6432
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -6464,7 +8420,7 @@ SDNode *SelectCode(SDNode *N) {
6464 6464
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIZrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
6465 6465
                       2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
6466 6466
                 31, 
6467
-                  OPC_CheckPatternPredicate, 10,
6467
+                  OPC_CheckPatternPredicate, 13,
6468 6468
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
6469 6469
                   OPC_EmitMergeInputChains, 1, 2, 
6470 6470
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -6488,7 +8444,7 @@ SDNode *SelectCode(SDNode *N) {
6488 6488
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIZrr), 0|OPFL_FlagInput,
6489 6489
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6490 6490
                 21, 
6491
-                  OPC_CheckPatternPredicate, 10,
6491
+                  OPC_CheckPatternPredicate, 13,
6492 6492
                   OPC_EmitConvertToTarget, 4,
6493 6493
                   OPC_EmitCopyToReg, 1, X86::EAX,
6494 6494
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -6496,495 +8452,6 @@ SDNode *SelectCode(SDNode *N) {
6496 6496
                       2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
6497 6497
                 0, 
6498 6498
               0, 
6499
-            87, 
6500
-              OPC_CheckInteger, 34|128,6, 
6501
-              OPC_MoveParent,
6502
-              OPC_Scope, 54, 
6503
-                OPC_MoveChild, 1,
6504
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6505
-                OPC_RecordMemRef,
6506
-                OPC_RecordNode,
6507
-                OPC_CheckFoldableChainNode,
6508
-                OPC_RecordChild1,
6509
-                OPC_CheckPredicate, 2,
6510
-                OPC_CheckPredicate, 3,
6511
-                OPC_MoveParent,
6512
-                OPC_Scope, 18, 
6513
-                  OPC_CheckPatternPredicate, 0,
6514
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6515
-                  OPC_EmitMergeInputChains1_0,
6516
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6517
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6518
-                18, 
6519
-                  OPC_CheckPatternPredicate, 1,
6520
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6521
-                  OPC_EmitMergeInputChains1_0,
6522
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6523
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6524
-                0, 
6525
-              25, 
6526
-                OPC_RecordChild1,
6527
-                OPC_Scope, 10, 
6528
-                  OPC_CheckPatternPredicate, 0,
6529
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SIrr), 0,
6530
-                      1, MVT::i32, 1, 0, 
6531
-                10, 
6532
-                  OPC_CheckPatternPredicate, 1,
6533
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SIrr), 0,
6534
-                      1, MVT::i32, 1, 0, 
6535
-                0, 
6536
-              0, 
6537
-            87, 
6538
-              OPC_CheckInteger, 35|128,6, 
6539
-              OPC_MoveParent,
6540
-              OPC_Scope, 54, 
6541
-                OPC_MoveChild, 1,
6542
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6543
-                OPC_RecordMemRef,
6544
-                OPC_RecordNode,
6545
-                OPC_CheckFoldableChainNode,
6546
-                OPC_RecordChild1,
6547
-                OPC_CheckPredicate, 2,
6548
-                OPC_CheckPredicate, 3,
6549
-                OPC_MoveParent,
6550
-                OPC_Scope, 18, 
6551
-                  OPC_CheckPatternPredicate, 0,
6552
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6553
-                  OPC_EmitMergeInputChains1_0,
6554
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6555
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6556
-                18, 
6557
-                  OPC_CheckPatternPredicate, 1,
6558
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6559
-                  OPC_EmitMergeInputChains1_0,
6560
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6561
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6562
-                0, 
6563
-              25, 
6564
-                OPC_RecordChild1,
6565
-                OPC_Scope, 10, 
6566
-                  OPC_CheckPatternPredicate, 0,
6567
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SI64rr), 0,
6568
-                      1, MVT::i64, 1, 0, 
6569
-                10, 
6570
-                  OPC_CheckPatternPredicate, 1,
6571
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SI64rr), 0,
6572
-                      1, MVT::i64, 1, 0, 
6573
-                0, 
6574
-              0, 
6575
-            87, 
6576
-              OPC_CheckInteger, 114|128,4, 
6577
-              OPC_MoveParent,
6578
-              OPC_Scope, 54, 
6579
-                OPC_MoveChild, 1,
6580
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6581
-                OPC_RecordMemRef,
6582
-                OPC_RecordNode,
6583
-                OPC_CheckFoldableChainNode,
6584
-                OPC_RecordChild1,
6585
-                OPC_CheckPredicate, 2,
6586
-                OPC_CheckPredicate, 3,
6587
-                OPC_MoveParent,
6588
-                OPC_Scope, 18, 
6589
-                  OPC_CheckPatternPredicate, 0,
6590
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6591
-                  OPC_EmitMergeInputChains1_0,
6592
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6593
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6594
-                18, 
6595
-                  OPC_CheckPatternPredicate, 2,
6596
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6597
-                  OPC_EmitMergeInputChains1_0,
6598
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6599
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6600
-                0, 
6601
-              25, 
6602
-                OPC_RecordChild1,
6603
-                OPC_Scope, 10, 
6604
-                  OPC_CheckPatternPredicate, 0,
6605
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SIrr), 0,
6606
-                      1, MVT::i32, 1, 0, 
6607
-                10, 
6608
-                  OPC_CheckPatternPredicate, 2,
6609
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SIrr), 0,
6610
-                      1, MVT::i32, 1, 0, 
6611
-                0, 
6612
-              0, 
6613
-            87, 
6614
-              OPC_CheckInteger, 115|128,4, 
6615
-              OPC_MoveParent,
6616
-              OPC_Scope, 54, 
6617
-                OPC_MoveChild, 1,
6618
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6619
-                OPC_RecordMemRef,
6620
-                OPC_RecordNode,
6621
-                OPC_CheckFoldableChainNode,
6622
-                OPC_RecordChild1,
6623
-                OPC_CheckPredicate, 2,
6624
-                OPC_CheckPredicate, 3,
6625
-                OPC_MoveParent,
6626
-                OPC_Scope, 18, 
6627
-                  OPC_CheckPatternPredicate, 0,
6628
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6629
-                  OPC_EmitMergeInputChains1_0,
6630
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6631
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6632
-                18, 
6633
-                  OPC_CheckPatternPredicate, 2,
6634
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6635
-                  OPC_EmitMergeInputChains1_0,
6636
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6637
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6638
-                0, 
6639
-              25, 
6640
-                OPC_RecordChild1,
6641
-                OPC_Scope, 10, 
6642
-                  OPC_CheckPatternPredicate, 0,
6643
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SI64rr), 0,
6644
-                      1, MVT::i64, 1, 0, 
6645
-                10, 
6646
-                  OPC_CheckPatternPredicate, 2,
6647
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SI64rr), 0,
6648
-                      1, MVT::i64, 1, 0, 
6649
-                0, 
6650
-              0, 
6651
-            87, 
6652
-              OPC_CheckInteger, 38|128,6, 
6653
-              OPC_MoveParent,
6654
-              OPC_Scope, 54, 
6655
-                OPC_MoveChild, 1,
6656
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6657
-                OPC_RecordMemRef,
6658
-                OPC_RecordNode,
6659
-                OPC_CheckFoldableChainNode,
6660
-                OPC_RecordChild1,
6661
-                OPC_CheckPredicate, 2,
6662
-                OPC_CheckPredicate, 3,
6663
-                OPC_MoveParent,
6664
-                OPC_Scope, 18, 
6665
-                  OPC_CheckPatternPredicate, 0,
6666
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6667
-                  OPC_EmitMergeInputChains1_0,
6668
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6669
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6670
-                18, 
6671
-                  OPC_CheckPatternPredicate, 1,
6672
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6673
-                  OPC_EmitMergeInputChains1_0,
6674
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6675
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6676
-                0, 
6677
-              25, 
6678
-                OPC_RecordChild1,
6679
-                OPC_Scope, 10, 
6680
-                  OPC_CheckPatternPredicate, 0,
6681
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SIrr), 0,
6682
-                      1, MVT::i32, 1, 0, 
6683
-                10, 
6684
-                  OPC_CheckPatternPredicate, 1,
6685
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SIrr), 0,
6686
-                      1, MVT::i32, 1, 0, 
6687
-                0, 
6688
-              0, 
6689
-            87, 
6690
-              OPC_CheckInteger, 39|128,6, 
6691
-              OPC_MoveParent,
6692
-              OPC_Scope, 54, 
6693
-                OPC_MoveChild, 1,
6694
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6695
-                OPC_RecordMemRef,
6696
-                OPC_RecordNode,
6697
-                OPC_CheckFoldableChainNode,
6698
-                OPC_RecordChild1,
6699
-                OPC_CheckPredicate, 2,
6700
-                OPC_CheckPredicate, 3,
6701
-                OPC_MoveParent,
6702
-                OPC_Scope, 18, 
6703
-                  OPC_CheckPatternPredicate, 0,
6704
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6705
-                  OPC_EmitMergeInputChains1_0,
6706
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6707
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6708
-                18, 
6709
-                  OPC_CheckPatternPredicate, 1,
6710
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6711
-                  OPC_EmitMergeInputChains1_0,
6712
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6713
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6714
-                0, 
6715
-              25, 
6716
-                OPC_RecordChild1,
6717
-                OPC_Scope, 10, 
6718
-                  OPC_CheckPatternPredicate, 0,
6719
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SI64rr), 0,
6720
-                      1, MVT::i64, 1, 0, 
6721
-                10, 
6722
-                  OPC_CheckPatternPredicate, 1,
6723
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SI64rr), 0,
6724
-                      1, MVT::i64, 1, 0, 
6725
-                0, 
6726
-              0, 
6727
-            87, 
6728
-              OPC_CheckInteger, 122|128,4, 
6729
-              OPC_MoveParent,
6730
-              OPC_Scope, 54, 
6731
-                OPC_MoveChild, 1,
6732
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6733
-                OPC_RecordMemRef,
6734
-                OPC_RecordNode,
6735
-                OPC_CheckFoldableChainNode,
6736
-                OPC_RecordChild1,
6737
-                OPC_CheckPredicate, 2,
6738
-                OPC_CheckPredicate, 3,
6739
-                OPC_MoveParent,
6740
-                OPC_Scope, 18, 
6741
-                  OPC_CheckPatternPredicate, 0,
6742
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6743
-                  OPC_EmitMergeInputChains1_0,
6744
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6745
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6746
-                18, 
6747
-                  OPC_CheckPatternPredicate, 2,
6748
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6749
-                  OPC_EmitMergeInputChains1_0,
6750
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
6751
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
6752
-                0, 
6753
-              25, 
6754
-                OPC_RecordChild1,
6755
-                OPC_Scope, 10, 
6756
-                  OPC_CheckPatternPredicate, 0,
6757
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SIrr), 0,
6758
-                      1, MVT::i32, 1, 0, 
6759
-                10, 
6760
-                  OPC_CheckPatternPredicate, 2,
6761
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SIrr), 0,
6762
-                      1, MVT::i32, 1, 0, 
6763
-                0, 
6764
-              0, 
6765
-            87, 
6766
-              OPC_CheckInteger, 123|128,4, 
6767
-              OPC_MoveParent,
6768
-              OPC_Scope, 54, 
6769
-                OPC_MoveChild, 1,
6770
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6771
-                OPC_RecordMemRef,
6772
-                OPC_RecordNode,
6773
-                OPC_CheckFoldableChainNode,
6774
-                OPC_RecordChild1,
6775
-                OPC_CheckPredicate, 2,
6776
-                OPC_CheckPredicate, 3,
6777
-                OPC_MoveParent,
6778
-                OPC_Scope, 18, 
6779
-                  OPC_CheckPatternPredicate, 0,
6780
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6781
-                  OPC_EmitMergeInputChains1_0,
6782
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6783
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6784
-                18, 
6785
-                  OPC_CheckPatternPredicate, 2,
6786
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
6787
-                  OPC_EmitMergeInputChains1_0,
6788
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
6789
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
6790
-                0, 
6791
-              25, 
6792
-                OPC_RecordChild1,
6793
-                OPC_Scope, 10, 
6794
-                  OPC_CheckPatternPredicate, 0,
6795
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SI64rr), 0,
6796
-                      1, MVT::i64, 1, 0, 
6797
-                10, 
6798
-                  OPC_CheckPatternPredicate, 2,
6799
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SI64rr), 0,
6800
-                      1, MVT::i64, 1, 0, 
6801
-                0, 
6802
-              0, 
6803
-            54, 
6804
-              OPC_CheckInteger, 1|128,6, 
6805
-              OPC_MoveParent,
6806
-              OPC_RecordChild1,
6807
-              OPC_Scope, 33, 
6808
-                OPC_MoveChild, 2,
6809
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6810
-                OPC_RecordMemRef,
6811
-                OPC_RecordNode,
6812
-                OPC_CheckFoldableChainNode,
6813
-                OPC_RecordChild1,
6814
-                OPC_CheckPredicate, 2,
6815
-                OPC_CheckPredicate, 3,
6816
-                OPC_MoveParent,
6817
-                OPC_CheckPatternPredicate, 10,
6818
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6819
-                OPC_EmitMergeInputChains1_1,
6820
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m8), 0|OPFL_Chain|OPFL_MemRefs,
6821
-                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
6822
-              12, 
6823
-                OPC_RecordChild2,
6824
-                OPC_CheckPatternPredicate, 10,
6825
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r8), 0,
6826
-                    1, MVT::i32, 2, 0, 1, 
6827
-              0, 
6828
-            54, 
6829
-              OPC_CheckInteger, 127|128,5, 
6830
-              OPC_MoveParent,
6831
-              OPC_RecordChild1,
6832
-              OPC_Scope, 33, 
6833
-                OPC_MoveChild, 2,
6834
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6835
-                OPC_RecordMemRef,
6836
-                OPC_RecordNode,
6837
-                OPC_CheckFoldableChainNode,
6838
-                OPC_RecordChild1,
6839
-                OPC_CheckPredicate, 2,
6840
-                OPC_CheckPredicate, 3,
6841
-                OPC_MoveParent,
6842
-                OPC_CheckPatternPredicate, 10,
6843
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6844
-                OPC_EmitMergeInputChains1_1,
6845
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m16), 0|OPFL_Chain|OPFL_MemRefs,
6846
-                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
6847
-              12, 
6848
-                OPC_RecordChild2,
6849
-                OPC_CheckPatternPredicate, 10,
6850
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r16), 0,
6851
-                    1, MVT::i32, 2, 0, 1, 
6852
-              0, 
6853
-            54, 
6854
-              OPC_CheckInteger, 0|128,6, 
6855
-              OPC_MoveParent,
6856
-              OPC_RecordChild1,
6857
-              OPC_Scope, 33, 
6858
-                OPC_MoveChild, 2,
6859
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6860
-                OPC_RecordMemRef,
6861
-                OPC_RecordNode,
6862
-                OPC_CheckFoldableChainNode,
6863
-                OPC_RecordChild1,
6864
-                OPC_CheckPredicate, 2,
6865
-                OPC_CheckPredicate, 3,
6866
-                OPC_MoveParent,
6867
-                OPC_CheckPatternPredicate, 10,
6868
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6869
-                OPC_EmitMergeInputChains1_1,
6870
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m32), 0|OPFL_Chain|OPFL_MemRefs,
6871
-                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
6872
-              12, 
6873
-                OPC_RecordChild2,
6874
-                OPC_CheckPatternPredicate, 10,
6875
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r32), 0,
6876
-                    1, MVT::i32, 2, 0, 1, 
6877
-              0, 
6878
-            54, 
6879
-              OPC_CheckInteger, 3|128,6, 
6880
-              OPC_MoveParent,
6881
-              OPC_RecordChild1,
6882
-              OPC_Scope, 33, 
6883
-                OPC_MoveChild, 2,
6884
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6885
-                OPC_RecordMemRef,
6886
-                OPC_RecordNode,
6887
-                OPC_CheckFoldableChainNode,
6888
-                OPC_RecordChild1,
6889
-                OPC_CheckPredicate, 2,
6890
-                OPC_CheckPredicate, 3,
6891
-                OPC_MoveParent,
6892
-                OPC_CheckPatternPredicate, 10,
6893
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6894
-                OPC_EmitMergeInputChains1_1,
6895
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64m8), 0|OPFL_Chain|OPFL_MemRefs,
6896
-                    1, MVT::i64, 6, 0, 3, 4, 5, 6, 7, 
6897
-              12, 
6898
-                OPC_RecordChild2,
6899
-                OPC_CheckPatternPredicate, 10,
6900
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64r8), 0,
6901
-                    1, MVT::i64, 2, 0, 1, 
6902
-              0, 
6903
-            54, 
6904
-              OPC_CheckInteger, 2|128,6, 
6905
-              OPC_MoveParent,
6906
-              OPC_RecordChild1,
6907
-              OPC_Scope, 33, 
6908
-                OPC_MoveChild, 2,
6909
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
6910
-                OPC_RecordMemRef,
6911
-                OPC_RecordNode,
6912
-                OPC_CheckFoldableChainNode,
6913
-                OPC_RecordChild1,
6914
-                OPC_CheckPredicate, 2,
6915
-                OPC_CheckPredicate, 3,
6916
-                OPC_MoveParent,
6917
-                OPC_CheckPatternPredicate, 10,
6918
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
6919
-                OPC_EmitMergeInputChains1_1,
6920
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64m64), 0|OPFL_Chain|OPFL_MemRefs,
6921
-                    1, MVT::i64, 6, 0, 3, 4, 5, 6, 7, 
6922
-              12, 
6923
-                OPC_RecordChild2,
6924
-                OPC_CheckPatternPredicate, 10,
6925
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64r64), 0,
6926
-                    1, MVT::i64, 2, 0, 1, 
6927
-              0, 
6928
-            29, 
6929
-              OPC_CheckInteger, 47|128,6, 
6930
-              OPC_MoveParent,
6931
-              OPC_RecordChild1,
6932
-              OPC_Scope, 10, 
6933
-                OPC_CheckPatternPredicate, 1,
6934
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVMSKPSrr), 0,
6935
-                    1, MVT::i32, 1, 0, 
6936
-              10, 
6937
-                OPC_CheckPatternPredicate, 0,
6938
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPSrr), 0,
6939
-                    1, MVT::i32, 1, 0, 
6940
-              0, 
6941
-            29, 
6942
-              OPC_CheckInteger, 6|128,5, 
6943
-              OPC_MoveParent,
6944
-              OPC_RecordChild1,
6945
-              OPC_Scope, 10, 
6946
-                OPC_CheckPatternPredicate, 2,
6947
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVMSKPDrr), 0,
6948
-                    1, MVT::i32, 1, 0, 
6949
-              10, 
6950
-                OPC_CheckPatternPredicate, 0,
6951
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPDrr), 0,
6952
-                    1, MVT::i32, 1, 0, 
6953
-              0, 
6954
-            15, 
6955
-              OPC_CheckInteger, 97|128,3, 
6956
-              OPC_MoveParent,
6957
-              OPC_RecordChild1,
6958
-              OPC_CheckPatternPredicate, 0,
6959
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPSYrr), 0,
6960
-                  1, MVT::i32, 1, 0, 
6961
-            15, 
6962
-              OPC_CheckInteger, 96|128,3, 
6963
-              OPC_MoveParent,
6964
-              OPC_RecordChild1,
6965
-              OPC_CheckPatternPredicate, 0,
6966
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPDYrr), 0,
6967
-                  1, MVT::i32, 1, 0, 
6968
-            29, 
6969
-              OPC_CheckInteger, 31|128,5, 
6970
-              OPC_MoveParent,
6971
-              OPC_RecordChild1,
6972
-              OPC_Scope, 10, 
6973
-                OPC_CheckPatternPredicate, 0,
6974
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVMSKBrr), 0,
6975
-                    1, MVT::i32, 1, 0, 
6976
-              10, 
6977
-                OPC_CheckPatternPredicate, 2,
6978
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVMSKBrr), 0,
6979
-                    1, MVT::i32, 1, 0, 
6980
-              0, 
6981
-            15, 
6982
-              OPC_CheckInteger, 56|128,4, 
6983
-              OPC_MoveParent,
6984
-              OPC_RecordChild1,
6985
-              OPC_CheckPatternPredicate, 9,
6986
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMOVMSKBrr), 0,
6987
-                  1, MVT::i32, 1, 0, 
6988 6499
             57|128,1, 
6989 6500
               OPC_CheckInteger, 109|128,5, 
6990 6501
               OPC_MoveParent,
... ...
@@ -7796,7 +9263,7 @@ SDNode *SelectCode(SDNode *N) {
7796 7796
                   OPC_CheckFoldableChainNode,
7797 7797
                   OPC_RecordChild1,
7798 7798
                   OPC_CheckPredicate, 2,
7799
-                  OPC_CheckPredicate, 20,
7799
+                  OPC_CheckPredicate, 43,
7800 7800
                   OPC_CheckType, MVT::i32,
7801 7801
                   OPC_MoveParent,
7802 7802
                   OPC_CheckType, MVT::v4i32,
... ...
@@ -7865,7 +9332,7 @@ SDNode *SelectCode(SDNode *N) {
7865 7865
                   OPC_CheckFoldableChainNode,
7866 7866
                   OPC_RecordChild1,
7867 7867
                   OPC_CheckPredicate, 2,
7868
-                  OPC_CheckPredicate, 20,
7868
+                  OPC_CheckPredicate, 43,
7869 7869
                   OPC_CheckType, MVT::i32,
7870 7870
                   OPC_MoveParent,
7871 7871
                   OPC_CheckType, MVT::v4i32,
... ...
@@ -7912,7 +9379,7 @@ SDNode *SelectCode(SDNode *N) {
7912 7912
                 OPC_RecordChild1,
7913 7913
                 OPC_CheckPredicate, 2,
7914 7914
                 OPC_CheckPredicate, 3,
7915
-                OPC_CheckPredicate, 21,
7915
+                OPC_CheckPredicate, 19,
7916 7916
                 OPC_CheckType, MVT::v16i8,
7917 7917
                 OPC_MoveParent,
7918 7918
                 OPC_MoveParent,
... ...
@@ -7968,7 +9435,7 @@ SDNode *SelectCode(SDNode *N) {
7968 7968
                 OPC_RecordChild1,
7969 7969
                 OPC_CheckPredicate, 2,
7970 7970
                 OPC_CheckPredicate, 3,
7971
-                OPC_CheckPredicate, 21,
7971
+                OPC_CheckPredicate, 19,
7972 7972
                 OPC_CheckType, MVT::v2i64,
7973 7973
                 OPC_MoveParent,
7974 7974
                 OPC_MoveParent,
... ...
@@ -8012,7 +9479,7 @@ SDNode *SelectCode(SDNode *N) {
8012 8012
                 OPC_RecordChild1,
8013 8013
                 OPC_CheckPredicate, 2,
8014 8014
                 OPC_CheckPredicate, 3,
8015
-                OPC_CheckPredicate, 21,
8015
+                OPC_CheckPredicate, 19,
8016 8016
                 OPC_CheckType, MVT::v2i64,
8017 8017
                 OPC_MoveParent,
8018 8018
                 OPC_MoveParent,
... ...
@@ -8056,7 +9523,7 @@ SDNode *SelectCode(SDNode *N) {
8056 8056
                 OPC_RecordChild1,
8057 8057
                 OPC_CheckPredicate, 2,
8058 8058
                 OPC_CheckPredicate, 3,
8059
-                OPC_CheckPredicate, 21,
8059
+                OPC_CheckPredicate, 19,
8060 8060
                 OPC_CheckType, MVT::v2i64,
8061 8061
                 OPC_MoveParent,
8062 8062
                 OPC_MoveParent,
... ...
@@ -8100,7 +9567,7 @@ SDNode *SelectCode(SDNode *N) {
8100 8100
                 OPC_RecordChild1,
8101 8101
                 OPC_CheckPredicate, 2,
8102 8102
                 OPC_CheckPredicate, 3,
8103
-                OPC_CheckPredicate, 21,
8103
+                OPC_CheckPredicate, 19,
8104 8104
                 OPC_CheckType, MVT::v2i64,
8105 8105
                 OPC_MoveParent,
8106 8106
                 OPC_MoveParent,
... ...
@@ -8144,7 +9611,7 @@ SDNode *SelectCode(SDNode *N) {
8144 8144
                 OPC_RecordChild1,
8145 8145
                 OPC_CheckPredicate, 2,
8146 8146
                 OPC_CheckPredicate, 3,
8147
-                OPC_CheckPredicate, 21,
8147
+                OPC_CheckPredicate, 19,
8148 8148
                 OPC_CheckType, MVT::v2i64,
8149 8149
                 OPC_MoveParent,
8150 8150
                 OPC_MoveParent,
... ...
@@ -8172,7 +9639,7 @@ SDNode *SelectCode(SDNode *N) {
8172 8172
                 OPC_RecordChild1,
8173 8173
                 OPC_CheckPredicate, 2,
8174 8174
                 OPC_CheckPredicate, 3,
8175
-                OPC_CheckPredicate, 21,
8175
+                OPC_CheckPredicate, 19,
8176 8176
                 OPC_CheckType, MVT::v2i64,
8177 8177
                 OPC_MoveParent,
8178 8178
                 OPC_MoveParent,
... ...
@@ -8218,7 +9685,7 @@ SDNode *SelectCode(SDNode *N) {
8218 8218
                 OPC_RecordChild1,
8219 8219
                 OPC_CheckPredicate, 2,
8220 8220
                 OPC_CheckPredicate, 3,
8221
-                OPC_CheckPredicate, 21,
8221
+                OPC_CheckPredicate, 19,
8222 8222
                 OPC_CheckType, MVT::v2i64,
8223 8223
                 OPC_MoveParent,
8224 8224
                 OPC_MoveParent,
... ...
@@ -8246,7 +9713,7 @@ SDNode *SelectCode(SDNode *N) {
8246 8246
                 OPC_RecordChild1,
8247 8247
                 OPC_CheckPredicate, 2,
8248 8248
                 OPC_CheckPredicate, 3,
8249
-                OPC_CheckPredicate, 21,
8249
+                OPC_CheckPredicate, 19,
8250 8250
                 OPC_CheckType, MVT::v2i64,
8251 8251
                 OPC_MoveParent,
8252 8252
                 OPC_MoveParent,
... ...
@@ -8292,7 +9759,7 @@ SDNode *SelectCode(SDNode *N) {
8292 8292
                 OPC_RecordChild1,
8293 8293
                 OPC_CheckPredicate, 2,
8294 8294
                 OPC_CheckPredicate, 3,
8295
-                OPC_CheckPredicate, 21,
8295
+                OPC_CheckPredicate, 19,
8296 8296
                 OPC_CheckType, MVT::v2i64,
8297 8297
                 OPC_MoveParent,
8298 8298
                 OPC_MoveParent,
... ...
@@ -8320,7 +9787,7 @@ SDNode *SelectCode(SDNode *N) {
8320 8320
                 OPC_RecordChild1,
8321 8321
                 OPC_CheckPredicate, 2,
8322 8322
                 OPC_CheckPredicate, 3,
8323
-                OPC_CheckPredicate, 21,
8323
+                OPC_CheckPredicate, 19,
8324 8324
                 OPC_CheckType, MVT::v2i64,
8325 8325
                 OPC_MoveParent,
8326 8326
                 OPC_MoveParent,
... ...
@@ -8366,7 +9833,7 @@ SDNode *SelectCode(SDNode *N) {
8366 8366
                 OPC_RecordChild1,
8367 8367
                 OPC_CheckPredicate, 2,
8368 8368
                 OPC_CheckPredicate, 3,
8369
-                OPC_CheckPredicate, 21,
8369
+                OPC_CheckPredicate, 19,
8370 8370
                 OPC_CheckType, MVT::v2i64,
8371 8371
                 OPC_MoveParent,
8372 8372
                 OPC_MoveParent,
... ...
@@ -8394,7 +9861,7 @@ SDNode *SelectCode(SDNode *N) {
8394 8394
                 OPC_RecordChild1,
8395 8395
                 OPC_CheckPredicate, 2,
8396 8396
                 OPC_CheckPredicate, 3,
8397
-                OPC_CheckPredicate, 21,
8397
+                OPC_CheckPredicate, 19,
8398 8398
                 OPC_CheckType, MVT::v2i64,
8399 8399
                 OPC_MoveParent,
8400 8400
                 OPC_MoveParent,
... ...
@@ -8440,7 +9907,7 @@ SDNode *SelectCode(SDNode *N) {
8440 8440
                 OPC_RecordChild1,
8441 8441
                 OPC_CheckPredicate, 2,
8442 8442
                 OPC_CheckPredicate, 3,
8443
-                OPC_CheckPredicate, 21,
8443
+                OPC_CheckPredicate, 19,
8444 8444
                 OPC_CheckType, MVT::v2i64,
8445 8445
                 OPC_MoveParent,
8446 8446
                 OPC_MoveParent,
... ...
@@ -8468,7 +9935,7 @@ SDNode *SelectCode(SDNode *N) {
8468 8468
                 OPC_RecordChild1,
8469 8469
                 OPC_CheckPredicate, 2,
8470 8470
                 OPC_CheckPredicate, 3,
8471
-                OPC_CheckPredicate, 21,
8471
+                OPC_CheckPredicate, 19,
8472 8472
                 OPC_CheckType, MVT::v2i64,
8473 8473
                 OPC_MoveParent,
8474 8474
                 OPC_MoveParent,
... ...
@@ -8514,7 +9981,7 @@ SDNode *SelectCode(SDNode *N) {
8514 8514
                 OPC_RecordChild1,
8515 8515
                 OPC_CheckPredicate, 2,
8516 8516
                 OPC_CheckPredicate, 3,
8517
-                OPC_CheckPredicate, 21,
8517
+                OPC_CheckPredicate, 19,
8518 8518
                 OPC_CheckType, MVT::v2i64,
8519 8519
                 OPC_MoveParent,
8520 8520
                 OPC_MoveParent,
... ...
@@ -8542,7 +10009,7 @@ SDNode *SelectCode(SDNode *N) {
8542 8542
                 OPC_RecordChild1,
8543 8543
                 OPC_CheckPredicate, 2,
8544 8544
                 OPC_CheckPredicate, 3,
8545
-                OPC_CheckPredicate, 21,
8545
+                OPC_CheckPredicate, 19,
8546 8546
                 OPC_CheckType, MVT::v2i64,
8547 8547
                 OPC_MoveParent,
8548 8548
                 OPC_MoveParent,
... ...
@@ -8588,7 +10055,7 @@ SDNode *SelectCode(SDNode *N) {
8588 8588
                 OPC_RecordChild1,
8589 8589
                 OPC_CheckPredicate, 2,
8590 8590
                 OPC_CheckPredicate, 3,
8591
-                OPC_CheckPredicate, 21,
8591
+                OPC_CheckPredicate, 19,
8592 8592
                 OPC_CheckType, MVT::v2i64,
8593 8593
                 OPC_MoveParent,
8594 8594
                 OPC_MoveParent,
... ...
@@ -8616,7 +10083,7 @@ SDNode *SelectCode(SDNode *N) {
8616 8616
                 OPC_RecordChild1,
8617 8617
                 OPC_CheckPredicate, 2,
8618 8618
                 OPC_CheckPredicate, 3,
8619
-                OPC_CheckPredicate, 21,
8619
+                OPC_CheckPredicate, 19,
8620 8620
                 OPC_CheckType, MVT::v2i64,
8621 8621
                 OPC_MoveParent,
8622 8622
                 OPC_MoveParent,
... ...
@@ -8662,7 +10129,7 @@ SDNode *SelectCode(SDNode *N) {
8662 8662
                 OPC_RecordChild1,
8663 8663
                 OPC_CheckPredicate, 2,
8664 8664
                 OPC_CheckPredicate, 3,
8665
-                OPC_CheckPredicate, 21,
8665
+                OPC_CheckPredicate, 19,
8666 8666
                 OPC_CheckType, MVT::v2i64,
8667 8667
                 OPC_MoveParent,
8668 8668
                 OPC_MoveParent,
... ...
@@ -8690,7 +10157,7 @@ SDNode *SelectCode(SDNode *N) {
8690 8690
                 OPC_RecordChild1,
8691 8691
                 OPC_CheckPredicate, 2,
8692 8692
                 OPC_CheckPredicate, 3,
8693
-                OPC_CheckPredicate, 21,
8693
+                OPC_CheckPredicate, 19,
8694 8694
                 OPC_CheckType, MVT::v2i64,
8695 8695
                 OPC_MoveParent,
8696 8696
                 OPC_MoveParent,
... ...
@@ -8736,7 +10203,7 @@ SDNode *SelectCode(SDNode *N) {
8736 8736
                 OPC_RecordChild1,
8737 8737
                 OPC_CheckPredicate, 2,
8738 8738
                 OPC_CheckPredicate, 3,
8739
-                OPC_CheckPredicate, 21,
8739
+                OPC_CheckPredicate, 19,
8740 8740
                 OPC_CheckType, MVT::v2i64,
8741 8741
                 OPC_MoveParent,
8742 8742
                 OPC_MoveParent,
... ...
@@ -8764,7 +10231,7 @@ SDNode *SelectCode(SDNode *N) {
8764 8764
                 OPC_RecordChild1,
8765 8765
                 OPC_CheckPredicate, 2,
8766 8766
                 OPC_CheckPredicate, 3,
8767
-                OPC_CheckPredicate, 21,
8767
+                OPC_CheckPredicate, 19,
8768 8768
                 OPC_CheckType, MVT::v2i64,
8769 8769
                 OPC_MoveParent,
8770 8770
                 OPC_MoveParent,
... ...
@@ -8810,7 +10277,7 @@ SDNode *SelectCode(SDNode *N) {
8810 8810
                 OPC_RecordChild1,
8811 8811
                 OPC_CheckPredicate, 2,
8812 8812
                 OPC_CheckPredicate, 3,
8813
-                OPC_CheckPredicate, 21,
8813
+                OPC_CheckPredicate, 19,
8814 8814
                 OPC_CheckType, MVT::v2i64,
8815 8815
                 OPC_MoveParent,
8816 8816
                 OPC_MoveParent,
... ...
@@ -8838,7 +10305,7 @@ SDNode *SelectCode(SDNode *N) {
8838 8838
                 OPC_RecordChild1,
8839 8839
                 OPC_CheckPredicate, 2,
8840 8840
                 OPC_CheckPredicate, 3,
8841
-                OPC_CheckPredicate, 21,
8841
+                OPC_CheckPredicate, 19,
8842 8842
                 OPC_CheckType, MVT::v2i64,
8843 8843
                 OPC_MoveParent,
8844 8844
                 OPC_MoveParent,
... ...
@@ -8884,7 +10351,7 @@ SDNode *SelectCode(SDNode *N) {
8884 8884
                 OPC_RecordChild1,
8885 8885
                 OPC_CheckPredicate, 2,
8886 8886
                 OPC_CheckPredicate, 3,
8887
-                OPC_CheckPredicate, 21,
8887
+                OPC_CheckPredicate, 19,
8888 8888
                 OPC_CheckType, MVT::v2i64,
8889 8889
                 OPC_MoveParent,
8890 8890
                 OPC_MoveParent,
... ...
@@ -8912,7 +10379,7 @@ SDNode *SelectCode(SDNode *N) {
8912 8912
                 OPC_RecordChild1,
8913 8913
                 OPC_CheckPredicate, 2,
8914 8914
                 OPC_CheckPredicate, 3,
8915
-                OPC_CheckPredicate, 21,
8915
+                OPC_CheckPredicate, 19,
8916 8916
                 OPC_CheckType, MVT::v2i64,
8917 8917
                 OPC_MoveParent,
8918 8918
                 OPC_MoveParent,
... ...
@@ -8958,7 +10425,7 @@ SDNode *SelectCode(SDNode *N) {
8958 8958
                 OPC_RecordChild1,
8959 8959
                 OPC_CheckPredicate, 2,
8960 8960
                 OPC_CheckPredicate, 3,
8961
-                OPC_CheckPredicate, 21,
8961
+                OPC_CheckPredicate, 19,
8962 8962
                 OPC_CheckType, MVT::v2i64,
8963 8963
                 OPC_MoveParent,
8964 8964
                 OPC_MoveParent,
... ...
@@ -8986,7 +10453,7 @@ SDNode *SelectCode(SDNode *N) {
8986 8986
                 OPC_RecordChild1,
8987 8987
                 OPC_CheckPredicate, 2,
8988 8988
                 OPC_CheckPredicate, 3,
8989
-                OPC_CheckPredicate, 21,
8989
+                OPC_CheckPredicate, 19,
8990 8990
                 OPC_CheckType, MVT::v2i64,
8991 8991
                 OPC_MoveParent,
8992 8992
                 OPC_MoveParent,
... ...
@@ -9032,7 +10499,7 @@ SDNode *SelectCode(SDNode *N) {
9032 9032
                 OPC_RecordChild1,
9033 9033
                 OPC_CheckPredicate, 2,
9034 9034
                 OPC_CheckPredicate, 3,
9035
-                OPC_CheckPredicate, 21,
9035
+                OPC_CheckPredicate, 19,
9036 9036
                 OPC_CheckType, MVT::v2i64,
9037 9037
                 OPC_MoveParent,
9038 9038
                 OPC_MoveParent,
... ...
@@ -9060,7 +10527,7 @@ SDNode *SelectCode(SDNode *N) {
9060 9060
                 OPC_RecordChild1,
9061 9061
                 OPC_CheckPredicate, 2,
9062 9062
                 OPC_CheckPredicate, 3,
9063
-                OPC_CheckPredicate, 21,
9063
+                OPC_CheckPredicate, 19,
9064 9064
                 OPC_CheckType, MVT::v2i64,
9065 9065
                 OPC_MoveParent,
9066 9066
                 OPC_MoveParent,
... ...
@@ -9106,7 +10573,7 @@ SDNode *SelectCode(SDNode *N) {
9106 9106
                 OPC_RecordChild1,
9107 9107
                 OPC_CheckPredicate, 2,
9108 9108
                 OPC_CheckPredicate, 3,
9109
-                OPC_CheckPredicate, 21,
9109
+                OPC_CheckPredicate, 19,
9110 9110
                 OPC_CheckType, MVT::v2i64,
9111 9111
                 OPC_MoveParent,
9112 9112
                 OPC_MoveParent,
... ...
@@ -9134,7 +10601,7 @@ SDNode *SelectCode(SDNode *N) {
9134 9134
                 OPC_RecordChild1,
9135 9135
                 OPC_CheckPredicate, 2,
9136 9136
                 OPC_CheckPredicate, 3,
9137
-                OPC_CheckPredicate, 21,
9137
+                OPC_CheckPredicate, 19,
9138 9138
                 OPC_CheckType, MVT::v2i64,
9139 9139
                 OPC_MoveParent,
9140 9140
                 OPC_MoveParent,
... ...
@@ -9180,7 +10647,7 @@ SDNode *SelectCode(SDNode *N) {
9180 9180
                 OPC_RecordChild1,
9181 9181
                 OPC_CheckPredicate, 2,
9182 9182
                 OPC_CheckPredicate, 3,
9183
-                OPC_CheckPredicate, 21,
9183
+                OPC_CheckPredicate, 19,
9184 9184
                 OPC_CheckType, MVT::v2i64,
9185 9185
                 OPC_MoveParent,
9186 9186
                 OPC_MoveParent,
... ...
@@ -9208,7 +10675,7 @@ SDNode *SelectCode(SDNode *N) {
9208 9208
                 OPC_RecordChild1,
9209 9209
                 OPC_CheckPredicate, 2,
9210 9210
                 OPC_CheckPredicate, 3,
9211
-                OPC_CheckPredicate, 21,
9211
+                OPC_CheckPredicate, 19,
9212 9212
                 OPC_CheckType, MVT::v2i64,
9213 9213
                 OPC_MoveParent,
9214 9214
                 OPC_MoveParent,
... ...
@@ -9254,7 +10721,7 @@ SDNode *SelectCode(SDNode *N) {
9254 9254
                 OPC_RecordChild1,
9255 9255
                 OPC_CheckPredicate, 2,
9256 9256
                 OPC_CheckPredicate, 3,
9257
-                OPC_CheckPredicate, 21,
9257
+                OPC_CheckPredicate, 19,
9258 9258
                 OPC_CheckType, MVT::v2i64,
9259 9259
                 OPC_MoveParent,
9260 9260
                 OPC_MoveParent,
... ...
@@ -9298,7 +10765,7 @@ SDNode *SelectCode(SDNode *N) {
9298 9298
                 OPC_RecordChild1,
9299 9299
                 OPC_CheckPredicate, 2,
9300 9300
                 OPC_CheckPredicate, 3,
9301
-                OPC_CheckPredicate, 21,
9301
+                OPC_CheckPredicate, 19,
9302 9302
                 OPC_CheckType, MVT::v2i64,
9303 9303
                 OPC_MoveParent,
9304 9304
                 OPC_MoveParent,
... ...
@@ -9342,7 +10809,7 @@ SDNode *SelectCode(SDNode *N) {
9342 9342
                 OPC_RecordChild1,
9343 9343
                 OPC_CheckPredicate, 2,
9344 9344
                 OPC_CheckPredicate, 3,
9345
-                OPC_CheckPredicate, 21,
9345
+                OPC_CheckPredicate, 19,
9346 9346
                 OPC_CheckType, MVT::v2i64,
9347 9347
                 OPC_MoveParent,
9348 9348
                 OPC_MoveParent,
... ...
@@ -9386,7 +10853,7 @@ SDNode *SelectCode(SDNode *N) {
9386 9386
                 OPC_RecordChild1,
9387 9387
                 OPC_CheckPredicate, 2,
9388 9388
                 OPC_CheckPredicate, 3,
9389
-                OPC_CheckPredicate, 21,
9389
+                OPC_CheckPredicate, 19,
9390 9390
                 OPC_CheckType, MVT::v2i64,
9391 9391
                 OPC_MoveParent,
9392 9392
                 OPC_MoveParent,
... ...
@@ -9430,7 +10897,7 @@ SDNode *SelectCode(SDNode *N) {
9430 9430
                 OPC_RecordChild1,
9431 9431
                 OPC_CheckPredicate, 2,
9432 9432
                 OPC_CheckPredicate, 3,
9433
-                OPC_CheckPredicate, 21,
9433
+                OPC_CheckPredicate, 19,
9434 9434
                 OPC_CheckType, MVT::v2i64,
9435 9435
                 OPC_MoveParent,
9436 9436
                 OPC_MoveParent,
... ...
@@ -9474,7 +10941,7 @@ SDNode *SelectCode(SDNode *N) {
9474 9474
                 OPC_RecordChild1,
9475 9475
                 OPC_CheckPredicate, 2,
9476 9476
                 OPC_CheckPredicate, 3,
9477
-                OPC_CheckPredicate, 21,
9477
+                OPC_CheckPredicate, 19,
9478 9478
                 OPC_CheckType, MVT::v2i64,
9479 9479
                 OPC_MoveParent,
9480 9480
                 OPC_MoveParent,
... ...
@@ -9518,7 +10985,7 @@ SDNode *SelectCode(SDNode *N) {
9518 9518
                 OPC_RecordChild1,
9519 9519
                 OPC_CheckPredicate, 2,
9520 9520
                 OPC_CheckPredicate, 3,
9521
-                OPC_CheckPredicate, 21,
9521
+                OPC_CheckPredicate, 19,
9522 9522
                 OPC_CheckType, MVT::v2i64,
9523 9523
                 OPC_MoveParent,
9524 9524
                 OPC_MoveParent,
... ...
@@ -9562,7 +11029,7 @@ SDNode *SelectCode(SDNode *N) {
9562 9562
                 OPC_RecordChild1,
9563 9563
                 OPC_CheckPredicate, 2,
9564 9564
                 OPC_CheckPredicate, 3,
9565
-                OPC_CheckPredicate, 21,
9565
+                OPC_CheckPredicate, 19,
9566 9566
                 OPC_CheckType, MVT::v2i64,
9567 9567
                 OPC_MoveParent,
9568 9568
                 OPC_MoveParent,
... ...
@@ -9606,7 +11073,7 @@ SDNode *SelectCode(SDNode *N) {
9606 9606
                 OPC_RecordChild1,
9607 9607
                 OPC_CheckPredicate, 2,
9608 9608
                 OPC_CheckPredicate, 3,
9609
-                OPC_CheckPredicate, 21,
9609
+                OPC_CheckPredicate, 19,
9610 9610
                 OPC_CheckType, MVT::v2i64,
9611 9611
                 OPC_MoveParent,
9612 9612
                 OPC_MoveParent,
... ...
@@ -9650,7 +11117,7 @@ SDNode *SelectCode(SDNode *N) {
9650 9650
                 OPC_RecordChild1,
9651 9651
                 OPC_CheckPredicate, 2,
9652 9652
                 OPC_CheckPredicate, 3,
9653
-                OPC_CheckPredicate, 21,
9653
+                OPC_CheckPredicate, 19,
9654 9654
                 OPC_CheckType, MVT::v2i64,
9655 9655
                 OPC_MoveParent,
9656 9656
                 OPC_MoveParent,
... ...
@@ -9694,7 +11161,7 @@ SDNode *SelectCode(SDNode *N) {
9694 9694
                 OPC_RecordChild1,
9695 9695
                 OPC_CheckPredicate, 2,
9696 9696
                 OPC_CheckPredicate, 3,
9697
-                OPC_CheckPredicate, 21,
9697
+                OPC_CheckPredicate, 19,
9698 9698
                 OPC_CheckType, MVT::v2i64,
9699 9699
                 OPC_MoveParent,
9700 9700
                 OPC_MoveParent,
... ...
@@ -9738,7 +11205,7 @@ SDNode *SelectCode(SDNode *N) {
9738 9738
                 OPC_RecordChild1,
9739 9739
                 OPC_CheckPredicate, 2,
9740 9740
                 OPC_CheckPredicate, 3,
9741
-                OPC_CheckPredicate, 21,
9741
+                OPC_CheckPredicate, 19,
9742 9742
                 OPC_CheckType, MVT::v2i64,
9743 9743
                 OPC_MoveParent,
9744 9744
                 OPC_MoveParent,
... ...
@@ -9782,7 +11249,7 @@ SDNode *SelectCode(SDNode *N) {
9782 9782
                 OPC_RecordChild1,
9783 9783
                 OPC_CheckPredicate, 2,
9784 9784
                 OPC_CheckPredicate, 3,
9785
-                OPC_CheckPredicate, 21,
9785
+                OPC_CheckPredicate, 19,
9786 9786
                 OPC_CheckType, MVT::v2i64,
9787 9787
                 OPC_MoveParent,
9788 9788
                 OPC_MoveParent,
... ...
@@ -9826,7 +11293,7 @@ SDNode *SelectCode(SDNode *N) {
9826 9826
                 OPC_RecordChild1,
9827 9827
                 OPC_CheckPredicate, 2,
9828 9828
                 OPC_CheckPredicate, 3,
9829
-                OPC_CheckPredicate, 21,
9829
+                OPC_CheckPredicate, 19,
9830 9830
                 OPC_CheckType, MVT::v2i64,
9831 9831
                 OPC_MoveParent,
9832 9832
                 OPC_MoveParent,
... ...
@@ -9870,7 +11337,7 @@ SDNode *SelectCode(SDNode *N) {
9870 9870
                 OPC_RecordChild1,
9871 9871
                 OPC_CheckPredicate, 2,
9872 9872
                 OPC_CheckPredicate, 3,
9873
-                OPC_CheckPredicate, 21,
9873
+                OPC_CheckPredicate, 19,
9874 9874
                 OPC_CheckType, MVT::v2i64,
9875 9875
                 OPC_MoveParent,
9876 9876
                 OPC_MoveParent,
... ...
@@ -9914,7 +11381,7 @@ SDNode *SelectCode(SDNode *N) {
9914 9914
                 OPC_RecordChild1,
9915 9915
                 OPC_CheckPredicate, 2,
9916 9916
                 OPC_CheckPredicate, 3,
9917
-                OPC_CheckPredicate, 21,
9917
+                OPC_CheckPredicate, 19,
9918 9918
                 OPC_CheckType, MVT::v16i8,
9919 9919
                 OPC_MoveParent,
9920 9920
                 OPC_MoveParent,
... ...
@@ -9925,7 +11392,7 @@ SDNode *SelectCode(SDNode *N) {
9925 9925
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDWrm128), 0|OPFL_Chain|OPFL_MemRefs,
9926 9926
                       1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
9927 9927
                 19, 
9928
-                  OPC_CheckPatternPredicate, 11,
9928
+                  OPC_CheckPatternPredicate, 12,
9929 9929
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
9930 9930
                   OPC_EmitMergeInputChains1_1,
9931 9931
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -9938,7 +11405,7 @@ SDNode *SelectCode(SDNode *N) {
9938 9938
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDWrr128), 0,
9939 9939
                       1, MVT::v8i16, 2, 0, 1, 
9940 9940
                 11, 
9941
-                  OPC_CheckPatternPredicate, 11,
9941
+                  OPC_CheckPatternPredicate, 12,
9942 9942
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrr128), 0,
9943 9943
                       1, MVT::v8i16, 2, 0, 1, 
9944 9944
                 0, 
... ...
@@ -9958,7 +11425,7 @@ SDNode *SelectCode(SDNode *N) {
9958 9958
                 OPC_RecordChild1,
9959 9959
                 OPC_CheckPredicate, 2,
9960 9960
                 OPC_CheckPredicate, 3,
9961
-                OPC_CheckPredicate, 21,
9961
+                OPC_CheckPredicate, 19,
9962 9962
                 OPC_CheckType, MVT::v16i8,
9963 9963
                 OPC_MoveParent,
9964 9964
                 OPC_MoveParent,
... ...
@@ -9969,7 +11436,7 @@ SDNode *SelectCode(SDNode *N) {
9969 9969
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDDrm128), 0|OPFL_Chain|OPFL_MemRefs,
9970 9970
                       1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
9971 9971
                 19, 
9972
-                  OPC_CheckPatternPredicate, 11,
9972
+                  OPC_CheckPatternPredicate, 12,
9973 9973
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
9974 9974
                   OPC_EmitMergeInputChains1_1,
9975 9975
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -9982,7 +11449,7 @@ SDNode *SelectCode(SDNode *N) {
9982 9982
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDDrr128), 0,
9983 9983
                       1, MVT::v4i32, 2, 0, 1, 
9984 9984
                 11, 
9985
-                  OPC_CheckPatternPredicate, 11,
9985
+                  OPC_CheckPatternPredicate, 12,
9986 9986
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrr128), 0,
9987 9987
                       1, MVT::v4i32, 2, 0, 1, 
9988 9988
                 0, 
... ...
@@ -10002,7 +11469,7 @@ SDNode *SelectCode(SDNode *N) {
10002 10002
                 OPC_RecordChild1,
10003 10003
                 OPC_CheckPredicate, 2,
10004 10004
                 OPC_CheckPredicate, 3,
10005
-                OPC_CheckPredicate, 21,
10005
+                OPC_CheckPredicate, 19,
10006 10006
                 OPC_CheckType, MVT::v16i8,
10007 10007
                 OPC_MoveParent,
10008 10008
                 OPC_MoveParent,
... ...
@@ -10013,7 +11480,7 @@ SDNode *SelectCode(SDNode *N) {
10013 10013
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10014 10014
                       1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
10015 10015
                 19, 
10016
-                  OPC_CheckPatternPredicate, 11,
10016
+                  OPC_CheckPatternPredicate, 12,
10017 10017
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10018 10018
                   OPC_EmitMergeInputChains1_1,
10019 10019
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10026,7 +11493,7 @@ SDNode *SelectCode(SDNode *N) {
10026 10026
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDSWrr128), 0,
10027 10027
                       1, MVT::v4i32, 2, 0, 1, 
10028 10028
                 11, 
10029
-                  OPC_CheckPatternPredicate, 11,
10029
+                  OPC_CheckPatternPredicate, 12,
10030 10030
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrr128), 0,
10031 10031
                       1, MVT::v4i32, 2, 0, 1, 
10032 10032
                 0, 
... ...
@@ -10046,7 +11513,7 @@ SDNode *SelectCode(SDNode *N) {
10046 10046
                 OPC_RecordChild1,
10047 10047
                 OPC_CheckPredicate, 2,
10048 10048
                 OPC_CheckPredicate, 3,
10049
-                OPC_CheckPredicate, 21,
10049
+                OPC_CheckPredicate, 19,
10050 10050
                 OPC_CheckType, MVT::v16i8,
10051 10051
                 OPC_MoveParent,
10052 10052
                 OPC_MoveParent,
... ...
@@ -10057,7 +11524,7 @@ SDNode *SelectCode(SDNode *N) {
10057 10057
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10058 10058
                       1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
10059 10059
                 19, 
10060
-                  OPC_CheckPatternPredicate, 11,
10060
+                  OPC_CheckPatternPredicate, 12,
10061 10061
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10062 10062
                   OPC_EmitMergeInputChains1_1,
10063 10063
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10070,7 +11537,7 @@ SDNode *SelectCode(SDNode *N) {
10070 10070
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBWrr128), 0,
10071 10071
                       1, MVT::v8i16, 2, 0, 1, 
10072 10072
                 11, 
10073
-                  OPC_CheckPatternPredicate, 11,
10073
+                  OPC_CheckPatternPredicate, 12,
10074 10074
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrr128), 0,
10075 10075
                       1, MVT::v8i16, 2, 0, 1, 
10076 10076
                 0, 
... ...
@@ -10090,7 +11557,7 @@ SDNode *SelectCode(SDNode *N) {
10090 10090
                 OPC_RecordChild1,
10091 10091
                 OPC_CheckPredicate, 2,
10092 10092
                 OPC_CheckPredicate, 3,
10093
-                OPC_CheckPredicate, 21,
10093
+                OPC_CheckPredicate, 19,
10094 10094
                 OPC_CheckType, MVT::v16i8,
10095 10095
                 OPC_MoveParent,
10096 10096
                 OPC_MoveParent,
... ...
@@ -10101,7 +11568,7 @@ SDNode *SelectCode(SDNode *N) {
10101 10101
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBDrm128), 0|OPFL_Chain|OPFL_MemRefs,
10102 10102
                       1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
10103 10103
                 19, 
10104
-                  OPC_CheckPatternPredicate, 11,
10104
+                  OPC_CheckPatternPredicate, 12,
10105 10105
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10106 10106
                   OPC_EmitMergeInputChains1_1,
10107 10107
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10114,7 +11581,7 @@ SDNode *SelectCode(SDNode *N) {
10114 10114
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBDrr128), 0,
10115 10115
                       1, MVT::v4i32, 2, 0, 1, 
10116 10116
                 11, 
10117
-                  OPC_CheckPatternPredicate, 11,
10117
+                  OPC_CheckPatternPredicate, 12,
10118 10118
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrr128), 0,
10119 10119
                       1, MVT::v4i32, 2, 0, 1, 
10120 10120
                 0, 
... ...
@@ -10134,7 +11601,7 @@ SDNode *SelectCode(SDNode *N) {
10134 10134
                 OPC_RecordChild1,
10135 10135
                 OPC_CheckPredicate, 2,
10136 10136
                 OPC_CheckPredicate, 3,
10137
-                OPC_CheckPredicate, 21,
10137
+                OPC_CheckPredicate, 19,
10138 10138
                 OPC_CheckType, MVT::v16i8,
10139 10139
                 OPC_MoveParent,
10140 10140
                 OPC_MoveParent,
... ...
@@ -10145,7 +11612,7 @@ SDNode *SelectCode(SDNode *N) {
10145 10145
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10146 10146
                       1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
10147 10147
                 19, 
10148
-                  OPC_CheckPatternPredicate, 11,
10148
+                  OPC_CheckPatternPredicate, 12,
10149 10149
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10150 10150
                   OPC_EmitMergeInputChains1_1,
10151 10151
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10158,7 +11625,7 @@ SDNode *SelectCode(SDNode *N) {
10158 10158
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBSWrr128), 0,
10159 10159
                       1, MVT::v8i16, 2, 0, 1, 
10160 10160
                 11, 
10161
-                  OPC_CheckPatternPredicate, 11,
10161
+                  OPC_CheckPatternPredicate, 12,
10162 10162
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrr128), 0,
10163 10163
                       1, MVT::v8i16, 2, 0, 1, 
10164 10164
                 0, 
... ...
@@ -10178,7 +11645,7 @@ SDNode *SelectCode(SDNode *N) {
10178 10178
                 OPC_RecordChild1,
10179 10179
                 OPC_CheckPredicate, 2,
10180 10180
                 OPC_CheckPredicate, 3,
10181
-                OPC_CheckPredicate, 21,
10181
+                OPC_CheckPredicate, 19,
10182 10182
                 OPC_CheckType, MVT::v16i8,
10183 10183
                 OPC_MoveParent,
10184 10184
                 OPC_MoveParent,
... ...
@@ -10189,7 +11656,7 @@ SDNode *SelectCode(SDNode *N) {
10189 10189
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10190 10190
                       1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
10191 10191
                 19, 
10192
-                  OPC_CheckPatternPredicate, 11,
10192
+                  OPC_CheckPatternPredicate, 12,
10193 10193
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10194 10194
                   OPC_EmitMergeInputChains1_1,
10195 10195
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10202,7 +11669,7 @@ SDNode *SelectCode(SDNode *N) {
10202 10202
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDUBSWrr128), 0,
10203 10203
                       1, MVT::v8i16, 2, 0, 1, 
10204 10204
                 11, 
10205
-                  OPC_CheckPatternPredicate, 11,
10205
+                  OPC_CheckPatternPredicate, 12,
10206 10206
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrr128), 0,
10207 10207
                       1, MVT::v8i16, 2, 0, 1, 
10208 10208
                 0, 
... ...
@@ -10222,7 +11689,7 @@ SDNode *SelectCode(SDNode *N) {
10222 10222
                 OPC_RecordChild1,
10223 10223
                 OPC_CheckPredicate, 2,
10224 10224
                 OPC_CheckPredicate, 3,
10225
-                OPC_CheckPredicate, 21,
10225
+                OPC_CheckPredicate, 19,
10226 10226
                 OPC_CheckType, MVT::v16i8,
10227 10227
                 OPC_MoveParent,
10228 10228
                 OPC_MoveParent,
... ...
@@ -10233,7 +11700,7 @@ SDNode *SelectCode(SDNode *N) {
10233 10233
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10234 10234
                       1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
10235 10235
                 19, 
10236
-                  OPC_CheckPatternPredicate, 11,
10236
+                  OPC_CheckPatternPredicate, 12,
10237 10237
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10238 10238
                   OPC_EmitMergeInputChains1_1,
10239 10239
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10246,7 +11713,7 @@ SDNode *SelectCode(SDNode *N) {
10246 10246
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNWrr128), 0,
10247 10247
                       1, MVT::v8i16, 2, 0, 1, 
10248 10248
                 11, 
10249
-                  OPC_CheckPatternPredicate, 11,
10249
+                  OPC_CheckPatternPredicate, 12,
10250 10250
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrr128), 0,
10251 10251
                       1, MVT::v8i16, 2, 0, 1, 
10252 10252
                 0, 
... ...
@@ -10266,7 +11733,7 @@ SDNode *SelectCode(SDNode *N) {
10266 10266
                 OPC_RecordChild1,
10267 10267
                 OPC_CheckPredicate, 2,
10268 10268
                 OPC_CheckPredicate, 3,
10269
-                OPC_CheckPredicate, 21,
10269
+                OPC_CheckPredicate, 19,
10270 10270
                 OPC_CheckType, MVT::v16i8,
10271 10271
                 OPC_MoveParent,
10272 10272
                 OPC_MoveParent,
... ...
@@ -10277,7 +11744,7 @@ SDNode *SelectCode(SDNode *N) {
10277 10277
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNDrm128), 0|OPFL_Chain|OPFL_MemRefs,
10278 10278
                       1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
10279 10279
                 19, 
10280
-                  OPC_CheckPatternPredicate, 11,
10280
+                  OPC_CheckPatternPredicate, 12,
10281 10281
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10282 10282
                   OPC_EmitMergeInputChains1_1,
10283 10283
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10290,7 +11757,7 @@ SDNode *SelectCode(SDNode *N) {
10290 10290
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNDrr128), 0,
10291 10291
                       1, MVT::v4i32, 2, 0, 1, 
10292 10292
                 11, 
10293
-                  OPC_CheckPatternPredicate, 11,
10293
+                  OPC_CheckPatternPredicate, 12,
10294 10294
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrr128), 0,
10295 10295
                       1, MVT::v4i32, 2, 0, 1, 
10296 10296
                 0, 
... ...
@@ -10310,7 +11777,7 @@ SDNode *SelectCode(SDNode *N) {
10310 10310
                 OPC_RecordChild1,
10311 10311
                 OPC_CheckPredicate, 2,
10312 10312
                 OPC_CheckPredicate, 3,
10313
-                OPC_CheckPredicate, 21,
10313
+                OPC_CheckPredicate, 19,
10314 10314
                 OPC_CheckType, MVT::v16i8,
10315 10315
                 OPC_MoveParent,
10316 10316
                 OPC_MoveParent,
... ...
@@ -10321,7 +11788,7 @@ SDNode *SelectCode(SDNode *N) {
10321 10321
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10322 10322
                       1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
10323 10323
                 19, 
10324
-                  OPC_CheckPatternPredicate, 11,
10324
+                  OPC_CheckPatternPredicate, 12,
10325 10325
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10326 10326
                   OPC_EmitMergeInputChains1_1,
10327 10327
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10338,7 +11805,7 @@ SDNode *SelectCode(SDNode *N) {
10338 10338
                 OPC_RecordChild1,
10339 10339
                 OPC_CheckPredicate, 2,
10340 10340
                 OPC_CheckPredicate, 3,
10341
-                OPC_CheckPredicate, 21,
10341
+                OPC_CheckPredicate, 19,
10342 10342
                 OPC_CheckType, MVT::v16i8,
10343 10343
                 OPC_MoveParent,
10344 10344
                 OPC_MoveParent,
... ...
@@ -10350,7 +11817,7 @@ SDNode *SelectCode(SDNode *N) {
10350 10350
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
10351 10351
                       1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
10352 10352
                 19, 
10353
-                  OPC_CheckPatternPredicate, 11,
10353
+                  OPC_CheckPatternPredicate, 12,
10354 10354
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
10355 10355
                   OPC_EmitMergeInputChains1_0,
10356 10356
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10364,7 +11831,7 @@ SDNode *SelectCode(SDNode *N) {
10364 10364
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHRSWrr128), 0,
10365 10365
                       1, MVT::v8i16, 2, 0, 1, 
10366 10366
                 11, 
10367
-                  OPC_CheckPatternPredicate, 11,
10367
+                  OPC_CheckPatternPredicate, 12,
10368 10368
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrr128), 0,
10369 10369
                       1, MVT::v8i16, 2, 0, 1, 
10370 10370
                 0, 
... ...
@@ -10384,18 +11851,18 @@ SDNode *SelectCode(SDNode *N) {
10384 10384
                 OPC_RecordChild1,
10385 10385
                 OPC_CheckPredicate, 2,
10386 10386
                 OPC_CheckPredicate, 3,
10387
-                OPC_CheckPredicate, 22,
10387
+                OPC_CheckPredicate, 44,
10388 10388
                 OPC_CheckType, MVT::v8i8,
10389 10389
                 OPC_MoveParent,
10390 10390
                 OPC_MoveParent,
10391
-                OPC_CheckPatternPredicate, 11,
10391
+                OPC_CheckPatternPredicate, 12,
10392 10392
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10393 10393
                 OPC_EmitMergeInputChains1_1,
10394 10394
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrm64), 0|OPFL_Chain|OPFL_MemRefs,
10395 10395
                     1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
10396 10396
               12, 
10397 10397
                 OPC_RecordChild2,
10398
-                OPC_CheckPatternPredicate, 11,
10398
+                OPC_CheckPatternPredicate, 12,
10399 10399
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrr64), 0,
10400 10400
                     1, MVT::v4i16, 2, 0, 1, 
10401 10401
               0, 
... ...
@@ -10414,18 +11881,18 @@ SDNode *SelectCode(SDNode *N) {
10414 10414
                 OPC_RecordChild1,
10415 10415
                 OPC_CheckPredicate, 2,
10416 10416
                 OPC_CheckPredicate, 3,
10417
-                OPC_CheckPredicate, 22,
10417
+                OPC_CheckPredicate, 44,
10418 10418
                 OPC_CheckType, MVT::v8i8,
10419 10419
                 OPC_MoveParent,
10420 10420
                 OPC_MoveParent,
10421
-                OPC_CheckPatternPredicate, 11,
10421
+                OPC_CheckPatternPredicate, 12,
10422 10422
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10423 10423
                 OPC_EmitMergeInputChains1_1,
10424 10424
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrm64), 0|OPFL_Chain|OPFL_MemRefs,
10425 10425
                     1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
10426 10426
               12, 
10427 10427
                 OPC_RecordChild2,
10428
-                OPC_CheckPatternPredicate, 11,
10428
+                OPC_CheckPatternPredicate, 12,
10429 10429
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrr64), 0,
10430 10430
                     1, MVT::v2i32, 2, 0, 1, 
10431 10431
               0, 
... ...
@@ -10444,18 +11911,18 @@ SDNode *SelectCode(SDNode *N) {
10444 10444
                 OPC_RecordChild1,
10445 10445
                 OPC_CheckPredicate, 2,
10446 10446
                 OPC_CheckPredicate, 3,
10447
-                OPC_CheckPredicate, 22,
10447
+                OPC_CheckPredicate, 44,
10448 10448
                 OPC_CheckType, MVT::v8i8,
10449 10449
                 OPC_MoveParent,
10450 10450
                 OPC_MoveParent,
10451
-                OPC_CheckPatternPredicate, 11,
10451
+                OPC_CheckPatternPredicate, 12,
10452 10452
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10453 10453
                 OPC_EmitMergeInputChains1_1,
10454 10454
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
10455 10455
                     1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
10456 10456
               12, 
10457 10457
                 OPC_RecordChild2,
10458
-                OPC_CheckPatternPredicate, 11,
10458
+                OPC_CheckPatternPredicate, 12,
10459 10459
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrr64), 0,
10460 10460
                     1, MVT::v4i16, 2, 0, 1, 
10461 10461
               0, 
... ...
@@ -10474,18 +11941,18 @@ SDNode *SelectCode(SDNode *N) {
10474 10474
                 OPC_RecordChild1,
10475 10475
                 OPC_CheckPredicate, 2,
10476 10476
                 OPC_CheckPredicate, 3,
10477
-                OPC_CheckPredicate, 22,
10477
+                OPC_CheckPredicate, 44,
10478 10478
                 OPC_CheckType, MVT::v8i8,
10479 10479
                 OPC_MoveParent,
10480 10480
                 OPC_MoveParent,
10481
-                OPC_CheckPatternPredicate, 11,
10481
+                OPC_CheckPatternPredicate, 12,
10482 10482
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10483 10483
                 OPC_EmitMergeInputChains1_1,
10484 10484
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrm64), 0|OPFL_Chain|OPFL_MemRefs,
10485 10485
                     1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
10486 10486
               12, 
10487 10487
                 OPC_RecordChild2,
10488
-                OPC_CheckPatternPredicate, 11,
10488
+                OPC_CheckPatternPredicate, 12,
10489 10489
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrr64), 0,
10490 10490
                     1, MVT::v4i16, 2, 0, 1, 
10491 10491
               0, 
... ...
@@ -10504,18 +11971,18 @@ SDNode *SelectCode(SDNode *N) {
10504 10504
                 OPC_RecordChild1,
10505 10505
                 OPC_CheckPredicate, 2,
10506 10506
                 OPC_CheckPredicate, 3,
10507
-                OPC_CheckPredicate, 22,
10507
+                OPC_CheckPredicate, 44,
10508 10508
                 OPC_CheckType, MVT::v8i8,
10509 10509
                 OPC_MoveParent,
10510 10510
                 OPC_MoveParent,
10511
-                OPC_CheckPatternPredicate, 11,
10511
+                OPC_CheckPatternPredicate, 12,
10512 10512
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10513 10513
                 OPC_EmitMergeInputChains1_1,
10514 10514
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrm64), 0|OPFL_Chain|OPFL_MemRefs,
10515 10515
                     1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
10516 10516
               12, 
10517 10517
                 OPC_RecordChild2,
10518
-                OPC_CheckPatternPredicate, 11,
10518
+                OPC_CheckPatternPredicate, 12,
10519 10519
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrr64), 0,
10520 10520
                     1, MVT::v2i32, 2, 0, 1, 
10521 10521
               0, 
... ...
@@ -10534,18 +12001,18 @@ SDNode *SelectCode(SDNode *N) {
10534 10534
                 OPC_RecordChild1,
10535 10535
                 OPC_CheckPredicate, 2,
10536 10536
                 OPC_CheckPredicate, 3,
10537
-                OPC_CheckPredicate, 22,
10537
+                OPC_CheckPredicate, 44,
10538 10538
                 OPC_CheckType, MVT::v8i8,
10539 10539
                 OPC_MoveParent,
10540 10540
                 OPC_MoveParent,
10541
-                OPC_CheckPatternPredicate, 11,
10541
+                OPC_CheckPatternPredicate, 12,
10542 10542
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10543 10543
                 OPC_EmitMergeInputChains1_1,
10544 10544
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
10545 10545
                     1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
10546 10546
               12, 
10547 10547
                 OPC_RecordChild2,
10548
-                OPC_CheckPatternPredicate, 11,
10548
+                OPC_CheckPatternPredicate, 12,
10549 10549
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrr64), 0,
10550 10550
                     1, MVT::v4i16, 2, 0, 1, 
10551 10551
               0, 
... ...
@@ -10564,18 +12031,18 @@ SDNode *SelectCode(SDNode *N) {
10564 10564
                 OPC_RecordChild1,
10565 10565
                 OPC_CheckPredicate, 2,
10566 10566
                 OPC_CheckPredicate, 3,
10567
-                OPC_CheckPredicate, 22,
10567
+                OPC_CheckPredicate, 44,
10568 10568
                 OPC_CheckType, MVT::v8i8,
10569 10569
                 OPC_MoveParent,
10570 10570
                 OPC_MoveParent,
10571
-                OPC_CheckPatternPredicate, 11,
10571
+                OPC_CheckPatternPredicate, 12,
10572 10572
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10573 10573
                 OPC_EmitMergeInputChains1_1,
10574 10574
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
10575 10575
                     1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
10576 10576
               12, 
10577 10577
                 OPC_RecordChild2,
10578
-                OPC_CheckPatternPredicate, 11,
10578
+                OPC_CheckPatternPredicate, 12,
10579 10579
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrr64), 0,
10580 10580
                     1, MVT::v4i16, 2, 0, 1, 
10581 10581
               0, 
... ...
@@ -10594,18 +12061,18 @@ SDNode *SelectCode(SDNode *N) {
10594 10594
                 OPC_RecordChild1,
10595 10595
                 OPC_CheckPredicate, 2,
10596 10596
                 OPC_CheckPredicate, 3,
10597
-                OPC_CheckPredicate, 22,
10597
+                OPC_CheckPredicate, 44,
10598 10598
                 OPC_CheckType, MVT::v8i8,
10599 10599
                 OPC_MoveParent,
10600 10600
                 OPC_MoveParent,
10601
-                OPC_CheckPatternPredicate, 11,
10601
+                OPC_CheckPatternPredicate, 12,
10602 10602
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10603 10603
                 OPC_EmitMergeInputChains1_1,
10604 10604
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrm64), 0|OPFL_Chain|OPFL_MemRefs,
10605 10605
                     1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
10606 10606
               12, 
10607 10607
                 OPC_RecordChild2,
10608
-                OPC_CheckPatternPredicate, 11,
10608
+                OPC_CheckPatternPredicate, 12,
10609 10609
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrr64), 0,
10610 10610
                     1, MVT::v4i16, 2, 0, 1, 
10611 10611
               0, 
... ...
@@ -10624,18 +12091,18 @@ SDNode *SelectCode(SDNode *N) {
10624 10624
                 OPC_RecordChild1,
10625 10625
                 OPC_CheckPredicate, 2,
10626 10626
                 OPC_CheckPredicate, 3,
10627
-                OPC_CheckPredicate, 22,
10627
+                OPC_CheckPredicate, 44,
10628 10628
                 OPC_CheckType, MVT::v8i8,
10629 10629
                 OPC_MoveParent,
10630 10630
                 OPC_MoveParent,
10631
-                OPC_CheckPatternPredicate, 11,
10631
+                OPC_CheckPatternPredicate, 12,
10632 10632
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10633 10633
                 OPC_EmitMergeInputChains1_1,
10634 10634
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrm64), 0|OPFL_Chain|OPFL_MemRefs,
10635 10635
                     1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
10636 10636
               12, 
10637 10637
                 OPC_RecordChild2,
10638
-                OPC_CheckPatternPredicate, 11,
10638
+                OPC_CheckPatternPredicate, 12,
10639 10639
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrr64), 0,
10640 10640
                     1, MVT::v2i32, 2, 0, 1, 
10641 10641
               0, 
... ...
@@ -10654,11 +12121,11 @@ SDNode *SelectCode(SDNode *N) {
10654 10654
                 OPC_RecordChild1,
10655 10655
                 OPC_CheckPredicate, 2,
10656 10656
                 OPC_CheckPredicate, 3,
10657
-                OPC_CheckPredicate, 22,
10657
+                OPC_CheckPredicate, 44,
10658 10658
                 OPC_CheckType, MVT::v8i8,
10659 10659
                 OPC_MoveParent,
10660 10660
                 OPC_MoveParent,
10661
-                OPC_CheckPatternPredicate, 11,
10661
+                OPC_CheckPatternPredicate, 12,
10662 10662
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
10663 10663
                 OPC_EmitMergeInputChains1_1,
10664 10664
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10674,12 +12141,12 @@ SDNode *SelectCode(SDNode *N) {
10674 10674
                 OPC_RecordChild1,
10675 10675
                 OPC_CheckPredicate, 2,
10676 10676
                 OPC_CheckPredicate, 3,
10677
-                OPC_CheckPredicate, 22,
10677
+                OPC_CheckPredicate, 44,
10678 10678
                 OPC_CheckType, MVT::v8i8,
10679 10679
                 OPC_MoveParent,
10680 10680
                 OPC_MoveParent,
10681 10681
                 OPC_RecordChild2,
10682
-                OPC_CheckPatternPredicate, 11,
10682
+                OPC_CheckPatternPredicate, 12,
10683 10683
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
10684 10684
                 OPC_EmitMergeInputChains1_0,
10685 10685
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -10687,7 +12154,7 @@ SDNode *SelectCode(SDNode *N) {
10687 10687
               13, 
10688 10688
                 OPC_RecordChild1,
10689 10689
                 OPC_RecordChild2,
10690
-                OPC_CheckPatternPredicate, 11,
10690
+                OPC_CheckPatternPredicate, 12,
10691 10691
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrr64), 0,
10692 10692
                     1, MVT::v4i16, 2, 0, 1, 
10693 10693
               0, 
... ...
@@ -10706,7 +12173,7 @@ SDNode *SelectCode(SDNode *N) {
10706 10706
                 OPC_RecordChild1,
10707 10707
                 OPC_CheckPredicate, 2,
10708 10708
                 OPC_CheckPredicate, 3,
10709
-                OPC_CheckPredicate, 21,
10709
+                OPC_CheckPredicate, 19,
10710 10710
                 OPC_CheckType, MVT::v16i8,
10711 10711
                 OPC_MoveParent,
10712 10712
                 OPC_MoveParent,
... ...
@@ -10750,7 +12217,7 @@ SDNode *SelectCode(SDNode *N) {
10750 10750
                 OPC_RecordChild1,
10751 10751
                 OPC_CheckPredicate, 2,
10752 10752
                 OPC_CheckPredicate, 3,
10753
-                OPC_CheckPredicate, 21,
10753
+                OPC_CheckPredicate, 19,
10754 10754
                 OPC_CheckType, MVT::v16i8,
10755 10755
                 OPC_MoveParent,
10756 10756
                 OPC_MoveParent,
... ...
@@ -10778,7 +12245,7 @@ SDNode *SelectCode(SDNode *N) {
10778 10778
                 OPC_RecordChild1,
10779 10779
                 OPC_CheckPredicate, 2,
10780 10780
                 OPC_CheckPredicate, 3,
10781
-                OPC_CheckPredicate, 21,
10781
+                OPC_CheckPredicate, 19,
10782 10782
                 OPC_CheckType, MVT::v16i8,
10783 10783
                 OPC_MoveParent,
10784 10784
                 OPC_MoveParent,
... ...
@@ -10824,7 +12291,7 @@ SDNode *SelectCode(SDNode *N) {
10824 10824
                 OPC_RecordChild1,
10825 10825
                 OPC_CheckPredicate, 2,
10826 10826
                 OPC_CheckPredicate, 3,
10827
-                OPC_CheckPredicate, 21,
10827
+                OPC_CheckPredicate, 19,
10828 10828
                 OPC_CheckType, MVT::v16i8,
10829 10829
                 OPC_MoveParent,
10830 10830
                 OPC_MoveParent,
... ...
@@ -10852,7 +12319,7 @@ SDNode *SelectCode(SDNode *N) {
10852 10852
                 OPC_RecordChild1,
10853 10853
                 OPC_CheckPredicate, 2,
10854 10854
                 OPC_CheckPredicate, 3,
10855
-                OPC_CheckPredicate, 21,
10855
+                OPC_CheckPredicate, 19,
10856 10856
                 OPC_CheckType, MVT::v16i8,
10857 10857
                 OPC_MoveParent,
10858 10858
                 OPC_MoveParent,
... ...
@@ -10898,7 +12365,7 @@ SDNode *SelectCode(SDNode *N) {
10898 10898
                 OPC_RecordChild1,
10899 10899
                 OPC_CheckPredicate, 2,
10900 10900
                 OPC_CheckPredicate, 3,
10901
-                OPC_CheckPredicate, 21,
10901
+                OPC_CheckPredicate, 19,
10902 10902
                 OPC_CheckType, MVT::v16i8,
10903 10903
                 OPC_MoveParent,
10904 10904
                 OPC_MoveParent,
... ...
@@ -10926,7 +12393,7 @@ SDNode *SelectCode(SDNode *N) {
10926 10926
                 OPC_RecordChild1,
10927 10927
                 OPC_CheckPredicate, 2,
10928 10928
                 OPC_CheckPredicate, 3,
10929
-                OPC_CheckPredicate, 21,
10929
+                OPC_CheckPredicate, 19,
10930 10930
                 OPC_CheckType, MVT::v16i8,
10931 10931
                 OPC_MoveParent,
10932 10932
                 OPC_MoveParent,
... ...
@@ -10972,7 +12439,7 @@ SDNode *SelectCode(SDNode *N) {
10972 10972
                 OPC_RecordChild1,
10973 10973
                 OPC_CheckPredicate, 2,
10974 10974
                 OPC_CheckPredicate, 3,
10975
-                OPC_CheckPredicate, 21,
10975
+                OPC_CheckPredicate, 19,
10976 10976
                 OPC_CheckType, MVT::v16i8,
10977 10977
                 OPC_MoveParent,
10978 10978
                 OPC_MoveParent,
... ...
@@ -11000,7 +12467,7 @@ SDNode *SelectCode(SDNode *N) {
11000 11000
                 OPC_RecordChild1,
11001 11001
                 OPC_CheckPredicate, 2,
11002 11002
                 OPC_CheckPredicate, 3,
11003
-                OPC_CheckPredicate, 21,
11003
+                OPC_CheckPredicate, 19,
11004 11004
                 OPC_CheckType, MVT::v16i8,
11005 11005
                 OPC_MoveParent,
11006 11006
                 OPC_MoveParent,
... ...
@@ -11046,7 +12513,7 @@ SDNode *SelectCode(SDNode *N) {
11046 11046
                 OPC_RecordChild1,
11047 11047
                 OPC_CheckPredicate, 2,
11048 11048
                 OPC_CheckPredicate, 3,
11049
-                OPC_CheckPredicate, 21,
11049
+                OPC_CheckPredicate, 19,
11050 11050
                 OPC_CheckType, MVT::v16i8,
11051 11051
                 OPC_MoveParent,
11052 11052
                 OPC_MoveParent,
... ...
@@ -11074,7 +12541,7 @@ SDNode *SelectCode(SDNode *N) {
11074 11074
                 OPC_RecordChild1,
11075 11075
                 OPC_CheckPredicate, 2,
11076 11076
                 OPC_CheckPredicate, 3,
11077
-                OPC_CheckPredicate, 21,
11077
+                OPC_CheckPredicate, 19,
11078 11078
                 OPC_CheckType, MVT::v16i8,
11079 11079
                 OPC_MoveParent,
11080 11080
                 OPC_MoveParent,
... ...
@@ -11120,7 +12587,7 @@ SDNode *SelectCode(SDNode *N) {
11120 11120
                 OPC_RecordChild1,
11121 11121
                 OPC_CheckPredicate, 2,
11122 11122
                 OPC_CheckPredicate, 3,
11123
-                OPC_CheckPredicate, 21,
11123
+                OPC_CheckPredicate, 19,
11124 11124
                 OPC_CheckType, MVT::v16i8,
11125 11125
                 OPC_MoveParent,
11126 11126
                 OPC_MoveParent,
... ...
@@ -11148,7 +12615,7 @@ SDNode *SelectCode(SDNode *N) {
11148 11148
                 OPC_RecordChild1,
11149 11149
                 OPC_CheckPredicate, 2,
11150 11150
                 OPC_CheckPredicate, 3,
11151
-                OPC_CheckPredicate, 21,
11151
+                OPC_CheckPredicate, 19,
11152 11152
                 OPC_CheckType, MVT::v16i8,
11153 11153
                 OPC_MoveParent,
11154 11154
                 OPC_MoveParent,
... ...
@@ -11194,7 +12661,7 @@ SDNode *SelectCode(SDNode *N) {
11194 11194
                 OPC_RecordChild1,
11195 11195
                 OPC_CheckPredicate, 2,
11196 11196
                 OPC_CheckPredicate, 3,
11197
-                OPC_CheckPredicate, 21,
11197
+                OPC_CheckPredicate, 19,
11198 11198
                 OPC_CheckType, MVT::v16i8,
11199 11199
                 OPC_MoveParent,
11200 11200
                 OPC_MoveParent,
... ...
@@ -11222,7 +12689,7 @@ SDNode *SelectCode(SDNode *N) {
11222 11222
                 OPC_RecordChild1,
11223 11223
                 OPC_CheckPredicate, 2,
11224 11224
                 OPC_CheckPredicate, 3,
11225
-                OPC_CheckPredicate, 21,
11225
+                OPC_CheckPredicate, 19,
11226 11226
                 OPC_CheckType, MVT::v16i8,
11227 11227
                 OPC_MoveParent,
11228 11228
                 OPC_MoveParent,
... ...
@@ -11268,7 +12735,7 @@ SDNode *SelectCode(SDNode *N) {
11268 11268
                 OPC_RecordChild1,
11269 11269
                 OPC_CheckPredicate, 2,
11270 11270
                 OPC_CheckPredicate, 3,
11271
-                OPC_CheckPredicate, 21,
11271
+                OPC_CheckPredicate, 19,
11272 11272
                 OPC_CheckType, MVT::v16i8,
11273 11273
                 OPC_MoveParent,
11274 11274
                 OPC_MoveParent,
... ...
@@ -11296,7 +12763,7 @@ SDNode *SelectCode(SDNode *N) {
11296 11296
                 OPC_RecordChild1,
11297 11297
                 OPC_CheckPredicate, 2,
11298 11298
                 OPC_CheckPredicate, 3,
11299
-                OPC_CheckPredicate, 21,
11299
+                OPC_CheckPredicate, 19,
11300 11300
                 OPC_CheckType, MVT::v16i8,
11301 11301
                 OPC_MoveParent,
11302 11302
                 OPC_MoveParent,
... ...
@@ -11340,7 +12807,7 @@ SDNode *SelectCode(SDNode *N) {
11340 11340
                 OPC_RecordChild1,
11341 11341
                 OPC_CheckPredicate, 2,
11342 11342
                 OPC_CheckPredicate, 3,
11343
-                OPC_CheckPredicate, 21,
11343
+                OPC_CheckPredicate, 19,
11344 11344
                 OPC_MoveParent,
11345 11345
                 OPC_RecordChild3,
11346 11346
                 OPC_MoveChild, 3,
... ...
@@ -11370,7 +12837,7 @@ SDNode *SelectCode(SDNode *N) {
11370 11370
                 OPC_RecordChild1,
11371 11371
                 OPC_CheckPredicate, 2,
11372 11372
                 OPC_CheckPredicate, 3,
11373
-                OPC_CheckPredicate, 21,
11373
+                OPC_CheckPredicate, 19,
11374 11374
                 OPC_MoveParent,
11375 11375
                 OPC_RecordChild2,
11376 11376
                 OPC_RecordChild3,
... ...
@@ -11426,7 +12893,7 @@ SDNode *SelectCode(SDNode *N) {
11426 11426
                 OPC_RecordChild1,
11427 11427
                 OPC_CheckPredicate, 2,
11428 11428
                 OPC_CheckPredicate, 3,
11429
-                OPC_CheckPredicate, 21,
11429
+                OPC_CheckPredicate, 19,
11430 11430
                 OPC_CheckType, MVT::v16i8,
11431 11431
                 OPC_MoveParent,
11432 11432
                 OPC_MoveParent,
... ...
@@ -11437,7 +12904,7 @@ SDNode *SelectCode(SDNode *N) {
11437 11437
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
11438 11438
                       1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
11439 11439
                 19, 
11440
-                  OPC_CheckPatternPredicate, 10,
11440
+                  OPC_CheckPatternPredicate, 13,
11441 11441
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11442 11442
                   OPC_EmitMergeInputChains1_1,
11443 11443
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -11450,7 +12917,7 @@ SDNode *SelectCode(SDNode *N) {
11450 11450
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTQrr), 0,
11451 11451
                       1, MVT::v2i64, 2, 0, 1, 
11452 11452
                 11, 
11453
-                  OPC_CheckPatternPredicate, 10,
11453
+                  OPC_CheckPatternPredicate, 13,
11454 11454
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTQrr), 0,
11455 11455
                       1, MVT::v2i64, 2, 0, 1, 
11456 11456
                 0, 
... ...
@@ -11470,18 +12937,18 @@ SDNode *SelectCode(SDNode *N) {
11470 11470
                   OPC_RecordChild1,
11471 11471
                   OPC_CheckPredicate, 2,
11472 11472
                   OPC_CheckPredicate, 3,
11473
-                  OPC_CheckPredicate, 21,
11473
+                  OPC_CheckPredicate, 19,
11474 11474
                   OPC_CheckType, MVT::v16i8,
11475 11475
                   OPC_MoveParent,
11476 11476
                   OPC_MoveParent,
11477 11477
                   OPC_Scope, 19, 
11478
-                    OPC_CheckPatternPredicate, 12,
11478
+                    OPC_CheckPatternPredicate, 14,
11479 11479
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11480 11480
                     OPC_EmitMergeInputChains1_1,
11481 11481
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
11482 11482
                         1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
11483 11483
                   19, 
11484
-                    OPC_CheckPatternPredicate, 13,
11484
+                    OPC_CheckPatternPredicate, 15,
11485 11485
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11486 11486
                     OPC_EmitMergeInputChains1_1,
11487 11487
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -11494,7 +12961,7 @@ SDNode *SelectCode(SDNode *N) {
11494 11494
                   OPC_RecordChild1,
11495 11495
                   OPC_CheckPredicate, 2,
11496 11496
                   OPC_CheckPredicate, 3,
11497
-                  OPC_CheckPredicate, 21,
11497
+                  OPC_CheckPredicate, 19,
11498 11498
                   OPC_MoveParent,
11499 11499
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11500 11500
                   OPC_EmitMergeInputChains1_1,
... ...
@@ -11504,11 +12971,11 @@ SDNode *SelectCode(SDNode *N) {
11504 11504
               37, 
11505 11505
                 OPC_RecordChild2,
11506 11506
                 OPC_Scope, 11, 
11507
-                  OPC_CheckPatternPredicate, 12,
11507
+                  OPC_CheckPatternPredicate, 14,
11508 11508
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCrr), 0,
11509 11509
                       1, MVT::v2i64, 2, 0, 1, 
11510 11510
                 11, 
11511
-                  OPC_CheckPatternPredicate, 13,
11511
+                  OPC_CheckPatternPredicate, 15,
11512 11512
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCrr), 0,
11513 11513
                       1, MVT::v2i64, 2, 0, 1, 
11514 11514
                 9, 
... ...
@@ -11531,18 +12998,18 @@ SDNode *SelectCode(SDNode *N) {
11531 11531
                   OPC_RecordChild1,
11532 11532
                   OPC_CheckPredicate, 2,
11533 11533
                   OPC_CheckPredicate, 3,
11534
-                  OPC_CheckPredicate, 21,
11534
+                  OPC_CheckPredicate, 19,
11535 11535
                   OPC_CheckType, MVT::v16i8,
11536 11536
                   OPC_MoveParent,
11537 11537
                   OPC_MoveParent,
11538 11538
                   OPC_Scope, 19, 
11539
-                    OPC_CheckPatternPredicate, 12,
11539
+                    OPC_CheckPatternPredicate, 14,
11540 11540
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11541 11541
                     OPC_EmitMergeInputChains1_1,
11542 11542
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
11543 11543
                         1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
11544 11544
                   19, 
11545
-                    OPC_CheckPatternPredicate, 13,
11545
+                    OPC_CheckPatternPredicate, 15,
11546 11546
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11547 11547
                     OPC_EmitMergeInputChains1_1,
11548 11548
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -11555,7 +13022,7 @@ SDNode *SelectCode(SDNode *N) {
11555 11555
                   OPC_RecordChild1,
11556 11556
                   OPC_CheckPredicate, 2,
11557 11557
                   OPC_CheckPredicate, 3,
11558
-                  OPC_CheckPredicate, 21,
11558
+                  OPC_CheckPredicate, 19,
11559 11559
                   OPC_MoveParent,
11560 11560
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11561 11561
                   OPC_EmitMergeInputChains1_1,
... ...
@@ -11565,11 +13032,11 @@ SDNode *SelectCode(SDNode *N) {
11565 11565
               37, 
11566 11566
                 OPC_RecordChild2,
11567 11567
                 OPC_Scope, 11, 
11568
-                  OPC_CheckPatternPredicate, 12,
11568
+                  OPC_CheckPatternPredicate, 14,
11569 11569
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCLASTrr), 0,
11570 11570
                       1, MVT::v2i64, 2, 0, 1, 
11571 11571
                 11, 
11572
-                  OPC_CheckPatternPredicate, 13,
11572
+                  OPC_CheckPatternPredicate, 15,
11573 11573
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCLASTrr), 0,
11574 11574
                       1, MVT::v2i64, 2, 0, 1, 
11575 11575
                 9, 
... ...
@@ -11592,18 +13059,18 @@ SDNode *SelectCode(SDNode *N) {
11592 11592
                   OPC_RecordChild1,
11593 11593
                   OPC_CheckPredicate, 2,
11594 11594
                   OPC_CheckPredicate, 3,
11595
-                  OPC_CheckPredicate, 21,
11595
+                  OPC_CheckPredicate, 19,
11596 11596
                   OPC_CheckType, MVT::v16i8,
11597 11597
                   OPC_MoveParent,
11598 11598
                   OPC_MoveParent,
11599 11599
                   OPC_Scope, 19, 
11600
-                    OPC_CheckPatternPredicate, 12,
11600
+                    OPC_CheckPatternPredicate, 14,
11601 11601
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11602 11602
                     OPC_EmitMergeInputChains1_1,
11603 11603
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
11604 11604
                         1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
11605 11605
                   19, 
11606
-                    OPC_CheckPatternPredicate, 13,
11606
+                    OPC_CheckPatternPredicate, 15,
11607 11607
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11608 11608
                     OPC_EmitMergeInputChains1_1,
11609 11609
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -11616,7 +13083,7 @@ SDNode *SelectCode(SDNode *N) {
11616 11616
                   OPC_RecordChild1,
11617 11617
                   OPC_CheckPredicate, 2,
11618 11618
                   OPC_CheckPredicate, 3,
11619
-                  OPC_CheckPredicate, 21,
11619
+                  OPC_CheckPredicate, 19,
11620 11620
                   OPC_MoveParent,
11621 11621
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11622 11622
                   OPC_EmitMergeInputChains1_1,
... ...
@@ -11626,11 +13093,11 @@ SDNode *SelectCode(SDNode *N) {
11626 11626
               37, 
11627 11627
                 OPC_RecordChild2,
11628 11628
                 OPC_Scope, 11, 
11629
-                  OPC_CheckPatternPredicate, 12,
11629
+                  OPC_CheckPatternPredicate, 14,
11630 11630
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECrr), 0,
11631 11631
                       1, MVT::v2i64, 2, 0, 1, 
11632 11632
                 11, 
11633
-                  OPC_CheckPatternPredicate, 13,
11633
+                  OPC_CheckPatternPredicate, 15,
11634 11634
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECrr), 0,
11635 11635
                       1, MVT::v2i64, 2, 0, 1, 
11636 11636
                 9, 
... ...
@@ -11653,18 +13120,18 @@ SDNode *SelectCode(SDNode *N) {
11653 11653
                   OPC_RecordChild1,
11654 11654
                   OPC_CheckPredicate, 2,
11655 11655
                   OPC_CheckPredicate, 3,
11656
-                  OPC_CheckPredicate, 21,
11656
+                  OPC_CheckPredicate, 19,
11657 11657
                   OPC_CheckType, MVT::v16i8,
11658 11658
                   OPC_MoveParent,
11659 11659
                   OPC_MoveParent,
11660 11660
                   OPC_Scope, 19, 
11661
-                    OPC_CheckPatternPredicate, 12,
11661
+                    OPC_CheckPatternPredicate, 14,
11662 11662
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11663 11663
                     OPC_EmitMergeInputChains1_1,
11664 11664
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
11665 11665
                         1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
11666 11666
                   19, 
11667
-                    OPC_CheckPatternPredicate, 13,
11667
+                    OPC_CheckPatternPredicate, 15,
11668 11668
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11669 11669
                     OPC_EmitMergeInputChains1_1,
11670 11670
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -11677,7 +13144,7 @@ SDNode *SelectCode(SDNode *N) {
11677 11677
                   OPC_RecordChild1,
11678 11678
                   OPC_CheckPredicate, 2,
11679 11679
                   OPC_CheckPredicate, 3,
11680
-                  OPC_CheckPredicate, 21,
11680
+                  OPC_CheckPredicate, 19,
11681 11681
                   OPC_MoveParent,
11682 11682
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
11683 11683
                   OPC_EmitMergeInputChains1_1,
... ...
@@ -11687,11 +13154,11 @@ SDNode *SelectCode(SDNode *N) {
11687 11687
               37, 
11688 11688
                 OPC_RecordChild2,
11689 11689
                 OPC_Scope, 11, 
11690
-                  OPC_CheckPatternPredicate, 12,
11690
+                  OPC_CheckPatternPredicate, 14,
11691 11691
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECLASTrr), 0,
11692 11692
                       1, MVT::v2i64, 2, 0, 1, 
11693 11693
                 11, 
11694
-                  OPC_CheckPatternPredicate, 13,
11694
+                  OPC_CheckPatternPredicate, 15,
11695 11695
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECLASTrr), 0,
11696 11696
                       1, MVT::v2i64, 2, 0, 1, 
11697 11697
                 9, 
... ...
@@ -11711,21 +13178,21 @@ SDNode *SelectCode(SDNode *N) {
11711 11711
                 OPC_RecordChild1,
11712 11712
                 OPC_CheckPredicate, 2,
11713 11713
                 OPC_CheckPredicate, 3,
11714
-                OPC_CheckPredicate, 21,
11714
+                OPC_CheckPredicate, 19,
11715 11715
                 OPC_MoveParent,
11716 11716
                 OPC_RecordChild2,
11717 11717
                 OPC_MoveChild, 2,
11718 11718
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
11719 11719
                 OPC_MoveParent,
11720 11720
                 OPC_Scope, 21, 
11721
-                  OPC_CheckPatternPredicate, 12,
11721
+                  OPC_CheckPatternPredicate, 14,
11722 11722
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
11723 11723
                   OPC_EmitMergeInputChains1_0,
11724 11724
                   OPC_EmitConvertToTarget, 2,
11725 11725
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
11726 11726
                       1, MVT::v2i64, 6, 3, 4, 5, 6, 7, 8, 
11727 11727
                 21, 
11728
-                  OPC_CheckPatternPredicate, 13,
11728
+                  OPC_CheckPatternPredicate, 15,
11729 11729
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
11730 11730
                   OPC_EmitMergeInputChains1_0,
11731 11731
                   OPC_EmitConvertToTarget, 2,
... ...
@@ -11739,12 +13206,12 @@ SDNode *SelectCode(SDNode *N) {
11739 11739
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
11740 11740
                 OPC_MoveParent,
11741 11741
                 OPC_Scope, 13, 
11742
-                  OPC_CheckPatternPredicate, 12,
11742
+                  OPC_CheckPatternPredicate, 14,
11743 11743
                   OPC_EmitConvertToTarget, 1,
11744 11744
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESKEYGENASSIST128rr), 0,
11745 11745
                       1, MVT::v2i64, 2, 0, 2, 
11746 11746
                 13, 
11747
-                  OPC_CheckPatternPredicate, 13,
11747
+                  OPC_CheckPatternPredicate, 15,
11748 11748
                   OPC_EmitConvertToTarget, 1,
11749 11749
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESKEYGENASSIST128rr), 0,
11750 11750
                       1, MVT::v2i64, 2, 0, 2, 
... ...
@@ -11763,7 +13230,7 @@ SDNode *SelectCode(SDNode *N) {
11763 11763
                 OPC_RecordChild1,
11764 11764
                 OPC_CheckPredicate, 2,
11765 11765
                 OPC_CheckPredicate, 3,
11766
-                OPC_CheckPredicate, 21,
11766
+                OPC_CheckPredicate, 19,
11767 11767
                 OPC_MoveParent,
11768 11768
                 OPC_RecordChild3,
11769 11769
                 OPC_MoveChild, 3,
... ...
@@ -12930,7 +14397,7 @@ SDNode *SelectCode(SDNode *N) {
12930 12930
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
12931 12931
                 OPC_MoveParent,
12932 12932
                 OPC_Scope, 23, 
12933
-                  OPC_CheckPatternPredicate, 10,
12933
+                  OPC_CheckPatternPredicate, 13,
12934 12934
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
12935 12935
                   OPC_EmitMergeInputChains1_1,
12936 12936
                   OPC_EmitConvertToTarget, 3,
... ...
@@ -12951,7 +14418,7 @@ SDNode *SelectCode(SDNode *N) {
12951 12951
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
12952 12952
                 OPC_MoveParent,
12953 12953
                 OPC_Scope, 15, 
12954
-                  OPC_CheckPatternPredicate, 10,
12954
+                  OPC_CheckPatternPredicate, 13,
12955 12955
                   OPC_EmitConvertToTarget, 2,
12956 12956
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRM128REG), 0,
12957 12957
                       2, MVT::v16i8, MVT::i32, 3, 0, 1, 3, 
... ...
@@ -12983,7 +14450,7 @@ SDNode *SelectCode(SDNode *N) {
12983 12983
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
12984 12984
                 OPC_MoveParent,
12985 12985
                 OPC_Scope, 31, 
12986
-                  OPC_CheckPatternPredicate, 10,
12986
+                  OPC_CheckPatternPredicate, 13,
12987 12987
                   OPC_CheckComplexPat, /*CP*/0, /*#*/3,
12988 12988
                   OPC_EmitMergeInputChains, 1, 2, 
12989 12989
                   OPC_EmitConvertToTarget, 5,
... ...
@@ -13009,7 +14476,7 @@ SDNode *SelectCode(SDNode *N) {
13009 13009
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
13010 13010
                 OPC_MoveParent,
13011 13011
                 OPC_Scope, 21, 
13012
-                  OPC_CheckPatternPredicate, 10,
13012
+                  OPC_CheckPatternPredicate, 13,
13013 13013
                   OPC_EmitConvertToTarget, 4,
13014 13014
                   OPC_EmitCopyToReg, 1, X86::EAX,
13015 13015
                   OPC_EmitCopyToReg, 3, X86::EDX,
... ...
@@ -13024,6 +14491,495 @@ SDNode *SelectCode(SDNode *N) {
13024 13024
                       2, MVT::v16i8, MVT::i32, 3, 0, 2, 5, 
13025 13025
                 0, 
13026 13026
               0, 
13027
+            87, 
13028
+              OPC_CheckInteger, 34|128,6, 
13029
+              OPC_MoveParent,
13030
+              OPC_Scope, 54, 
13031
+                OPC_MoveChild, 1,
13032
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13033
+                OPC_RecordMemRef,
13034
+                OPC_RecordNode,
13035
+                OPC_CheckFoldableChainNode,
13036
+                OPC_RecordChild1,
13037
+                OPC_CheckPredicate, 2,
13038
+                OPC_CheckPredicate, 3,
13039
+                OPC_MoveParent,
13040
+                OPC_Scope, 18, 
13041
+                  OPC_CheckPatternPredicate, 0,
13042
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13043
+                  OPC_EmitMergeInputChains1_0,
13044
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13045
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13046
+                18, 
13047
+                  OPC_CheckPatternPredicate, 1,
13048
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13049
+                  OPC_EmitMergeInputChains1_0,
13050
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13051
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13052
+                0, 
13053
+              25, 
13054
+                OPC_RecordChild1,
13055
+                OPC_Scope, 10, 
13056
+                  OPC_CheckPatternPredicate, 0,
13057
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SIrr), 0,
13058
+                      1, MVT::i32, 1, 0, 
13059
+                10, 
13060
+                  OPC_CheckPatternPredicate, 1,
13061
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SIrr), 0,
13062
+                      1, MVT::i32, 1, 0, 
13063
+                0, 
13064
+              0, 
13065
+            87, 
13066
+              OPC_CheckInteger, 35|128,6, 
13067
+              OPC_MoveParent,
13068
+              OPC_Scope, 54, 
13069
+                OPC_MoveChild, 1,
13070
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13071
+                OPC_RecordMemRef,
13072
+                OPC_RecordNode,
13073
+                OPC_CheckFoldableChainNode,
13074
+                OPC_RecordChild1,
13075
+                OPC_CheckPredicate, 2,
13076
+                OPC_CheckPredicate, 3,
13077
+                OPC_MoveParent,
13078
+                OPC_Scope, 18, 
13079
+                  OPC_CheckPatternPredicate, 0,
13080
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13081
+                  OPC_EmitMergeInputChains1_0,
13082
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13083
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13084
+                18, 
13085
+                  OPC_CheckPatternPredicate, 1,
13086
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13087
+                  OPC_EmitMergeInputChains1_0,
13088
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13089
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13090
+                0, 
13091
+              25, 
13092
+                OPC_RecordChild1,
13093
+                OPC_Scope, 10, 
13094
+                  OPC_CheckPatternPredicate, 0,
13095
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SI64rr), 0,
13096
+                      1, MVT::i64, 1, 0, 
13097
+                10, 
13098
+                  OPC_CheckPatternPredicate, 1,
13099
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SI64rr), 0,
13100
+                      1, MVT::i64, 1, 0, 
13101
+                0, 
13102
+              0, 
13103
+            87, 
13104
+              OPC_CheckInteger, 114|128,4, 
13105
+              OPC_MoveParent,
13106
+              OPC_Scope, 54, 
13107
+                OPC_MoveChild, 1,
13108
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13109
+                OPC_RecordMemRef,
13110
+                OPC_RecordNode,
13111
+                OPC_CheckFoldableChainNode,
13112
+                OPC_RecordChild1,
13113
+                OPC_CheckPredicate, 2,
13114
+                OPC_CheckPredicate, 3,
13115
+                OPC_MoveParent,
13116
+                OPC_Scope, 18, 
13117
+                  OPC_CheckPatternPredicate, 0,
13118
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13119
+                  OPC_EmitMergeInputChains1_0,
13120
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13121
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13122
+                18, 
13123
+                  OPC_CheckPatternPredicate, 2,
13124
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13125
+                  OPC_EmitMergeInputChains1_0,
13126
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13127
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13128
+                0, 
13129
+              25, 
13130
+                OPC_RecordChild1,
13131
+                OPC_Scope, 10, 
13132
+                  OPC_CheckPatternPredicate, 0,
13133
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SIrr), 0,
13134
+                      1, MVT::i32, 1, 0, 
13135
+                10, 
13136
+                  OPC_CheckPatternPredicate, 2,
13137
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SIrr), 0,
13138
+                      1, MVT::i32, 1, 0, 
13139
+                0, 
13140
+              0, 
13141
+            87, 
13142
+              OPC_CheckInteger, 115|128,4, 
13143
+              OPC_MoveParent,
13144
+              OPC_Scope, 54, 
13145
+                OPC_MoveChild, 1,
13146
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13147
+                OPC_RecordMemRef,
13148
+                OPC_RecordNode,
13149
+                OPC_CheckFoldableChainNode,
13150
+                OPC_RecordChild1,
13151
+                OPC_CheckPredicate, 2,
13152
+                OPC_CheckPredicate, 3,
13153
+                OPC_MoveParent,
13154
+                OPC_Scope, 18, 
13155
+                  OPC_CheckPatternPredicate, 0,
13156
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13157
+                  OPC_EmitMergeInputChains1_0,
13158
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13159
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13160
+                18, 
13161
+                  OPC_CheckPatternPredicate, 2,
13162
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13163
+                  OPC_EmitMergeInputChains1_0,
13164
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13165
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13166
+                0, 
13167
+              25, 
13168
+                OPC_RecordChild1,
13169
+                OPC_Scope, 10, 
13170
+                  OPC_CheckPatternPredicate, 0,
13171
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SI64rr), 0,
13172
+                      1, MVT::i64, 1, 0, 
13173
+                10, 
13174
+                  OPC_CheckPatternPredicate, 2,
13175
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SI64rr), 0,
13176
+                      1, MVT::i64, 1, 0, 
13177
+                0, 
13178
+              0, 
13179
+            87, 
13180
+              OPC_CheckInteger, 38|128,6, 
13181
+              OPC_MoveParent,
13182
+              OPC_Scope, 54, 
13183
+                OPC_MoveChild, 1,
13184
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13185
+                OPC_RecordMemRef,
13186
+                OPC_RecordNode,
13187
+                OPC_CheckFoldableChainNode,
13188
+                OPC_RecordChild1,
13189
+                OPC_CheckPredicate, 2,
13190
+                OPC_CheckPredicate, 3,
13191
+                OPC_MoveParent,
13192
+                OPC_Scope, 18, 
13193
+                  OPC_CheckPatternPredicate, 0,
13194
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13195
+                  OPC_EmitMergeInputChains1_0,
13196
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13197
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13198
+                18, 
13199
+                  OPC_CheckPatternPredicate, 1,
13200
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13201
+                  OPC_EmitMergeInputChains1_0,
13202
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13203
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13204
+                0, 
13205
+              25, 
13206
+                OPC_RecordChild1,
13207
+                OPC_Scope, 10, 
13208
+                  OPC_CheckPatternPredicate, 0,
13209
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SIrr), 0,
13210
+                      1, MVT::i32, 1, 0, 
13211
+                10, 
13212
+                  OPC_CheckPatternPredicate, 1,
13213
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SIrr), 0,
13214
+                      1, MVT::i32, 1, 0, 
13215
+                0, 
13216
+              0, 
13217
+            87, 
13218
+              OPC_CheckInteger, 39|128,6, 
13219
+              OPC_MoveParent,
13220
+              OPC_Scope, 54, 
13221
+                OPC_MoveChild, 1,
13222
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13223
+                OPC_RecordMemRef,
13224
+                OPC_RecordNode,
13225
+                OPC_CheckFoldableChainNode,
13226
+                OPC_RecordChild1,
13227
+                OPC_CheckPredicate, 2,
13228
+                OPC_CheckPredicate, 3,
13229
+                OPC_MoveParent,
13230
+                OPC_Scope, 18, 
13231
+                  OPC_CheckPatternPredicate, 0,
13232
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13233
+                  OPC_EmitMergeInputChains1_0,
13234
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13235
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13236
+                18, 
13237
+                  OPC_CheckPatternPredicate, 1,
13238
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13239
+                  OPC_EmitMergeInputChains1_0,
13240
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13241
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13242
+                0, 
13243
+              25, 
13244
+                OPC_RecordChild1,
13245
+                OPC_Scope, 10, 
13246
+                  OPC_CheckPatternPredicate, 0,
13247
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SI64rr), 0,
13248
+                      1, MVT::i64, 1, 0, 
13249
+                10, 
13250
+                  OPC_CheckPatternPredicate, 1,
13251
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SI64rr), 0,
13252
+                      1, MVT::i64, 1, 0, 
13253
+                0, 
13254
+              0, 
13255
+            87, 
13256
+              OPC_CheckInteger, 122|128,4, 
13257
+              OPC_MoveParent,
13258
+              OPC_Scope, 54, 
13259
+                OPC_MoveChild, 1,
13260
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13261
+                OPC_RecordMemRef,
13262
+                OPC_RecordNode,
13263
+                OPC_CheckFoldableChainNode,
13264
+                OPC_RecordChild1,
13265
+                OPC_CheckPredicate, 2,
13266
+                OPC_CheckPredicate, 3,
13267
+                OPC_MoveParent,
13268
+                OPC_Scope, 18, 
13269
+                  OPC_CheckPatternPredicate, 0,
13270
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13271
+                  OPC_EmitMergeInputChains1_0,
13272
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13273
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13274
+                18, 
13275
+                  OPC_CheckPatternPredicate, 2,
13276
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13277
+                  OPC_EmitMergeInputChains1_0,
13278
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
13279
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
13280
+                0, 
13281
+              25, 
13282
+                OPC_RecordChild1,
13283
+                OPC_Scope, 10, 
13284
+                  OPC_CheckPatternPredicate, 0,
13285
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SIrr), 0,
13286
+                      1, MVT::i32, 1, 0, 
13287
+                10, 
13288
+                  OPC_CheckPatternPredicate, 2,
13289
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SIrr), 0,
13290
+                      1, MVT::i32, 1, 0, 
13291
+                0, 
13292
+              0, 
13293
+            87, 
13294
+              OPC_CheckInteger, 123|128,4, 
13295
+              OPC_MoveParent,
13296
+              OPC_Scope, 54, 
13297
+                OPC_MoveChild, 1,
13298
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13299
+                OPC_RecordMemRef,
13300
+                OPC_RecordNode,
13301
+                OPC_CheckFoldableChainNode,
13302
+                OPC_RecordChild1,
13303
+                OPC_CheckPredicate, 2,
13304
+                OPC_CheckPredicate, 3,
13305
+                OPC_MoveParent,
13306
+                OPC_Scope, 18, 
13307
+                  OPC_CheckPatternPredicate, 0,
13308
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13309
+                  OPC_EmitMergeInputChains1_0,
13310
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13311
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13312
+                18, 
13313
+                  OPC_CheckPatternPredicate, 2,
13314
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13315
+                  OPC_EmitMergeInputChains1_0,
13316
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
13317
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
13318
+                0, 
13319
+              25, 
13320
+                OPC_RecordChild1,
13321
+                OPC_Scope, 10, 
13322
+                  OPC_CheckPatternPredicate, 0,
13323
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SI64rr), 0,
13324
+                      1, MVT::i64, 1, 0, 
13325
+                10, 
13326
+                  OPC_CheckPatternPredicate, 2,
13327
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SI64rr), 0,
13328
+                      1, MVT::i64, 1, 0, 
13329
+                0, 
13330
+              0, 
13331
+            54, 
13332
+              OPC_CheckInteger, 1|128,6, 
13333
+              OPC_MoveParent,
13334
+              OPC_RecordChild1,
13335
+              OPC_Scope, 33, 
13336
+                OPC_MoveChild, 2,
13337
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13338
+                OPC_RecordMemRef,
13339
+                OPC_RecordNode,
13340
+                OPC_CheckFoldableChainNode,
13341
+                OPC_RecordChild1,
13342
+                OPC_CheckPredicate, 2,
13343
+                OPC_CheckPredicate, 3,
13344
+                OPC_MoveParent,
13345
+                OPC_CheckPatternPredicate, 13,
13346
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13347
+                OPC_EmitMergeInputChains1_1,
13348
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m8), 0|OPFL_Chain|OPFL_MemRefs,
13349
+                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
13350
+              12, 
13351
+                OPC_RecordChild2,
13352
+                OPC_CheckPatternPredicate, 13,
13353
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r8), 0,
13354
+                    1, MVT::i32, 2, 0, 1, 
13355
+              0, 
13356
+            54, 
13357
+              OPC_CheckInteger, 127|128,5, 
13358
+              OPC_MoveParent,
13359
+              OPC_RecordChild1,
13360
+              OPC_Scope, 33, 
13361
+                OPC_MoveChild, 2,
13362
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13363
+                OPC_RecordMemRef,
13364
+                OPC_RecordNode,
13365
+                OPC_CheckFoldableChainNode,
13366
+                OPC_RecordChild1,
13367
+                OPC_CheckPredicate, 2,
13368
+                OPC_CheckPredicate, 3,
13369
+                OPC_MoveParent,
13370
+                OPC_CheckPatternPredicate, 13,
13371
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13372
+                OPC_EmitMergeInputChains1_1,
13373
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m16), 0|OPFL_Chain|OPFL_MemRefs,
13374
+                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
13375
+              12, 
13376
+                OPC_RecordChild2,
13377
+                OPC_CheckPatternPredicate, 13,
13378
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r16), 0,
13379
+                    1, MVT::i32, 2, 0, 1, 
13380
+              0, 
13381
+            54, 
13382
+              OPC_CheckInteger, 0|128,6, 
13383
+              OPC_MoveParent,
13384
+              OPC_RecordChild1,
13385
+              OPC_Scope, 33, 
13386
+                OPC_MoveChild, 2,
13387
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13388
+                OPC_RecordMemRef,
13389
+                OPC_RecordNode,
13390
+                OPC_CheckFoldableChainNode,
13391
+                OPC_RecordChild1,
13392
+                OPC_CheckPredicate, 2,
13393
+                OPC_CheckPredicate, 3,
13394
+                OPC_MoveParent,
13395
+                OPC_CheckPatternPredicate, 13,
13396
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13397
+                OPC_EmitMergeInputChains1_1,
13398
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m32), 0|OPFL_Chain|OPFL_MemRefs,
13399
+                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
13400
+              12, 
13401
+                OPC_RecordChild2,
13402
+                OPC_CheckPatternPredicate, 13,
13403
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r32), 0,
13404
+                    1, MVT::i32, 2, 0, 1, 
13405
+              0, 
13406
+            54, 
13407
+              OPC_CheckInteger, 3|128,6, 
13408
+              OPC_MoveParent,
13409
+              OPC_RecordChild1,
13410
+              OPC_Scope, 33, 
13411
+                OPC_MoveChild, 2,
13412
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13413
+                OPC_RecordMemRef,
13414
+                OPC_RecordNode,
13415
+                OPC_CheckFoldableChainNode,
13416
+                OPC_RecordChild1,
13417
+                OPC_CheckPredicate, 2,
13418
+                OPC_CheckPredicate, 3,
13419
+                OPC_MoveParent,
13420
+                OPC_CheckPatternPredicate, 13,
13421
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13422
+                OPC_EmitMergeInputChains1_1,
13423
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64m8), 0|OPFL_Chain|OPFL_MemRefs,
13424
+                    1, MVT::i64, 6, 0, 3, 4, 5, 6, 7, 
13425
+              12, 
13426
+                OPC_RecordChild2,
13427
+                OPC_CheckPatternPredicate, 13,
13428
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64r8), 0,
13429
+                    1, MVT::i64, 2, 0, 1, 
13430
+              0, 
13431
+            54, 
13432
+              OPC_CheckInteger, 2|128,6, 
13433
+              OPC_MoveParent,
13434
+              OPC_RecordChild1,
13435
+              OPC_Scope, 33, 
13436
+                OPC_MoveChild, 2,
13437
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
13438
+                OPC_RecordMemRef,
13439
+                OPC_RecordNode,
13440
+                OPC_CheckFoldableChainNode,
13441
+                OPC_RecordChild1,
13442
+                OPC_CheckPredicate, 2,
13443
+                OPC_CheckPredicate, 3,
13444
+                OPC_MoveParent,
13445
+                OPC_CheckPatternPredicate, 13,
13446
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13447
+                OPC_EmitMergeInputChains1_1,
13448
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64m64), 0|OPFL_Chain|OPFL_MemRefs,
13449
+                    1, MVT::i64, 6, 0, 3, 4, 5, 6, 7, 
13450
+              12, 
13451
+                OPC_RecordChild2,
13452
+                OPC_CheckPatternPredicate, 13,
13453
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64r64), 0,
13454
+                    1, MVT::i64, 2, 0, 1, 
13455
+              0, 
13456
+            29, 
13457
+              OPC_CheckInteger, 47|128,6, 
13458
+              OPC_MoveParent,
13459
+              OPC_RecordChild1,
13460
+              OPC_Scope, 10, 
13461
+                OPC_CheckPatternPredicate, 1,
13462
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVMSKPSrr), 0,
13463
+                    1, MVT::i32, 1, 0, 
13464
+              10, 
13465
+                OPC_CheckPatternPredicate, 0,
13466
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPSrr), 0,
13467
+                    1, MVT::i32, 1, 0, 
13468
+              0, 
13469
+            29, 
13470
+              OPC_CheckInteger, 6|128,5, 
13471
+              OPC_MoveParent,
13472
+              OPC_RecordChild1,
13473
+              OPC_Scope, 10, 
13474
+                OPC_CheckPatternPredicate, 2,
13475
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVMSKPDrr), 0,
13476
+                    1, MVT::i32, 1, 0, 
13477
+              10, 
13478
+                OPC_CheckPatternPredicate, 0,
13479
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPDrr), 0,
13480
+                    1, MVT::i32, 1, 0, 
13481
+              0, 
13482
+            15, 
13483
+              OPC_CheckInteger, 97|128,3, 
13484
+              OPC_MoveParent,
13485
+              OPC_RecordChild1,
13486
+              OPC_CheckPatternPredicate, 0,
13487
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPSYrr), 0,
13488
+                  1, MVT::i32, 1, 0, 
13489
+            15, 
13490
+              OPC_CheckInteger, 96|128,3, 
13491
+              OPC_MoveParent,
13492
+              OPC_RecordChild1,
13493
+              OPC_CheckPatternPredicate, 0,
13494
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPDYrr), 0,
13495
+                  1, MVT::i32, 1, 0, 
13496
+            29, 
13497
+              OPC_CheckInteger, 31|128,5, 
13498
+              OPC_MoveParent,
13499
+              OPC_RecordChild1,
13500
+              OPC_Scope, 10, 
13501
+                OPC_CheckPatternPredicate, 0,
13502
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVMSKBrr), 0,
13503
+                    1, MVT::i32, 1, 0, 
13504
+              10, 
13505
+                OPC_CheckPatternPredicate, 2,
13506
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVMSKBrr), 0,
13507
+                    1, MVT::i32, 1, 0, 
13508
+              0, 
13509
+            15, 
13510
+              OPC_CheckInteger, 56|128,4, 
13511
+              OPC_MoveParent,
13512
+              OPC_RecordChild1,
13513
+              OPC_CheckPatternPredicate, 9,
13514
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMOVMSKBrr), 0,
13515
+                  1, MVT::i32, 1, 0, 
13027 13516
             51, 
13028 13517
               OPC_CheckInteger, 31|128,6, 
13029 13518
               OPC_MoveParent,
... ...
@@ -13060,7 +15016,7 @@ SDNode *SelectCode(SDNode *N) {
13060 13060
                 OPC_RecordChild1,
13061 13061
                 OPC_CheckPredicate, 2,
13062 13062
                 OPC_CheckPredicate, 3,
13063
-                OPC_CheckPredicate, 21,
13063
+                OPC_CheckPredicate, 19,
13064 13064
                 OPC_MoveParent,
13065 13065
                 OPC_CheckPatternPredicate, 2,
13066 13066
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
... ...
@@ -13109,7 +15065,7 @@ SDNode *SelectCode(SDNode *N) {
13109 13109
                 OPC_RecordChild1,
13110 13110
                 OPC_CheckPredicate, 2,
13111 13111
                 OPC_CheckPredicate, 3,
13112
-                OPC_CheckPredicate, 21,
13112
+                OPC_CheckPredicate, 19,
13113 13113
                 OPC_MoveParent,
13114 13114
                 OPC_CheckPatternPredicate, 2,
13115 13115
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
... ...
@@ -13134,7 +15090,7 @@ SDNode *SelectCode(SDNode *N) {
13134 13134
                 OPC_RecordChild1,
13135 13135
                 OPC_CheckPredicate, 2,
13136 13136
                 OPC_CheckPredicate, 3,
13137
-                OPC_CheckPredicate, 21,
13137
+                OPC_CheckPredicate, 19,
13138 13138
                 OPC_MoveParent,
13139 13139
                 OPC_Scope, 18, 
13140 13140
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13173,7 +15129,7 @@ SDNode *SelectCode(SDNode *N) {
13173 13173
                 OPC_RecordChild1,
13174 13174
                 OPC_CheckPredicate, 2,
13175 13175
                 OPC_CheckPredicate, 3,
13176
-                OPC_CheckPredicate, 21,
13176
+                OPC_CheckPredicate, 19,
13177 13177
                 OPC_MoveParent,
13178 13178
                 OPC_Scope, 18, 
13179 13179
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13212,7 +15168,7 @@ SDNode *SelectCode(SDNode *N) {
13212 13212
                 OPC_RecordChild1,
13213 13213
                 OPC_CheckPredicate, 2,
13214 13214
                 OPC_CheckPredicate, 3,
13215
-                OPC_CheckPredicate, 21,
13215
+                OPC_CheckPredicate, 19,
13216 13216
                 OPC_MoveParent,
13217 13217
                 OPC_Scope, 18, 
13218 13218
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13251,7 +15207,7 @@ SDNode *SelectCode(SDNode *N) {
13251 13251
                 OPC_RecordChild1,
13252 13252
                 OPC_CheckPredicate, 2,
13253 13253
                 OPC_CheckPredicate, 3,
13254
-                OPC_CheckPredicate, 21,
13254
+                OPC_CheckPredicate, 19,
13255 13255
                 OPC_MoveParent,
13256 13256
                 OPC_Scope, 18, 
13257 13257
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13290,7 +15246,7 @@ SDNode *SelectCode(SDNode *N) {
13290 13290
                 OPC_RecordChild1,
13291 13291
                 OPC_CheckPredicate, 2,
13292 13292
                 OPC_CheckPredicate, 3,
13293
-                OPC_CheckPredicate, 21,
13293
+                OPC_CheckPredicate, 19,
13294 13294
                 OPC_MoveParent,
13295 13295
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13296 13296
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -13313,7 +15269,7 @@ SDNode *SelectCode(SDNode *N) {
13313 13313
                 OPC_RecordChild1,
13314 13314
                 OPC_CheckPredicate, 2,
13315 13315
                 OPC_CheckPredicate, 3,
13316
-                OPC_CheckPredicate, 21,
13316
+                OPC_CheckPredicate, 19,
13317 13317
                 OPC_MoveParent,
13318 13318
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13319 13319
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -13336,7 +15292,7 @@ SDNode *SelectCode(SDNode *N) {
13336 13336
                 OPC_RecordChild1,
13337 13337
                 OPC_CheckPredicate, 2,
13338 13338
                 OPC_CheckPredicate, 3,
13339
-                OPC_CheckPredicate, 21,
13339
+                OPC_CheckPredicate, 19,
13340 13340
                 OPC_MoveParent,
13341 13341
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13342 13342
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -13360,7 +15316,7 @@ SDNode *SelectCode(SDNode *N) {
13360 13360
                 OPC_RecordChild1,
13361 13361
                 OPC_CheckPredicate, 2,
13362 13362
                 OPC_CheckPredicate, 3,
13363
-                OPC_CheckPredicate, 21,
13363
+                OPC_CheckPredicate, 19,
13364 13364
                 OPC_MoveParent,
13365 13365
                 OPC_Scope, 19, 
13366 13366
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13400,7 +15356,7 @@ SDNode *SelectCode(SDNode *N) {
13400 13400
                 OPC_RecordChild1,
13401 13401
                 OPC_CheckPredicate, 2,
13402 13402
                 OPC_CheckPredicate, 3,
13403
-                OPC_CheckPredicate, 21,
13403
+                OPC_CheckPredicate, 19,
13404 13404
                 OPC_MoveParent,
13405 13405
                 OPC_Scope, 19, 
13406 13406
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13439,7 +15395,7 @@ SDNode *SelectCode(SDNode *N) {
13439 13439
                 OPC_RecordChild1,
13440 13440
                 OPC_CheckPredicate, 2,
13441 13441
                 OPC_CheckPredicate, 3,
13442
-                OPC_CheckPredicate, 21,
13442
+                OPC_CheckPredicate, 19,
13443 13443
                 OPC_MoveParent,
13444 13444
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13445 13445
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -13462,7 +15418,7 @@ SDNode *SelectCode(SDNode *N) {
13462 13462
                 OPC_RecordChild1,
13463 13463
                 OPC_CheckPredicate, 2,
13464 13464
                 OPC_CheckPredicate, 3,
13465
-                OPC_CheckPredicate, 21,
13465
+                OPC_CheckPredicate, 19,
13466 13466
                 OPC_MoveParent,
13467 13467
                 OPC_Scope, 18, 
13468 13468
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13471,7 +15427,7 @@ SDNode *SelectCode(SDNode *N) {
13471 13471
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSBrm128), 0|OPFL_Chain|OPFL_MemRefs,
13472 13472
                       1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
13473 13473
                 18, 
13474
-                  OPC_CheckPatternPredicate, 11,
13474
+                  OPC_CheckPatternPredicate, 12,
13475 13475
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13476 13476
                   OPC_EmitMergeInputChains1_0,
13477 13477
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -13484,7 +15440,7 @@ SDNode *SelectCode(SDNode *N) {
13484 13484
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSBrr128), 0,
13485 13485
                       1, MVT::v16i8, 1, 0, 
13486 13486
                 10, 
13487
-                  OPC_CheckPatternPredicate, 11,
13487
+                  OPC_CheckPatternPredicate, 12,
13488 13488
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrr128), 0,
13489 13489
                       1, MVT::v16i8, 1, 0, 
13490 13490
                 0, 
... ...
@@ -13501,7 +15457,7 @@ SDNode *SelectCode(SDNode *N) {
13501 13501
                 OPC_RecordChild1,
13502 13502
                 OPC_CheckPredicate, 2,
13503 13503
                 OPC_CheckPredicate, 3,
13504
-                OPC_CheckPredicate, 22,
13504
+                OPC_CheckPredicate, 44,
13505 13505
                 OPC_MoveParent,
13506 13506
                 OPC_Scope, 18, 
13507 13507
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13510,7 +15466,7 @@ SDNode *SelectCode(SDNode *N) {
13510 13510
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
13511 13511
                       1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
13512 13512
                 18, 
13513
-                  OPC_CheckPatternPredicate, 11,
13513
+                  OPC_CheckPatternPredicate, 12,
13514 13514
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13515 13515
                   OPC_EmitMergeInputChains1_0,
13516 13516
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -13523,7 +15479,7 @@ SDNode *SelectCode(SDNode *N) {
13523 13523
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSWrr128), 0,
13524 13524
                       1, MVT::v8i16, 1, 0, 
13525 13525
                 10, 
13526
-                  OPC_CheckPatternPredicate, 11,
13526
+                  OPC_CheckPatternPredicate, 12,
13527 13527
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrr128), 0,
13528 13528
                       1, MVT::v8i16, 1, 0, 
13529 13529
                 0, 
... ...
@@ -13540,7 +15496,7 @@ SDNode *SelectCode(SDNode *N) {
13540 13540
                 OPC_RecordChild1,
13541 13541
                 OPC_CheckPredicate, 2,
13542 13542
                 OPC_CheckPredicate, 3,
13543
-                OPC_CheckPredicate, 21,
13543
+                OPC_CheckPredicate, 19,
13544 13544
                 OPC_MoveParent,
13545 13545
                 OPC_Scope, 18, 
13546 13546
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13549,7 +15505,7 @@ SDNode *SelectCode(SDNode *N) {
13549 13549
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSDrm128), 0|OPFL_Chain|OPFL_MemRefs,
13550 13550
                       1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
13551 13551
                 18, 
13552
-                  OPC_CheckPatternPredicate, 11,
13552
+                  OPC_CheckPatternPredicate, 12,
13553 13553
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13554 13554
                   OPC_EmitMergeInputChains1_0,
13555 13555
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -13562,7 +15518,7 @@ SDNode *SelectCode(SDNode *N) {
13562 13562
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSDrr128), 0,
13563 13563
                       1, MVT::v4i32, 1, 0, 
13564 13564
                 10, 
13565
-                  OPC_CheckPatternPredicate, 11,
13565
+                  OPC_CheckPatternPredicate, 12,
13566 13566
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrr128), 0,
13567 13567
                       1, MVT::v4i32, 1, 0, 
13568 13568
                 0, 
... ...
@@ -13579,16 +15535,16 @@ SDNode *SelectCode(SDNode *N) {
13579 13579
                 OPC_RecordChild1,
13580 13580
                 OPC_CheckPredicate, 2,
13581 13581
                 OPC_CheckPredicate, 3,
13582
-                OPC_CheckPredicate, 22,
13582
+                OPC_CheckPredicate, 44,
13583 13583
                 OPC_MoveParent,
13584
-                OPC_CheckPatternPredicate, 11,
13584
+                OPC_CheckPatternPredicate, 12,
13585 13585
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13586 13586
                 OPC_EmitMergeInputChains1_0,
13587 13587
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrm64), 0|OPFL_Chain|OPFL_MemRefs,
13588 13588
                     1, MVT::v8i8, 5, 2, 3, 4, 5, 6, 
13589 13589
               11, 
13590 13590
                 OPC_RecordChild1,
13591
-                OPC_CheckPatternPredicate, 11,
13591
+                OPC_CheckPatternPredicate, 12,
13592 13592
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrr64), 0,
13593 13593
                     1, MVT::v8i8, 1, 0, 
13594 13594
               0, 
... ...
@@ -13604,16 +15560,16 @@ SDNode *SelectCode(SDNode *N) {
13604 13604
                 OPC_RecordChild1,
13605 13605
                 OPC_CheckPredicate, 2,
13606 13606
                 OPC_CheckPredicate, 3,
13607
-                OPC_CheckPredicate, 22,
13607
+                OPC_CheckPredicate, 44,
13608 13608
                 OPC_MoveParent,
13609
-                OPC_CheckPatternPredicate, 11,
13609
+                OPC_CheckPatternPredicate, 12,
13610 13610
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13611 13611
                 OPC_EmitMergeInputChains1_0,
13612 13612
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
13613 13613
                     1, MVT::v4i16, 5, 2, 3, 4, 5, 6, 
13614 13614
               11, 
13615 13615
                 OPC_RecordChild1,
13616
-                OPC_CheckPatternPredicate, 11,
13616
+                OPC_CheckPatternPredicate, 12,
13617 13617
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrr64), 0,
13618 13618
                     1, MVT::v4i16, 1, 0, 
13619 13619
               0, 
... ...
@@ -13629,16 +15585,16 @@ SDNode *SelectCode(SDNode *N) {
13629 13629
                 OPC_RecordChild1,
13630 13630
                 OPC_CheckPredicate, 2,
13631 13631
                 OPC_CheckPredicate, 3,
13632
-                OPC_CheckPredicate, 22,
13632
+                OPC_CheckPredicate, 44,
13633 13633
                 OPC_MoveParent,
13634
-                OPC_CheckPatternPredicate, 11,
13634
+                OPC_CheckPatternPredicate, 12,
13635 13635
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
13636 13636
                 OPC_EmitMergeInputChains1_0,
13637 13637
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrm64), 0|OPFL_Chain|OPFL_MemRefs,
13638 13638
                     1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
13639 13639
               11, 
13640 13640
                 OPC_RecordChild1,
13641
-                OPC_CheckPatternPredicate, 11,
13641
+                OPC_CheckPatternPredicate, 12,
13642 13642
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrr64), 0,
13643 13643
                     1, MVT::v2i32, 1, 0, 
13644 13644
               0, 
... ...
@@ -13655,7 +15611,7 @@ SDNode *SelectCode(SDNode *N) {
13655 13655
                 OPC_RecordChild1,
13656 13656
                 OPC_CheckPredicate, 2,
13657 13657
                 OPC_CheckPredicate, 3,
13658
-                OPC_CheckPredicate, 21,
13658
+                OPC_CheckPredicate, 19,
13659 13659
                 OPC_MoveParent,
13660 13660
                 OPC_Scope, 19, 
13661 13661
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13664,7 +15620,7 @@ SDNode *SelectCode(SDNode *N) {
13664 13664
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
13665 13665
                       1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
13666 13666
                 19, 
13667
-                  OPC_CheckPatternPredicate, 11,
13667
+                  OPC_CheckPatternPredicate, 12,
13668 13668
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13669 13669
                   OPC_EmitMergeInputChains1_1,
13670 13670
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -13677,7 +15633,7 @@ SDNode *SelectCode(SDNode *N) {
13677 13677
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFBrr128), 0,
13678 13678
                       1, MVT::v16i8, 2, 0, 1, 
13679 13679
                 11, 
13680
-                  OPC_CheckPatternPredicate, 11,
13680
+                  OPC_CheckPatternPredicate, 12,
13681 13681
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrr128), 0,
13682 13682
                       1, MVT::v16i8, 2, 0, 1, 
13683 13683
                 0, 
... ...
@@ -13695,7 +15651,7 @@ SDNode *SelectCode(SDNode *N) {
13695 13695
                 OPC_RecordChild1,
13696 13696
                 OPC_CheckPredicate, 2,
13697 13697
                 OPC_CheckPredicate, 3,
13698
-                OPC_CheckPredicate, 21,
13698
+                OPC_CheckPredicate, 19,
13699 13699
                 OPC_MoveParent,
13700 13700
                 OPC_Scope, 19, 
13701 13701
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13704,7 +15660,7 @@ SDNode *SelectCode(SDNode *N) {
13704 13704
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNBrm128), 0|OPFL_Chain|OPFL_MemRefs,
13705 13705
                       1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
13706 13706
                 19, 
13707
-                  OPC_CheckPatternPredicate, 11,
13707
+                  OPC_CheckPatternPredicate, 12,
13708 13708
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13709 13709
                   OPC_EmitMergeInputChains1_1,
13710 13710
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrm128), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -13717,7 +15673,7 @@ SDNode *SelectCode(SDNode *N) {
13717 13717
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNBrr128), 0,
13718 13718
                       1, MVT::v16i8, 2, 0, 1, 
13719 13719
                 11, 
13720
-                  OPC_CheckPatternPredicate, 11,
13720
+                  OPC_CheckPatternPredicate, 12,
13721 13721
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrr128), 0,
13722 13722
                       1, MVT::v16i8, 2, 0, 1, 
13723 13723
                 0, 
... ...
@@ -13735,16 +15691,16 @@ SDNode *SelectCode(SDNode *N) {
13735 13735
                 OPC_RecordChild1,
13736 13736
                 OPC_CheckPredicate, 2,
13737 13737
                 OPC_CheckPredicate, 3,
13738
-                OPC_CheckPredicate, 22,
13738
+                OPC_CheckPredicate, 44,
13739 13739
                 OPC_MoveParent,
13740
-                OPC_CheckPatternPredicate, 11,
13740
+                OPC_CheckPatternPredicate, 12,
13741 13741
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13742 13742
                 OPC_EmitMergeInputChains1_1,
13743 13743
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrm64), 0|OPFL_Chain|OPFL_MemRefs,
13744 13744
                     1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
13745 13745
               12, 
13746 13746
                 OPC_RecordChild2,
13747
-                OPC_CheckPatternPredicate, 11,
13747
+                OPC_CheckPatternPredicate, 12,
13748 13748
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrr64), 0,
13749 13749
                     1, MVT::v8i8, 2, 0, 1, 
13750 13750
               0, 
... ...
@@ -13761,16 +15717,16 @@ SDNode *SelectCode(SDNode *N) {
13761 13761
                 OPC_RecordChild1,
13762 13762
                 OPC_CheckPredicate, 2,
13763 13763
                 OPC_CheckPredicate, 3,
13764
-                OPC_CheckPredicate, 22,
13764
+                OPC_CheckPredicate, 44,
13765 13765
                 OPC_MoveParent,
13766
-                OPC_CheckPatternPredicate, 11,
13766
+                OPC_CheckPatternPredicate, 12,
13767 13767
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
13768 13768
                 OPC_EmitMergeInputChains1_1,
13769 13769
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrm64), 0|OPFL_Chain|OPFL_MemRefs,
13770 13770
                     1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
13771 13771
               12, 
13772 13772
                 OPC_RecordChild2,
13773
-                OPC_CheckPatternPredicate, 11,
13773
+                OPC_CheckPatternPredicate, 12,
13774 13774
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrr64), 0,
13775 13775
                     1, MVT::v8i8, 2, 0, 1, 
13776 13776
               0, 
... ...
@@ -13786,7 +15742,7 @@ SDNode *SelectCode(SDNode *N) {
13786 13786
                 OPC_RecordChild1,
13787 13787
                 OPC_CheckPredicate, 2,
13788 13788
                 OPC_CheckPredicate, 3,
13789
-                OPC_CheckPredicate, 22,
13789
+                OPC_CheckPredicate, 44,
13790 13790
                 OPC_MoveParent,
13791 13791
                 OPC_Scope, 18, 
13792 13792
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13826,7 +15782,7 @@ SDNode *SelectCode(SDNode *N) {
13826 13826
                 OPC_RecordChild1,
13827 13827
                 OPC_CheckPredicate, 2,
13828 13828
                 OPC_CheckPredicate, 3,
13829
-                OPC_CheckPredicate, 21,
13829
+                OPC_CheckPredicate, 19,
13830 13830
                 OPC_MoveParent,
13831 13831
                 OPC_Scope, 19, 
13832 13832
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13850,7 +15806,7 @@ SDNode *SelectCode(SDNode *N) {
13850 13850
                 OPC_RecordChild1,
13851 13851
                 OPC_CheckPredicate, 2,
13852 13852
                 OPC_CheckPredicate, 3,
13853
-                OPC_CheckPredicate, 21,
13853
+                OPC_CheckPredicate, 19,
13854 13854
                 OPC_MoveParent,
13855 13855
                 OPC_RecordChild2,
13856 13856
                 OPC_Scope, 19, 
... ...
@@ -13892,7 +15848,7 @@ SDNode *SelectCode(SDNode *N) {
13892 13892
                 OPC_RecordChild1,
13893 13893
                 OPC_CheckPredicate, 2,
13894 13894
                 OPC_CheckPredicate, 3,
13895
-                OPC_CheckPredicate, 21,
13895
+                OPC_CheckPredicate, 19,
13896 13896
                 OPC_MoveParent,
13897 13897
                 OPC_Scope, 19, 
13898 13898
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -13916,7 +15872,7 @@ SDNode *SelectCode(SDNode *N) {
13916 13916
                 OPC_RecordChild1,
13917 13917
                 OPC_CheckPredicate, 2,
13918 13918
                 OPC_CheckPredicate, 3,
13919
-                OPC_CheckPredicate, 21,
13919
+                OPC_CheckPredicate, 19,
13920 13920
                 OPC_MoveParent,
13921 13921
                 OPC_RecordChild2,
13922 13922
                 OPC_Scope, 19, 
... ...
@@ -13958,7 +15914,7 @@ SDNode *SelectCode(SDNode *N) {
13958 13958
                 OPC_RecordChild1,
13959 13959
                 OPC_CheckPredicate, 2,
13960 13960
                 OPC_CheckPredicate, 3,
13961
-                OPC_CheckPredicate, 21,
13961
+                OPC_CheckPredicate, 19,
13962 13962
                 OPC_MoveParent,
13963 13963
                 OPC_RecordChild3,
13964 13964
                 OPC_Scope, 20, 
... ...
@@ -14001,16 +15957,16 @@ SDNode *SelectCode(SDNode *N) {
14001 14001
                 OPC_RecordChild1,
14002 14002
                 OPC_CheckPredicate, 2,
14003 14003
                 OPC_CheckPredicate, 3,
14004
-                OPC_CheckPredicate, 21,
14004
+                OPC_CheckPredicate, 19,
14005 14005
                 OPC_MoveParent,
14006 14006
                 OPC_Scope, 18, 
14007
-                  OPC_CheckPatternPredicate, 12,
14007
+                  OPC_CheckPatternPredicate, 14,
14008 14008
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14009 14009
                   OPC_EmitMergeInputChains1_0,
14010 14010
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
14011 14011
                       1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
14012 14012
                 18, 
14013
-                  OPC_CheckPatternPredicate, 13,
14013
+                  OPC_CheckPatternPredicate, 15,
14014 14014
                   OPC_CheckComplexPat, /*CP*/0, /*#*/1,
14015 14015
                   OPC_EmitMergeInputChains1_0,
14016 14016
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -14019,11 +15975,11 @@ SDNode *SelectCode(SDNode *N) {
14019 14019
               25, 
14020 14020
                 OPC_RecordChild1,
14021 14021
                 OPC_Scope, 10, 
14022
-                  OPC_CheckPatternPredicate, 12,
14022
+                  OPC_CheckPatternPredicate, 14,
14023 14023
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESIMCrr), 0,
14024 14024
                       1, MVT::v2i64, 1, 0, 
14025 14025
                 10, 
14026
-                  OPC_CheckPatternPredicate, 13,
14026
+                  OPC_CheckPatternPredicate, 15,
14027 14027
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::AESIMCrr), 0,
14028 14028
                       1, MVT::v2i64, 1, 0, 
14029 14029
                 0, 
... ...
@@ -14391,13 +16347,13 @@ SDNode *SelectCode(SDNode *N) {
14391 14391
               OPC_Scope, 16, 
14392 14392
                 OPC_CheckPatternPredicate, 0,
14393 14393
                 OPC_EmitConvertToTarget, 1,
14394
-                OPC_EmitNodeXForm, 0, 2,
14394
+                OPC_EmitNodeXForm, 5, 2,
14395 14395
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
14396 14396
                     1, MVT::v2i64, 2, 0, 3, 
14397 14397
               16, 
14398 14398
                 OPC_CheckPatternPredicate, 2,
14399 14399
                 OPC_EmitConvertToTarget, 1,
14400
-                OPC_EmitNodeXForm, 0, 2,
14400
+                OPC_EmitNodeXForm, 5, 2,
14401 14401
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDQri), 0,
14402 14402
                     1, MVT::v2i64, 2, 0, 3, 
14403 14403
               0, 
... ...
@@ -14412,13 +16368,13 @@ SDNode *SelectCode(SDNode *N) {
14412 14412
               OPC_Scope, 16, 
14413 14413
                 OPC_CheckPatternPredicate, 0,
14414 14414
                 OPC_EmitConvertToTarget, 1,
14415
-                OPC_EmitNodeXForm, 0, 2,
14415
+                OPC_EmitNodeXForm, 5, 2,
14416 14416
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
14417 14417
                     1, MVT::v2i64, 2, 0, 3, 
14418 14418
               16, 
14419 14419
                 OPC_CheckPatternPredicate, 2,
14420 14420
                 OPC_EmitConvertToTarget, 1,
14421
-                OPC_EmitNodeXForm, 0, 2,
14421
+                OPC_EmitNodeXForm, 5, 2,
14422 14422
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
14423 14423
                     1, MVT::v2i64, 2, 0, 3, 
14424 14424
               0, 
... ...
@@ -14594,7 +16550,7 @@ SDNode *SelectCode(SDNode *N) {
14594 14594
                 OPC_RecordChild1,
14595 14595
                 OPC_CheckPredicate, 2,
14596 14596
                 OPC_CheckPredicate, 3,
14597
-                OPC_CheckPredicate, 21,
14597
+                OPC_CheckPredicate, 19,
14598 14598
                 OPC_CheckType, MVT::v16i8,
14599 14599
                 OPC_MoveParent,
14600 14600
                 OPC_MoveParent,
... ...
@@ -14650,7 +16606,7 @@ SDNode *SelectCode(SDNode *N) {
14650 14650
                 OPC_RecordChild1,
14651 14651
                 OPC_CheckPredicate, 2,
14652 14652
                 OPC_CheckPredicate, 3,
14653
-                OPC_CheckPredicate, 21,
14653
+                OPC_CheckPredicate, 19,
14654 14654
                 OPC_CheckType, MVT::v16i8,
14655 14655
                 OPC_MoveParent,
14656 14656
                 OPC_MoveParent,
... ...
@@ -14706,7 +16662,7 @@ SDNode *SelectCode(SDNode *N) {
14706 14706
                 OPC_RecordChild1,
14707 14707
                 OPC_CheckPredicate, 2,
14708 14708
                 OPC_CheckPredicate, 3,
14709
-                OPC_CheckPredicate, 21,
14709
+                OPC_CheckPredicate, 19,
14710 14710
                 OPC_CheckType, MVT::v32i8,
14711 14711
                 OPC_MoveParent,
14712 14712
                 OPC_MoveParent,
... ...
@@ -14746,7 +16702,7 @@ SDNode *SelectCode(SDNode *N) {
14746 14746
                 OPC_RecordChild1,
14747 14747
                 OPC_CheckPredicate, 2,
14748 14748
                 OPC_CheckPredicate, 3,
14749
-                OPC_CheckPredicate, 21,
14749
+                OPC_CheckPredicate, 19,
14750 14750
                 OPC_CheckType, MVT::v32i8,
14751 14751
                 OPC_MoveParent,
14752 14752
                 OPC_MoveParent,
... ...
@@ -14786,7 +16742,7 @@ SDNode *SelectCode(SDNode *N) {
14786 14786
                 OPC_RecordChild1,
14787 14787
                 OPC_CheckPredicate, 2,
14788 14788
                 OPC_CheckPredicate, 3,
14789
-                OPC_CheckPredicate, 21,
14789
+                OPC_CheckPredicate, 19,
14790 14790
                 OPC_CheckType, MVT::v16i8,
14791 14791
                 OPC_MoveParent,
14792 14792
                 OPC_MoveParent,
... ...
@@ -14820,7 +16776,7 @@ SDNode *SelectCode(SDNode *N) {
14820 14820
                 OPC_RecordChild1,
14821 14821
                 OPC_CheckPredicate, 2,
14822 14822
                 OPC_CheckPredicate, 3,
14823
-                OPC_CheckPredicate, 21,
14823
+                OPC_CheckPredicate, 19,
14824 14824
                 OPC_CheckType, MVT::v16i8,
14825 14825
                 OPC_MoveParent,
14826 14826
                 OPC_MoveParent,
... ...
@@ -14878,7 +16834,7 @@ SDNode *SelectCode(SDNode *N) {
14878 14878
                 OPC_RecordChild1,
14879 14879
                 OPC_CheckPredicate, 2,
14880 14880
                 OPC_CheckPredicate, 3,
14881
-                OPC_CheckPredicate, 21,
14881
+                OPC_CheckPredicate, 19,
14882 14882
                 OPC_CheckType, MVT::v16i8,
14883 14883
                 OPC_MoveParent,
14884 14884
                 OPC_MoveParent,
... ...
@@ -14912,7 +16868,7 @@ SDNode *SelectCode(SDNode *N) {
14912 14912
                 OPC_RecordChild1,
14913 14913
                 OPC_CheckPredicate, 2,
14914 14914
                 OPC_CheckPredicate, 3,
14915
-                OPC_CheckPredicate, 21,
14915
+                OPC_CheckPredicate, 19,
14916 14916
                 OPC_CheckType, MVT::v16i8,
14917 14917
                 OPC_MoveParent,
14918 14918
                 OPC_MoveParent,
... ...
@@ -14970,7 +16926,7 @@ SDNode *SelectCode(SDNode *N) {
14970 14970
                 OPC_RecordChild1,
14971 14971
                 OPC_CheckPredicate, 2,
14972 14972
                 OPC_CheckPredicate, 3,
14973
-                OPC_CheckPredicate, 21,
14973
+                OPC_CheckPredicate, 19,
14974 14974
                 OPC_CheckType, MVT::v32i8,
14975 14975
                 OPC_MoveParent,
14976 14976
                 OPC_MoveParent,
... ...
@@ -15009,7 +16965,7 @@ SDNode *SelectCode(SDNode *N) {
15009 15009
                 OPC_RecordChild1,
15010 15010
                 OPC_CheckPredicate, 2,
15011 15011
                 OPC_CheckPredicate, 3,
15012
-                OPC_CheckPredicate, 21,
15012
+                OPC_CheckPredicate, 19,
15013 15013
                 OPC_CheckType, MVT::v2i64,
15014 15014
                 OPC_MoveParent,
15015 15015
                 OPC_MoveParent,
... ...
@@ -15052,7 +17008,7 @@ SDNode *SelectCode(SDNode *N) {
15052 15052
                 OPC_RecordChild1,
15053 15053
                 OPC_CheckPredicate, 2,
15054 15054
                 OPC_CheckPredicate, 3,
15055
-                OPC_CheckPredicate, 21,
15055
+                OPC_CheckPredicate, 19,
15056 15056
                 OPC_CheckType, MVT::v2i64,
15057 15057
                 OPC_MoveParent,
15058 15058
                 OPC_MoveParent,
... ...
@@ -15196,7 +17152,7 @@ SDNode *SelectCode(SDNode *N) {
15196 15196
                 OPC_RecordChild1,
15197 15197
                 OPC_CheckPredicate, 2,
15198 15198
                 OPC_CheckPredicate, 3,
15199
-                OPC_CheckPredicate, 21,
15199
+                OPC_CheckPredicate, 19,
15200 15200
                 OPC_MoveParent,
15201 15201
                 OPC_RecordChild3,
15202 15202
                 OPC_MoveChild, 3,
... ...
@@ -15248,7 +17204,7 @@ SDNode *SelectCode(SDNode *N) {
15248 15248
                 OPC_RecordChild1,
15249 15249
                 OPC_CheckPredicate, 2,
15250 15250
                 OPC_CheckPredicate, 3,
15251
-                OPC_CheckPredicate, 21,
15251
+                OPC_CheckPredicate, 19,
15252 15252
                 OPC_MoveParent,
15253 15253
                 OPC_RecordChild3,
15254 15254
                 OPC_MoveChild, 3,
... ...
@@ -15300,7 +17256,7 @@ SDNode *SelectCode(SDNode *N) {
15300 15300
                 OPC_RecordChild1,
15301 15301
                 OPC_CheckPredicate, 2,
15302 15302
                 OPC_CheckPredicate, 3,
15303
-                OPC_CheckPredicate, 21,
15303
+                OPC_CheckPredicate, 19,
15304 15304
                 OPC_MoveParent,
15305 15305
                 OPC_RecordChild3,
15306 15306
                 OPC_MoveChild, 3,
... ...
@@ -15336,7 +17292,7 @@ SDNode *SelectCode(SDNode *N) {
15336 15336
                 OPC_RecordChild1,
15337 15337
                 OPC_CheckPredicate, 2,
15338 15338
                 OPC_CheckPredicate, 3,
15339
-                OPC_CheckPredicate, 21,
15339
+                OPC_CheckPredicate, 19,
15340 15340
                 OPC_MoveParent,
15341 15341
                 OPC_RecordChild3,
15342 15342
                 OPC_MoveChild, 3,
... ...
@@ -15371,7 +17327,7 @@ SDNode *SelectCode(SDNode *N) {
15371 15371
                 OPC_RecordChild1,
15372 15372
                 OPC_CheckPredicate, 2,
15373 15373
                 OPC_CheckPredicate, 3,
15374
-                OPC_CheckPredicate, 21,
15374
+                OPC_CheckPredicate, 19,
15375 15375
                 OPC_MoveParent,
15376 15376
                 OPC_RecordChild2,
15377 15377
                 OPC_MoveChild, 2,
... ...
@@ -15422,7 +17378,7 @@ SDNode *SelectCode(SDNode *N) {
15422 15422
                 OPC_RecordChild1,
15423 15423
                 OPC_CheckPredicate, 2,
15424 15424
                 OPC_CheckPredicate, 3,
15425
-                OPC_CheckPredicate, 21,
15425
+                OPC_CheckPredicate, 19,
15426 15426
                 OPC_MoveParent,
15427 15427
                 OPC_RecordChild2,
15428 15428
                 OPC_MoveChild, 2,
... ...
@@ -15473,7 +17429,7 @@ SDNode *SelectCode(SDNode *N) {
15473 15473
                 OPC_RecordChild1,
15474 15474
                 OPC_CheckPredicate, 2,
15475 15475
                 OPC_CheckPredicate, 3,
15476
-                OPC_CheckPredicate, 21,
15476
+                OPC_CheckPredicate, 19,
15477 15477
                 OPC_MoveParent,
15478 15478
                 OPC_RecordChild2,
15479 15479
                 OPC_MoveChild, 2,
... ...
@@ -15508,7 +17464,7 @@ SDNode *SelectCode(SDNode *N) {
15508 15508
                 OPC_RecordChild1,
15509 15509
                 OPC_CheckPredicate, 2,
15510 15510
                 OPC_CheckPredicate, 3,
15511
-                OPC_CheckPredicate, 21,
15511
+                OPC_CheckPredicate, 19,
15512 15512
                 OPC_MoveParent,
15513 15513
                 OPC_RecordChild2,
15514 15514
                 OPC_MoveChild, 2,
... ...
@@ -15546,7 +17502,7 @@ SDNode *SelectCode(SDNode *N) {
15546 15546
                 OPC_RecordChild1,
15547 15547
                 OPC_CheckPredicate, 2,
15548 15548
                 OPC_CheckPredicate, 3,
15549
-                OPC_CheckPredicate, 21,
15549
+                OPC_CheckPredicate, 19,
15550 15550
                 OPC_CheckType, MVT::v16i8,
15551 15551
                 OPC_MoveParent,
15552 15552
                 OPC_MoveParent,
... ...
@@ -15594,7 +17550,7 @@ SDNode *SelectCode(SDNode *N) {
15594 15594
                 OPC_RecordChild1,
15595 15595
                 OPC_CheckPredicate, 2,
15596 15596
                 OPC_CheckPredicate, 3,
15597
-                OPC_CheckPredicate, 21,
15597
+                OPC_CheckPredicate, 19,
15598 15598
                 OPC_CheckType, MVT::v16i8,
15599 15599
                 OPC_MoveParent,
15600 15600
                 OPC_MoveParent,
... ...
@@ -15642,7 +17598,7 @@ SDNode *SelectCode(SDNode *N) {
15642 15642
                 OPC_RecordChild1,
15643 15643
                 OPC_CheckPredicate, 2,
15644 15644
                 OPC_CheckPredicate, 3,
15645
-                OPC_CheckPredicate, 21,
15645
+                OPC_CheckPredicate, 19,
15646 15646
                 OPC_CheckType, MVT::v32i8,
15647 15647
                 OPC_MoveParent,
15648 15648
                 OPC_MoveParent,
... ...
@@ -15674,7 +17630,7 @@ SDNode *SelectCode(SDNode *N) {
15674 15674
                 OPC_RecordChild1,
15675 15675
                 OPC_CheckPredicate, 2,
15676 15676
                 OPC_CheckPredicate, 3,
15677
-                OPC_CheckPredicate, 21,
15677
+                OPC_CheckPredicate, 19,
15678 15678
                 OPC_CheckType, MVT::v32i8,
15679 15679
                 OPC_MoveParent,
15680 15680
                 OPC_MoveParent,
... ...
@@ -15703,7 +17659,7 @@ SDNode *SelectCode(SDNode *N) {
15703 15703
                 OPC_RecordChild1,
15704 15704
                 OPC_CheckPredicate, 2,
15705 15705
                 OPC_CheckPredicate, 3,
15706
-                OPC_CheckPredicate, 21,
15706
+                OPC_CheckPredicate, 19,
15707 15707
                 OPC_MoveParent,
15708 15708
                 OPC_RecordChild2,
15709 15709
                 OPC_MoveChild, 2,
... ...
@@ -15738,7 +17694,7 @@ SDNode *SelectCode(SDNode *N) {
15738 15738
                 OPC_RecordChild1,
15739 15739
                 OPC_CheckPredicate, 2,
15740 15740
                 OPC_CheckPredicate, 3,
15741
-                OPC_CheckPredicate, 21,
15741
+                OPC_CheckPredicate, 19,
15742 15742
                 OPC_MoveParent,
15743 15743
                 OPC_RecordChild2,
15744 15744
                 OPC_MoveChild, 2,
... ...
@@ -15773,7 +17729,7 @@ SDNode *SelectCode(SDNode *N) {
15773 15773
                 OPC_RecordChild1,
15774 15774
                 OPC_CheckPredicate, 2,
15775 15775
                 OPC_CheckPredicate, 3,
15776
-                OPC_CheckPredicate, 21,
15776
+                OPC_CheckPredicate, 19,
15777 15777
                 OPC_MoveParent,
15778 15778
                 OPC_RecordChild2,
15779 15779
                 OPC_MoveChild, 2,
... ...
@@ -15808,7 +17764,7 @@ SDNode *SelectCode(SDNode *N) {
15808 15808
                 OPC_RecordChild1,
15809 15809
                 OPC_CheckPredicate, 2,
15810 15810
                 OPC_CheckPredicate, 3,
15811
-                OPC_CheckPredicate, 21,
15811
+                OPC_CheckPredicate, 19,
15812 15812
                 OPC_MoveParent,
15813 15813
                 OPC_RecordChild2,
15814 15814
                 OPC_MoveChild, 2,
... ...
@@ -15844,7 +17800,7 @@ SDNode *SelectCode(SDNode *N) {
15844 15844
                 OPC_RecordChild1,
15845 15845
                 OPC_CheckPredicate, 2,
15846 15846
                 OPC_CheckPredicate, 3,
15847
-                OPC_CheckPredicate, 21,
15847
+                OPC_CheckPredicate, 19,
15848 15848
                 OPC_MoveParent,
15849 15849
                 OPC_RecordChild3,
15850 15850
                 OPC_MoveChild, 3,
... ...
@@ -15878,7 +17834,7 @@ SDNode *SelectCode(SDNode *N) {
15878 15878
                 OPC_RecordChild1,
15879 15879
                 OPC_CheckPredicate, 2,
15880 15880
                 OPC_CheckPredicate, 3,
15881
-                OPC_CheckPredicate, 21,
15881
+                OPC_CheckPredicate, 19,
15882 15882
                 OPC_MoveParent,
15883 15883
                 OPC_RecordChild3,
15884 15884
                 OPC_MoveChild, 3,
... ...
@@ -16234,7 +18190,7 @@ SDNode *SelectCode(SDNode *N) {
16234 16234
                 OPC_RecordChild1,
16235 16235
                 OPC_CheckPredicate, 2,
16236 16236
                 OPC_CheckPredicate, 3,
16237
-                OPC_CheckPredicate, 21,
16237
+                OPC_CheckPredicate, 19,
16238 16238
                 OPC_MoveParent,
16239 16239
                 OPC_Scope, 18, 
16240 16240
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16273,7 +18229,7 @@ SDNode *SelectCode(SDNode *N) {
16273 16273
                 OPC_RecordChild1,
16274 16274
                 OPC_CheckPredicate, 2,
16275 16275
                 OPC_CheckPredicate, 3,
16276
-                OPC_CheckPredicate, 21,
16276
+                OPC_CheckPredicate, 19,
16277 16277
                 OPC_MoveParent,
16278 16278
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
16279 16279
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -16296,7 +18252,7 @@ SDNode *SelectCode(SDNode *N) {
16296 16296
                 OPC_RecordChild1,
16297 16297
                 OPC_CheckPredicate, 2,
16298 16298
                 OPC_CheckPredicate, 3,
16299
-                OPC_CheckPredicate, 21,
16299
+                OPC_CheckPredicate, 19,
16300 16300
                 OPC_MoveParent,
16301 16301
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
16302 16302
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -16319,7 +18275,7 @@ SDNode *SelectCode(SDNode *N) {
16319 16319
                 OPC_RecordChild1,
16320 16320
                 OPC_CheckPredicate, 2,
16321 16321
                 OPC_CheckPredicate, 3,
16322
-                OPC_CheckPredicate, 21,
16322
+                OPC_CheckPredicate, 19,
16323 16323
                 OPC_MoveParent,
16324 16324
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
16325 16325
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -16343,7 +18299,7 @@ SDNode *SelectCode(SDNode *N) {
16343 16343
                 OPC_RecordChild1,
16344 16344
                 OPC_CheckPredicate, 2,
16345 16345
                 OPC_CheckPredicate, 3,
16346
-                OPC_CheckPredicate, 21,
16346
+                OPC_CheckPredicate, 19,
16347 16347
                 OPC_MoveParent,
16348 16348
                 OPC_Scope, 19, 
16349 16349
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16383,7 +18339,7 @@ SDNode *SelectCode(SDNode *N) {
16383 16383
                 OPC_RecordChild1,
16384 16384
                 OPC_CheckPredicate, 2,
16385 16385
                 OPC_CheckPredicate, 3,
16386
-                OPC_CheckPredicate, 21,
16386
+                OPC_CheckPredicate, 19,
16387 16387
                 OPC_MoveParent,
16388 16388
                 OPC_Scope, 19, 
16389 16389
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16423,7 +18379,7 @@ SDNode *SelectCode(SDNode *N) {
16423 16423
                 OPC_RecordChild1,
16424 16424
                 OPC_CheckPredicate, 2,
16425 16425
                 OPC_CheckPredicate, 3,
16426
-                OPC_CheckPredicate, 21,
16426
+                OPC_CheckPredicate, 19,
16427 16427
                 OPC_MoveParent,
16428 16428
                 OPC_CheckPatternPredicate, 0,
16429 16429
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -16449,7 +18405,7 @@ SDNode *SelectCode(SDNode *N) {
16449 16449
                 OPC_RecordChild1,
16450 16450
                 OPC_CheckPredicate, 2,
16451 16451
                 OPC_CheckPredicate, 3,
16452
-                OPC_CheckPredicate, 21,
16452
+                OPC_CheckPredicate, 19,
16453 16453
                 OPC_MoveParent,
16454 16454
                 OPC_CheckPatternPredicate, 0,
16455 16455
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -16475,7 +18431,7 @@ SDNode *SelectCode(SDNode *N) {
16475 16475
                 OPC_RecordChild1,
16476 16476
                 OPC_CheckPredicate, 2,
16477 16477
                 OPC_CheckPredicate, 3,
16478
-                OPC_CheckPredicate, 21,
16478
+                OPC_CheckPredicate, 19,
16479 16479
                 OPC_MoveParent,
16480 16480
                 OPC_Scope, 19, 
16481 16481
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16515,7 +18471,7 @@ SDNode *SelectCode(SDNode *N) {
16515 16515
                 OPC_RecordChild1,
16516 16516
                 OPC_CheckPredicate, 2,
16517 16517
                 OPC_CheckPredicate, 3,
16518
-                OPC_CheckPredicate, 21,
16518
+                OPC_CheckPredicate, 19,
16519 16519
                 OPC_MoveParent,
16520 16520
                 OPC_Scope, 19, 
16521 16521
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16555,7 +18511,7 @@ SDNode *SelectCode(SDNode *N) {
16555 16555
                 OPC_RecordChild1,
16556 16556
                 OPC_CheckPredicate, 2,
16557 16557
                 OPC_CheckPredicate, 3,
16558
-                OPC_CheckPredicate, 21,
16558
+                OPC_CheckPredicate, 19,
16559 16559
                 OPC_MoveParent,
16560 16560
                 OPC_CheckPatternPredicate, 0,
16561 16561
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -16581,7 +18537,7 @@ SDNode *SelectCode(SDNode *N) {
16581 16581
                 OPC_RecordChild1,
16582 16582
                 OPC_CheckPredicate, 2,
16583 16583
                 OPC_CheckPredicate, 3,
16584
-                OPC_CheckPredicate, 21,
16584
+                OPC_CheckPredicate, 19,
16585 16585
                 OPC_MoveParent,
16586 16586
                 OPC_CheckPatternPredicate, 0,
16587 16587
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -16606,7 +18562,7 @@ SDNode *SelectCode(SDNode *N) {
16606 16606
                 OPC_RecordChild1,
16607 16607
                 OPC_CheckPredicate, 2,
16608 16608
                 OPC_CheckPredicate, 3,
16609
-                OPC_CheckPredicate, 21,
16609
+                OPC_CheckPredicate, 19,
16610 16610
                 OPC_MoveParent,
16611 16611
                 OPC_Scope, 18, 
16612 16612
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16645,7 +18601,7 @@ SDNode *SelectCode(SDNode *N) {
16645 16645
                 OPC_RecordChild1,
16646 16646
                 OPC_CheckPredicate, 2,
16647 16647
                 OPC_CheckPredicate, 3,
16648
-                OPC_CheckPredicate, 21,
16648
+                OPC_CheckPredicate, 19,
16649 16649
                 OPC_MoveParent,
16650 16650
                 OPC_Scope, 18, 
16651 16651
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16684,7 +18640,7 @@ SDNode *SelectCode(SDNode *N) {
16684 16684
                 OPC_RecordChild1,
16685 16685
                 OPC_CheckPredicate, 2,
16686 16686
                 OPC_CheckPredicate, 3,
16687
-                OPC_CheckPredicate, 21,
16687
+                OPC_CheckPredicate, 19,
16688 16688
                 OPC_MoveParent,
16689 16689
                 OPC_CheckPatternPredicate, 0,
16690 16690
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
... ...
@@ -16709,7 +18665,7 @@ SDNode *SelectCode(SDNode *N) {
16709 16709
                 OPC_RecordChild1,
16710 16710
                 OPC_CheckPredicate, 2,
16711 16711
                 OPC_CheckPredicate, 3,
16712
-                OPC_CheckPredicate, 21,
16712
+                OPC_CheckPredicate, 19,
16713 16713
                 OPC_MoveParent,
16714 16714
                 OPC_CheckPatternPredicate, 0,
16715 16715
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
... ...
@@ -16734,7 +18690,7 @@ SDNode *SelectCode(SDNode *N) {
16734 16734
                 OPC_RecordChild1,
16735 16735
                 OPC_CheckPredicate, 2,
16736 16736
                 OPC_CheckPredicate, 3,
16737
-                OPC_CheckPredicate, 21,
16737
+                OPC_CheckPredicate, 19,
16738 16738
                 OPC_MoveParent,
16739 16739
                 OPC_CheckPatternPredicate, 0,
16740 16740
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
... ...
@@ -16759,7 +18715,7 @@ SDNode *SelectCode(SDNode *N) {
16759 16759
                 OPC_RecordChild1,
16760 16760
                 OPC_CheckPredicate, 2,
16761 16761
                 OPC_CheckPredicate, 3,
16762
-                OPC_CheckPredicate, 21,
16762
+                OPC_CheckPredicate, 19,
16763 16763
                 OPC_MoveParent,
16764 16764
                 OPC_Scope, 18, 
16765 16765
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16798,7 +18754,7 @@ SDNode *SelectCode(SDNode *N) {
16798 16798
                 OPC_RecordChild1,
16799 16799
                 OPC_CheckPredicate, 2,
16800 16800
                 OPC_CheckPredicate, 3,
16801
-                OPC_CheckPredicate, 21,
16801
+                OPC_CheckPredicate, 19,
16802 16802
                 OPC_MoveParent,
16803 16803
                 OPC_CheckPatternPredicate, 0,
16804 16804
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
... ...
@@ -16823,7 +18779,7 @@ SDNode *SelectCode(SDNode *N) {
16823 16823
                 OPC_RecordChild1,
16824 16824
                 OPC_CheckPredicate, 2,
16825 16825
                 OPC_CheckPredicate, 3,
16826
-                OPC_CheckPredicate, 21,
16826
+                OPC_CheckPredicate, 19,
16827 16827
                 OPC_MoveParent,
16828 16828
                 OPC_Scope, 18, 
16829 16829
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16862,7 +18818,7 @@ SDNode *SelectCode(SDNode *N) {
16862 16862
                 OPC_RecordChild1,
16863 16863
                 OPC_CheckPredicate, 2,
16864 16864
                 OPC_CheckPredicate, 3,
16865
-                OPC_CheckPredicate, 21,
16865
+                OPC_CheckPredicate, 19,
16866 16866
                 OPC_MoveParent,
16867 16867
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
16868 16868
                 OPC_EmitMergeInputChains1_0,
... ...
@@ -16886,7 +18842,7 @@ SDNode *SelectCode(SDNode *N) {
16886 16886
                 OPC_RecordChild1,
16887 16887
                 OPC_CheckPredicate, 2,
16888 16888
                 OPC_CheckPredicate, 3,
16889
-                OPC_CheckPredicate, 21,
16889
+                OPC_CheckPredicate, 19,
16890 16890
                 OPC_MoveParent,
16891 16891
                 OPC_Scope, 19, 
16892 16892
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16895,7 +18851,7 @@ SDNode *SelectCode(SDNode *N) {
16895 16895
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
16896 16896
                       1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
16897 16897
                 19, 
16898
-                  OPC_CheckPatternPredicate, 14,
16898
+                  OPC_CheckPatternPredicate, 10,
16899 16899
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
16900 16900
                   OPC_EmitMergeInputChains1_1,
16901 16901
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -16908,7 +18864,7 @@ SDNode *SelectCode(SDNode *N) {
16908 16908
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPSrr), 0,
16909 16909
                       1, MVT::v4f32, 2, 0, 1, 
16910 16910
                 11, 
16911
-                  OPC_CheckPatternPredicate, 14,
16911
+                  OPC_CheckPatternPredicate, 10,
16912 16912
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPSrr), 0,
16913 16913
                       1, MVT::v4f32, 2, 0, 1, 
16914 16914
                 0, 
... ...
@@ -16926,7 +18882,7 @@ SDNode *SelectCode(SDNode *N) {
16926 16926
                 OPC_RecordChild1,
16927 16927
                 OPC_CheckPredicate, 2,
16928 16928
                 OPC_CheckPredicate, 3,
16929
-                OPC_CheckPredicate, 21,
16929
+                OPC_CheckPredicate, 19,
16930 16930
                 OPC_MoveParent,
16931 16931
                 OPC_Scope, 19, 
16932 16932
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -16935,7 +18891,7 @@ SDNode *SelectCode(SDNode *N) {
16935 16935
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
16936 16936
                       1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
16937 16937
                 19, 
16938
-                  OPC_CheckPatternPredicate, 14,
16938
+                  OPC_CheckPatternPredicate, 10,
16939 16939
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
16940 16940
                   OPC_EmitMergeInputChains1_1,
16941 16941
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -16948,7 +18904,7 @@ SDNode *SelectCode(SDNode *N) {
16948 16948
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPDrr), 0,
16949 16949
                       1, MVT::v2f64, 2, 0, 1, 
16950 16950
                 11, 
16951
-                  OPC_CheckPatternPredicate, 14,
16951
+                  OPC_CheckPatternPredicate, 10,
16952 16952
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPDrr), 0,
16953 16953
                       1, MVT::v2f64, 2, 0, 1, 
16954 16954
                 0, 
... ...
@@ -16966,7 +18922,7 @@ SDNode *SelectCode(SDNode *N) {
16966 16966
                 OPC_RecordChild1,
16967 16967
                 OPC_CheckPredicate, 2,
16968 16968
                 OPC_CheckPredicate, 3,
16969
-                OPC_CheckPredicate, 21,
16969
+                OPC_CheckPredicate, 19,
16970 16970
                 OPC_MoveParent,
16971 16971
                 OPC_CheckPatternPredicate, 0,
16972 16972
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -16992,7 +18948,7 @@ SDNode *SelectCode(SDNode *N) {
16992 16992
                 OPC_RecordChild1,
16993 16993
                 OPC_CheckPredicate, 2,
16994 16994
                 OPC_CheckPredicate, 3,
16995
-                OPC_CheckPredicate, 21,
16995
+                OPC_CheckPredicate, 19,
16996 16996
                 OPC_MoveParent,
16997 16997
                 OPC_CheckPatternPredicate, 0,
16998 16998
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17018,7 +18974,7 @@ SDNode *SelectCode(SDNode *N) {
17018 17018
                 OPC_RecordChild1,
17019 17019
                 OPC_CheckPredicate, 2,
17020 17020
                 OPC_CheckPredicate, 3,
17021
-                OPC_CheckPredicate, 21,
17021
+                OPC_CheckPredicate, 19,
17022 17022
                 OPC_MoveParent,
17023 17023
                 OPC_Scope, 19, 
17024 17024
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -17027,7 +18983,7 @@ SDNode *SelectCode(SDNode *N) {
17027 17027
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
17028 17028
                       1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
17029 17029
                 19, 
17030
-                  OPC_CheckPatternPredicate, 14,
17030
+                  OPC_CheckPatternPredicate, 10,
17031 17031
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17032 17032
                   OPC_EmitMergeInputChains1_1,
17033 17033
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -17040,7 +18996,7 @@ SDNode *SelectCode(SDNode *N) {
17040 17040
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPSrr), 0,
17041 17041
                       1, MVT::v4f32, 2, 0, 1, 
17042 17042
                 11, 
17043
-                  OPC_CheckPatternPredicate, 14,
17043
+                  OPC_CheckPatternPredicate, 10,
17044 17044
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPSrr), 0,
17045 17045
                       1, MVT::v4f32, 2, 0, 1, 
17046 17046
                 0, 
... ...
@@ -17058,7 +19014,7 @@ SDNode *SelectCode(SDNode *N) {
17058 17058
                 OPC_RecordChild1,
17059 17059
                 OPC_CheckPredicate, 2,
17060 17060
                 OPC_CheckPredicate, 3,
17061
-                OPC_CheckPredicate, 21,
17061
+                OPC_CheckPredicate, 19,
17062 17062
                 OPC_MoveParent,
17063 17063
                 OPC_Scope, 19, 
17064 17064
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -17067,7 +19023,7 @@ SDNode *SelectCode(SDNode *N) {
17067 17067
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
17068 17068
                       1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
17069 17069
                 19, 
17070
-                  OPC_CheckPatternPredicate, 14,
17070
+                  OPC_CheckPatternPredicate, 10,
17071 17071
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17072 17072
                   OPC_EmitMergeInputChains1_1,
17073 17073
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -17080,7 +19036,7 @@ SDNode *SelectCode(SDNode *N) {
17080 17080
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPDrr), 0,
17081 17081
                       1, MVT::v2f64, 2, 0, 1, 
17082 17082
                 11, 
17083
-                  OPC_CheckPatternPredicate, 14,
17083
+                  OPC_CheckPatternPredicate, 10,
17084 17084
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPDrr), 0,
17085 17085
                       1, MVT::v2f64, 2, 0, 1, 
17086 17086
                 0, 
... ...
@@ -17098,7 +19054,7 @@ SDNode *SelectCode(SDNode *N) {
17098 17098
                 OPC_RecordChild1,
17099 17099
                 OPC_CheckPredicate, 2,
17100 17100
                 OPC_CheckPredicate, 3,
17101
-                OPC_CheckPredicate, 21,
17101
+                OPC_CheckPredicate, 19,
17102 17102
                 OPC_MoveParent,
17103 17103
                 OPC_Scope, 19, 
17104 17104
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -17107,7 +19063,7 @@ SDNode *SelectCode(SDNode *N) {
17107 17107
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
17108 17108
                       1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
17109 17109
                 19, 
17110
-                  OPC_CheckPatternPredicate, 14,
17110
+                  OPC_CheckPatternPredicate, 10,
17111 17111
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17112 17112
                   OPC_EmitMergeInputChains1_1,
17113 17113
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -17120,7 +19076,7 @@ SDNode *SelectCode(SDNode *N) {
17120 17120
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPSrr), 0,
17121 17121
                       1, MVT::v4f32, 2, 0, 1, 
17122 17122
                 11, 
17123
-                  OPC_CheckPatternPredicate, 14,
17123
+                  OPC_CheckPatternPredicate, 10,
17124 17124
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPSrr), 0,
17125 17125
                       1, MVT::v4f32, 2, 0, 1, 
17126 17126
                 0, 
... ...
@@ -17138,7 +19094,7 @@ SDNode *SelectCode(SDNode *N) {
17138 17138
                 OPC_RecordChild1,
17139 17139
                 OPC_CheckPredicate, 2,
17140 17140
                 OPC_CheckPredicate, 3,
17141
-                OPC_CheckPredicate, 21,
17141
+                OPC_CheckPredicate, 19,
17142 17142
                 OPC_MoveParent,
17143 17143
                 OPC_Scope, 19, 
17144 17144
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -17147,7 +19103,7 @@ SDNode *SelectCode(SDNode *N) {
17147 17147
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
17148 17148
                       1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
17149 17149
                 19, 
17150
-                  OPC_CheckPatternPredicate, 14,
17150
+                  OPC_CheckPatternPredicate, 10,
17151 17151
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17152 17152
                   OPC_EmitMergeInputChains1_1,
17153 17153
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -17160,7 +19116,7 @@ SDNode *SelectCode(SDNode *N) {
17160 17160
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPDrr), 0,
17161 17161
                       1, MVT::v2f64, 2, 0, 1, 
17162 17162
                 11, 
17163
-                  OPC_CheckPatternPredicate, 14,
17163
+                  OPC_CheckPatternPredicate, 10,
17164 17164
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPDrr), 0,
17165 17165
                       1, MVT::v2f64, 2, 0, 1, 
17166 17166
                 0, 
... ...
@@ -17178,7 +19134,7 @@ SDNode *SelectCode(SDNode *N) {
17178 17178
                 OPC_RecordChild1,
17179 17179
                 OPC_CheckPredicate, 2,
17180 17180
                 OPC_CheckPredicate, 3,
17181
-                OPC_CheckPredicate, 21,
17181
+                OPC_CheckPredicate, 19,
17182 17182
                 OPC_MoveParent,
17183 17183
                 OPC_CheckPatternPredicate, 0,
17184 17184
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17204,7 +19160,7 @@ SDNode *SelectCode(SDNode *N) {
17204 17204
                 OPC_RecordChild1,
17205 17205
                 OPC_CheckPredicate, 2,
17206 17206
                 OPC_CheckPredicate, 3,
17207
-                OPC_CheckPredicate, 21,
17207
+                OPC_CheckPredicate, 19,
17208 17208
                 OPC_MoveParent,
17209 17209
                 OPC_CheckPatternPredicate, 0,
17210 17210
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17230,7 +19186,7 @@ SDNode *SelectCode(SDNode *N) {
17230 17230
                 OPC_RecordChild1,
17231 17231
                 OPC_CheckPredicate, 2,
17232 17232
                 OPC_CheckPredicate, 3,
17233
-                OPC_CheckPredicate, 21,
17233
+                OPC_CheckPredicate, 19,
17234 17234
                 OPC_MoveParent,
17235 17235
                 OPC_CheckPatternPredicate, 0,
17236 17236
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17256,7 +19212,7 @@ SDNode *SelectCode(SDNode *N) {
17256 17256
                 OPC_RecordChild1,
17257 17257
                 OPC_CheckPredicate, 2,
17258 17258
                 OPC_CheckPredicate, 3,
17259
-                OPC_CheckPredicate, 21,
17259
+                OPC_CheckPredicate, 19,
17260 17260
                 OPC_MoveParent,
17261 17261
                 OPC_CheckPatternPredicate, 0,
17262 17262
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17282,7 +19238,7 @@ SDNode *SelectCode(SDNode *N) {
17282 17282
                 OPC_RecordChild1,
17283 17283
                 OPC_CheckPredicate, 2,
17284 17284
                 OPC_CheckPredicate, 3,
17285
-                OPC_CheckPredicate, 21,
17285
+                OPC_CheckPredicate, 19,
17286 17286
                 OPC_MoveParent,
17287 17287
                 OPC_CheckPatternPredicate, 0,
17288 17288
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17308,7 +19264,7 @@ SDNode *SelectCode(SDNode *N) {
17308 17308
                 OPC_RecordChild1,
17309 17309
                 OPC_CheckPredicate, 2,
17310 17310
                 OPC_CheckPredicate, 3,
17311
-                OPC_CheckPredicate, 21,
17311
+                OPC_CheckPredicate, 19,
17312 17312
                 OPC_MoveParent,
17313 17313
                 OPC_CheckPatternPredicate, 0,
17314 17314
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17334,7 +19290,7 @@ SDNode *SelectCode(SDNode *N) {
17334 17334
                 OPC_RecordChild1,
17335 17335
                 OPC_CheckPredicate, 2,
17336 17336
                 OPC_CheckPredicate, 3,
17337
-                OPC_CheckPredicate, 21,
17337
+                OPC_CheckPredicate, 19,
17338 17338
                 OPC_MoveParent,
17339 17339
                 OPC_CheckPatternPredicate, 0,
17340 17340
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17360,7 +19316,7 @@ SDNode *SelectCode(SDNode *N) {
17360 17360
                 OPC_RecordChild1,
17361 17361
                 OPC_CheckPredicate, 2,
17362 17362
                 OPC_CheckPredicate, 3,
17363
-                OPC_CheckPredicate, 21,
17363
+                OPC_CheckPredicate, 19,
17364 17364
                 OPC_MoveParent,
17365 17365
                 OPC_CheckPatternPredicate, 0,
17366 17366
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -17938,7 +19894,7 @@ SDNode *SelectCode(SDNode *N) {
17938 17938
                 OPC_MoveParent,
17939 17939
                 OPC_RecordChild3,
17940 17940
                 OPC_CheckType, MVT::i16,
17941
-                OPC_CheckPatternPredicate, 15,
17941
+                OPC_CheckPatternPredicate, 16,
17942 17942
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17943 17943
                 OPC_EmitMergeInputChains1_1,
17944 17944
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -17952,7 +19908,7 @@ SDNode *SelectCode(SDNode *N) {
17952 17952
                 OPC_MoveParent,
17953 17953
                 OPC_RecordChild3,
17954 17954
                 OPC_CheckType, MVT::i32,
17955
-                OPC_CheckPatternPredicate, 15,
17955
+                OPC_CheckPatternPredicate, 16,
17956 17956
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17957 17957
                 OPC_EmitMergeInputChains1_1,
17958 17958
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -17966,7 +19922,7 @@ SDNode *SelectCode(SDNode *N) {
17966 17966
                 OPC_MoveParent,
17967 17967
                 OPC_RecordChild3,
17968 17968
                 OPC_CheckType, MVT::i16,
17969
-                OPC_CheckPatternPredicate, 15,
17969
+                OPC_CheckPatternPredicate, 16,
17970 17970
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17971 17971
                 OPC_EmitMergeInputChains1_1,
17972 17972
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -17980,7 +19936,7 @@ SDNode *SelectCode(SDNode *N) {
17980 17980
                 OPC_MoveParent,
17981 17981
                 OPC_RecordChild3,
17982 17982
                 OPC_CheckType, MVT::i32,
17983
-                OPC_CheckPatternPredicate, 15,
17983
+                OPC_CheckPatternPredicate, 16,
17984 17984
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17985 17985
                 OPC_EmitMergeInputChains1_1,
17986 17986
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -17994,7 +19950,7 @@ SDNode *SelectCode(SDNode *N) {
17994 17994
                 OPC_MoveParent,
17995 17995
                 OPC_RecordChild3,
17996 17996
                 OPC_CheckType, MVT::i16,
17997
-                OPC_CheckPatternPredicate, 15,
17997
+                OPC_CheckPatternPredicate, 16,
17998 17998
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
17999 17999
                 OPC_EmitMergeInputChains1_1,
18000 18000
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18008,7 +19964,7 @@ SDNode *SelectCode(SDNode *N) {
18008 18008
                 OPC_MoveParent,
18009 18009
                 OPC_RecordChild3,
18010 18010
                 OPC_CheckType, MVT::i32,
18011
-                OPC_CheckPatternPredicate, 15,
18011
+                OPC_CheckPatternPredicate, 16,
18012 18012
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18013 18013
                 OPC_EmitMergeInputChains1_1,
18014 18014
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18022,7 +19978,7 @@ SDNode *SelectCode(SDNode *N) {
18022 18022
                 OPC_MoveParent,
18023 18023
                 OPC_RecordChild3,
18024 18024
                 OPC_CheckType, MVT::i16,
18025
-                OPC_CheckPatternPredicate, 15,
18025
+                OPC_CheckPatternPredicate, 16,
18026 18026
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18027 18027
                 OPC_EmitMergeInputChains1_1,
18028 18028
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18036,7 +19992,7 @@ SDNode *SelectCode(SDNode *N) {
18036 18036
                 OPC_MoveParent,
18037 18037
                 OPC_RecordChild3,
18038 18038
                 OPC_CheckType, MVT::i32,
18039
-                OPC_CheckPatternPredicate, 15,
18039
+                OPC_CheckPatternPredicate, 16,
18040 18040
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18041 18041
                 OPC_EmitMergeInputChains1_1,
18042 18042
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18050,7 +20006,7 @@ SDNode *SelectCode(SDNode *N) {
18050 18050
                 OPC_MoveParent,
18051 18051
                 OPC_RecordChild3,
18052 18052
                 OPC_CheckType, MVT::i16,
18053
-                OPC_CheckPatternPredicate, 15,
18053
+                OPC_CheckPatternPredicate, 16,
18054 18054
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18055 18055
                 OPC_EmitMergeInputChains1_1,
18056 18056
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18064,7 +20020,7 @@ SDNode *SelectCode(SDNode *N) {
18064 18064
                 OPC_MoveParent,
18065 18065
                 OPC_RecordChild3,
18066 18066
                 OPC_CheckType, MVT::i32,
18067
-                OPC_CheckPatternPredicate, 15,
18067
+                OPC_CheckPatternPredicate, 16,
18068 18068
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18069 18069
                 OPC_EmitMergeInputChains1_1,
18070 18070
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18078,7 +20034,7 @@ SDNode *SelectCode(SDNode *N) {
18078 18078
                 OPC_MoveParent,
18079 18079
                 OPC_RecordChild3,
18080 18080
                 OPC_CheckType, MVT::i16,
18081
-                OPC_CheckPatternPredicate, 15,
18081
+                OPC_CheckPatternPredicate, 16,
18082 18082
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18083 18083
                 OPC_EmitMergeInputChains1_1,
18084 18084
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18092,7 +20048,7 @@ SDNode *SelectCode(SDNode *N) {
18092 18092
                 OPC_MoveParent,
18093 18093
                 OPC_RecordChild3,
18094 18094
                 OPC_CheckType, MVT::i32,
18095
-                OPC_CheckPatternPredicate, 15,
18095
+                OPC_CheckPatternPredicate, 16,
18096 18096
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18097 18097
                 OPC_EmitMergeInputChains1_1,
18098 18098
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18106,7 +20062,7 @@ SDNode *SelectCode(SDNode *N) {
18106 18106
                 OPC_MoveParent,
18107 18107
                 OPC_RecordChild3,
18108 18108
                 OPC_CheckType, MVT::i16,
18109
-                OPC_CheckPatternPredicate, 15,
18109
+                OPC_CheckPatternPredicate, 16,
18110 18110
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18111 18111
                 OPC_EmitMergeInputChains1_1,
18112 18112
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18120,7 +20076,7 @@ SDNode *SelectCode(SDNode *N) {
18120 18120
                 OPC_MoveParent,
18121 18121
                 OPC_RecordChild3,
18122 18122
                 OPC_CheckType, MVT::i32,
18123
-                OPC_CheckPatternPredicate, 15,
18123
+                OPC_CheckPatternPredicate, 16,
18124 18124
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18125 18125
                 OPC_EmitMergeInputChains1_1,
18126 18126
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18134,7 +20090,7 @@ SDNode *SelectCode(SDNode *N) {
18134 18134
                 OPC_MoveParent,
18135 18135
                 OPC_RecordChild3,
18136 18136
                 OPC_CheckType, MVT::i16,
18137
-                OPC_CheckPatternPredicate, 15,
18137
+                OPC_CheckPatternPredicate, 16,
18138 18138
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18139 18139
                 OPC_EmitMergeInputChains1_1,
18140 18140
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18148,7 +20104,7 @@ SDNode *SelectCode(SDNode *N) {
18148 18148
                 OPC_MoveParent,
18149 18149
                 OPC_RecordChild3,
18150 18150
                 OPC_CheckType, MVT::i32,
18151
-                OPC_CheckPatternPredicate, 15,
18151
+                OPC_CheckPatternPredicate, 16,
18152 18152
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18153 18153
                 OPC_EmitMergeInputChains1_1,
18154 18154
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18162,7 +20118,7 @@ SDNode *SelectCode(SDNode *N) {
18162 18162
                 OPC_MoveParent,
18163 18163
                 OPC_RecordChild3,
18164 18164
                 OPC_CheckType, MVT::i16,
18165
-                OPC_CheckPatternPredicate, 15,
18165
+                OPC_CheckPatternPredicate, 16,
18166 18166
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18167 18167
                 OPC_EmitMergeInputChains1_1,
18168 18168
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18176,7 +20132,7 @@ SDNode *SelectCode(SDNode *N) {
18176 18176
                 OPC_MoveParent,
18177 18177
                 OPC_RecordChild3,
18178 18178
                 OPC_CheckType, MVT::i32,
18179
-                OPC_CheckPatternPredicate, 15,
18179
+                OPC_CheckPatternPredicate, 16,
18180 18180
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18181 18181
                 OPC_EmitMergeInputChains1_1,
18182 18182
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18190,7 +20146,7 @@ SDNode *SelectCode(SDNode *N) {
18190 18190
                 OPC_MoveParent,
18191 18191
                 OPC_RecordChild3,
18192 18192
                 OPC_CheckType, MVT::i16,
18193
-                OPC_CheckPatternPredicate, 15,
18193
+                OPC_CheckPatternPredicate, 16,
18194 18194
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18195 18195
                 OPC_EmitMergeInputChains1_1,
18196 18196
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18204,7 +20160,7 @@ SDNode *SelectCode(SDNode *N) {
18204 18204
                 OPC_MoveParent,
18205 18205
                 OPC_RecordChild3,
18206 18206
                 OPC_CheckType, MVT::i32,
18207
-                OPC_CheckPatternPredicate, 15,
18207
+                OPC_CheckPatternPredicate, 16,
18208 18208
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18209 18209
                 OPC_EmitMergeInputChains1_1,
18210 18210
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18218,7 +20174,7 @@ SDNode *SelectCode(SDNode *N) {
18218 18218
                 OPC_MoveParent,
18219 18219
                 OPC_RecordChild3,
18220 18220
                 OPC_CheckType, MVT::i16,
18221
-                OPC_CheckPatternPredicate, 15,
18221
+                OPC_CheckPatternPredicate, 16,
18222 18222
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18223 18223
                 OPC_EmitMergeInputChains1_1,
18224 18224
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18232,7 +20188,7 @@ SDNode *SelectCode(SDNode *N) {
18232 18232
                 OPC_MoveParent,
18233 18233
                 OPC_RecordChild3,
18234 18234
                 OPC_CheckType, MVT::i32,
18235
-                OPC_CheckPatternPredicate, 15,
18235
+                OPC_CheckPatternPredicate, 16,
18236 18236
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18237 18237
                 OPC_EmitMergeInputChains1_1,
18238 18238
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18246,7 +20202,7 @@ SDNode *SelectCode(SDNode *N) {
18246 18246
                 OPC_MoveParent,
18247 18247
                 OPC_RecordChild3,
18248 18248
                 OPC_CheckType, MVT::i16,
18249
-                OPC_CheckPatternPredicate, 15,
18249
+                OPC_CheckPatternPredicate, 16,
18250 18250
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18251 18251
                 OPC_EmitMergeInputChains1_1,
18252 18252
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18260,7 +20216,7 @@ SDNode *SelectCode(SDNode *N) {
18260 18260
                 OPC_MoveParent,
18261 18261
                 OPC_RecordChild3,
18262 18262
                 OPC_CheckType, MVT::i32,
18263
-                OPC_CheckPatternPredicate, 15,
18263
+                OPC_CheckPatternPredicate, 16,
18264 18264
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18265 18265
                 OPC_EmitMergeInputChains1_1,
18266 18266
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18274,7 +20230,7 @@ SDNode *SelectCode(SDNode *N) {
18274 18274
                 OPC_MoveParent,
18275 18275
                 OPC_RecordChild3,
18276 18276
                 OPC_CheckType, MVT::i16,
18277
-                OPC_CheckPatternPredicate, 15,
18277
+                OPC_CheckPatternPredicate, 16,
18278 18278
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18279 18279
                 OPC_EmitMergeInputChains1_1,
18280 18280
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18288,7 +20244,7 @@ SDNode *SelectCode(SDNode *N) {
18288 18288
                 OPC_MoveParent,
18289 18289
                 OPC_RecordChild3,
18290 18290
                 OPC_CheckType, MVT::i32,
18291
-                OPC_CheckPatternPredicate, 15,
18291
+                OPC_CheckPatternPredicate, 16,
18292 18292
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18293 18293
                 OPC_EmitMergeInputChains1_1,
18294 18294
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18302,7 +20258,7 @@ SDNode *SelectCode(SDNode *N) {
18302 18302
                 OPC_MoveParent,
18303 18303
                 OPC_RecordChild3,
18304 18304
                 OPC_CheckType, MVT::i16,
18305
-                OPC_CheckPatternPredicate, 15,
18305
+                OPC_CheckPatternPredicate, 16,
18306 18306
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18307 18307
                 OPC_EmitMergeInputChains1_1,
18308 18308
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18316,7 +20272,7 @@ SDNode *SelectCode(SDNode *N) {
18316 18316
                 OPC_MoveParent,
18317 18317
                 OPC_RecordChild3,
18318 18318
                 OPC_CheckType, MVT::i32,
18319
-                OPC_CheckPatternPredicate, 15,
18319
+                OPC_CheckPatternPredicate, 16,
18320 18320
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18321 18321
                 OPC_EmitMergeInputChains1_1,
18322 18322
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18330,7 +20286,7 @@ SDNode *SelectCode(SDNode *N) {
18330 18330
                 OPC_MoveParent,
18331 18331
                 OPC_RecordChild3,
18332 18332
                 OPC_CheckType, MVT::i16,
18333
-                OPC_CheckPatternPredicate, 15,
18333
+                OPC_CheckPatternPredicate, 16,
18334 18334
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18335 18335
                 OPC_EmitMergeInputChains1_1,
18336 18336
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18344,7 +20300,7 @@ SDNode *SelectCode(SDNode *N) {
18344 18344
                 OPC_MoveParent,
18345 18345
                 OPC_RecordChild3,
18346 18346
                 OPC_CheckType, MVT::i32,
18347
-                OPC_CheckPatternPredicate, 15,
18347
+                OPC_CheckPatternPredicate, 16,
18348 18348
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18349 18349
                 OPC_EmitMergeInputChains1_1,
18350 18350
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18358,7 +20314,7 @@ SDNode *SelectCode(SDNode *N) {
18358 18358
                 OPC_MoveParent,
18359 18359
                 OPC_RecordChild3,
18360 18360
                 OPC_CheckType, MVT::i16,
18361
-                OPC_CheckPatternPredicate, 15,
18361
+                OPC_CheckPatternPredicate, 16,
18362 18362
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18363 18363
                 OPC_EmitMergeInputChains1_1,
18364 18364
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -18372,7 +20328,7 @@ SDNode *SelectCode(SDNode *N) {
18372 18372
                 OPC_MoveParent,
18373 18373
                 OPC_RecordChild3,
18374 18374
                 OPC_CheckType, MVT::i32,
18375
-                OPC_CheckPatternPredicate, 15,
18375
+                OPC_CheckPatternPredicate, 16,
18376 18376
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
18377 18377
                 OPC_EmitMergeInputChains1_1,
18378 18378
                 OPC_EmitCopyToReg, 3, X86::EFLAGS,
... ...
@@ -19194,12 +21150,12 @@ SDNode *SelectCode(SDNode *N) {
19194 19194
                   OPC_MoveParent,
19195 19195
                   OPC_RecordChild3,
19196 19196
                   OPC_SwitchType , 14,  MVT::i16,
19197
-                    OPC_CheckPatternPredicate, 15,
19197
+                    OPC_CheckPatternPredicate, 16,
19198 19198
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19199 19199
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB16rr), 0|OPFL_FlagInput,
19200 19200
                         1, MVT::i16, 2, 0, 1, 
19201 19201
                   14,  MVT::i32,
19202
-                    OPC_CheckPatternPredicate, 15,
19202
+                    OPC_CheckPatternPredicate, 16,
19203 19203
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19204 19204
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB32rr), 0|OPFL_FlagInput,
19205 19205
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19213,12 +21169,12 @@ SDNode *SelectCode(SDNode *N) {
19213 19213
                   OPC_MoveParent,
19214 19214
                   OPC_RecordChild3,
19215 19215
                   OPC_SwitchType , 14,  MVT::i16,
19216
-                    OPC_CheckPatternPredicate, 15,
19216
+                    OPC_CheckPatternPredicate, 16,
19217 19217
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19218 19218
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE16rr), 0|OPFL_FlagInput,
19219 19219
                         1, MVT::i16, 2, 0, 1, 
19220 19220
                   14,  MVT::i32,
19221
-                    OPC_CheckPatternPredicate, 15,
19221
+                    OPC_CheckPatternPredicate, 16,
19222 19222
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19223 19223
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE32rr), 0|OPFL_FlagInput,
19224 19224
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19232,12 +21188,12 @@ SDNode *SelectCode(SDNode *N) {
19232 19232
                   OPC_MoveParent,
19233 19233
                   OPC_RecordChild3,
19234 19234
                   OPC_SwitchType , 14,  MVT::i16,
19235
-                    OPC_CheckPatternPredicate, 15,
19235
+                    OPC_CheckPatternPredicate, 16,
19236 19236
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19237 19237
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE16rr), 0|OPFL_FlagInput,
19238 19238
                         1, MVT::i16, 2, 0, 1, 
19239 19239
                   14,  MVT::i32,
19240
-                    OPC_CheckPatternPredicate, 15,
19240
+                    OPC_CheckPatternPredicate, 16,
19241 19241
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19242 19242
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE32rr), 0|OPFL_FlagInput,
19243 19243
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19251,12 +21207,12 @@ SDNode *SelectCode(SDNode *N) {
19251 19251
                   OPC_MoveParent,
19252 19252
                   OPC_RecordChild3,
19253 19253
                   OPC_SwitchType , 14,  MVT::i16,
19254
-                    OPC_CheckPatternPredicate, 15,
19254
+                    OPC_CheckPatternPredicate, 16,
19255 19255
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19256 19256
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE16rr), 0|OPFL_FlagInput,
19257 19257
                         1, MVT::i16, 2, 0, 1, 
19258 19258
                   14,  MVT::i32,
19259
-                    OPC_CheckPatternPredicate, 15,
19259
+                    OPC_CheckPatternPredicate, 16,
19260 19260
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19261 19261
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE32rr), 0|OPFL_FlagInput,
19262 19262
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19270,12 +21226,12 @@ SDNode *SelectCode(SDNode *N) {
19270 19270
                   OPC_MoveParent,
19271 19271
                   OPC_RecordChild3,
19272 19272
                   OPC_SwitchType , 14,  MVT::i16,
19273
-                    OPC_CheckPatternPredicate, 15,
19273
+                    OPC_CheckPatternPredicate, 16,
19274 19274
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19275 19275
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE16rr), 0|OPFL_FlagInput,
19276 19276
                         1, MVT::i16, 2, 0, 1, 
19277 19277
                   14,  MVT::i32,
19278
-                    OPC_CheckPatternPredicate, 15,
19278
+                    OPC_CheckPatternPredicate, 16,
19279 19279
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19280 19280
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE32rr), 0|OPFL_FlagInput,
19281 19281
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19289,12 +21245,12 @@ SDNode *SelectCode(SDNode *N) {
19289 19289
                   OPC_MoveParent,
19290 19290
                   OPC_RecordChild3,
19291 19291
                   OPC_SwitchType , 14,  MVT::i16,
19292
-                    OPC_CheckPatternPredicate, 15,
19292
+                    OPC_CheckPatternPredicate, 16,
19293 19293
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19294 19294
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA16rr), 0|OPFL_FlagInput,
19295 19295
                         1, MVT::i16, 2, 0, 1, 
19296 19296
                   14,  MVT::i32,
19297
-                    OPC_CheckPatternPredicate, 15,
19297
+                    OPC_CheckPatternPredicate, 16,
19298 19298
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19299 19299
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA32rr), 0|OPFL_FlagInput,
19300 19300
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19308,12 +21264,12 @@ SDNode *SelectCode(SDNode *N) {
19308 19308
                   OPC_MoveParent,
19309 19309
                   OPC_RecordChild3,
19310 19310
                   OPC_SwitchType , 14,  MVT::i16,
19311
-                    OPC_CheckPatternPredicate, 15,
19311
+                    OPC_CheckPatternPredicate, 16,
19312 19312
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19313 19313
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL16rr), 0|OPFL_FlagInput,
19314 19314
                         1, MVT::i16, 2, 0, 1, 
19315 19315
                   14,  MVT::i32,
19316
-                    OPC_CheckPatternPredicate, 15,
19316
+                    OPC_CheckPatternPredicate, 16,
19317 19317
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19318 19318
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL32rr), 0|OPFL_FlagInput,
19319 19319
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19327,12 +21283,12 @@ SDNode *SelectCode(SDNode *N) {
19327 19327
                   OPC_MoveParent,
19328 19328
                   OPC_RecordChild3,
19329 19329
                   OPC_SwitchType , 14,  MVT::i16,
19330
-                    OPC_CheckPatternPredicate, 15,
19330
+                    OPC_CheckPatternPredicate, 16,
19331 19331
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19332 19332
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE16rr), 0|OPFL_FlagInput,
19333 19333
                         1, MVT::i16, 2, 0, 1, 
19334 19334
                   14,  MVT::i32,
19335
-                    OPC_CheckPatternPredicate, 15,
19335
+                    OPC_CheckPatternPredicate, 16,
19336 19336
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19337 19337
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE32rr), 0|OPFL_FlagInput,
19338 19338
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19346,12 +21302,12 @@ SDNode *SelectCode(SDNode *N) {
19346 19346
                   OPC_MoveParent,
19347 19347
                   OPC_RecordChild3,
19348 19348
                   OPC_SwitchType , 14,  MVT::i16,
19349
-                    OPC_CheckPatternPredicate, 15,
19349
+                    OPC_CheckPatternPredicate, 16,
19350 19350
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19351 19351
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE16rr), 0|OPFL_FlagInput,
19352 19352
                         1, MVT::i16, 2, 0, 1, 
19353 19353
                   14,  MVT::i32,
19354
-                    OPC_CheckPatternPredicate, 15,
19354
+                    OPC_CheckPatternPredicate, 16,
19355 19355
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19356 19356
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE32rr), 0|OPFL_FlagInput,
19357 19357
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19365,12 +21321,12 @@ SDNode *SelectCode(SDNode *N) {
19365 19365
                   OPC_MoveParent,
19366 19366
                   OPC_RecordChild3,
19367 19367
                   OPC_SwitchType , 14,  MVT::i16,
19368
-                    OPC_CheckPatternPredicate, 15,
19368
+                    OPC_CheckPatternPredicate, 16,
19369 19369
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19370 19370
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG16rr), 0|OPFL_FlagInput,
19371 19371
                         1, MVT::i16, 2, 0, 1, 
19372 19372
                   14,  MVT::i32,
19373
-                    OPC_CheckPatternPredicate, 15,
19373
+                    OPC_CheckPatternPredicate, 16,
19374 19374
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19375 19375
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG32rr), 0|OPFL_FlagInput,
19376 19376
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19384,12 +21340,12 @@ SDNode *SelectCode(SDNode *N) {
19384 19384
                   OPC_MoveParent,
19385 19385
                   OPC_RecordChild3,
19386 19386
                   OPC_SwitchType , 14,  MVT::i16,
19387
-                    OPC_CheckPatternPredicate, 15,
19387
+                    OPC_CheckPatternPredicate, 16,
19388 19388
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19389 19389
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS16rr), 0|OPFL_FlagInput,
19390 19390
                         1, MVT::i16, 2, 0, 1, 
19391 19391
                   14,  MVT::i32,
19392
-                    OPC_CheckPatternPredicate, 15,
19392
+                    OPC_CheckPatternPredicate, 16,
19393 19393
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19394 19394
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS32rr), 0|OPFL_FlagInput,
19395 19395
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19403,12 +21359,12 @@ SDNode *SelectCode(SDNode *N) {
19403 19403
                   OPC_MoveParent,
19404 19404
                   OPC_RecordChild3,
19405 19405
                   OPC_SwitchType , 14,  MVT::i16,
19406
-                    OPC_CheckPatternPredicate, 15,
19406
+                    OPC_CheckPatternPredicate, 16,
19407 19407
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19408 19408
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS16rr), 0|OPFL_FlagInput,
19409 19409
                         1, MVT::i16, 2, 0, 1, 
19410 19410
                   14,  MVT::i32,
19411
-                    OPC_CheckPatternPredicate, 15,
19411
+                    OPC_CheckPatternPredicate, 16,
19412 19412
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19413 19413
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS32rr), 0|OPFL_FlagInput,
19414 19414
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19422,12 +21378,12 @@ SDNode *SelectCode(SDNode *N) {
19422 19422
                   OPC_MoveParent,
19423 19423
                   OPC_RecordChild3,
19424 19424
                   OPC_SwitchType , 14,  MVT::i16,
19425
-                    OPC_CheckPatternPredicate, 15,
19425
+                    OPC_CheckPatternPredicate, 16,
19426 19426
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19427 19427
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP16rr), 0|OPFL_FlagInput,
19428 19428
                         1, MVT::i16, 2, 0, 1, 
19429 19429
                   14,  MVT::i32,
19430
-                    OPC_CheckPatternPredicate, 15,
19430
+                    OPC_CheckPatternPredicate, 16,
19431 19431
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19432 19432
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP32rr), 0|OPFL_FlagInput,
19433 19433
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19441,12 +21397,12 @@ SDNode *SelectCode(SDNode *N) {
19441 19441
                   OPC_MoveParent,
19442 19442
                   OPC_RecordChild3,
19443 19443
                   OPC_SwitchType , 14,  MVT::i16,
19444
-                    OPC_CheckPatternPredicate, 15,
19444
+                    OPC_CheckPatternPredicate, 16,
19445 19445
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19446 19446
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP16rr), 0|OPFL_FlagInput,
19447 19447
                         1, MVT::i16, 2, 0, 1, 
19448 19448
                   14,  MVT::i32,
19449
-                    OPC_CheckPatternPredicate, 15,
19449
+                    OPC_CheckPatternPredicate, 16,
19450 19450
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19451 19451
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP32rr), 0|OPFL_FlagInput,
19452 19452
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19460,12 +21416,12 @@ SDNode *SelectCode(SDNode *N) {
19460 19460
                   OPC_MoveParent,
19461 19461
                   OPC_RecordChild3,
19462 19462
                   OPC_SwitchType , 14,  MVT::i16,
19463
-                    OPC_CheckPatternPredicate, 15,
19463
+                    OPC_CheckPatternPredicate, 16,
19464 19464
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19465 19465
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO16rr), 0|OPFL_FlagInput,
19466 19466
                         1, MVT::i16, 2, 0, 1, 
19467 19467
                   14,  MVT::i32,
19468
-                    OPC_CheckPatternPredicate, 15,
19468
+                    OPC_CheckPatternPredicate, 16,
19469 19469
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19470 19470
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO32rr), 0|OPFL_FlagInput,
19471 19471
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19479,12 +21435,12 @@ SDNode *SelectCode(SDNode *N) {
19479 19479
                   OPC_MoveParent,
19480 19480
                   OPC_RecordChild3,
19481 19481
                   OPC_SwitchType , 14,  MVT::i16,
19482
-                    OPC_CheckPatternPredicate, 15,
19482
+                    OPC_CheckPatternPredicate, 16,
19483 19483
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19484 19484
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO16rr), 0|OPFL_FlagInput,
19485 19485
                         1, MVT::i16, 2, 0, 1, 
19486 19486
                   14,  MVT::i32,
19487
-                    OPC_CheckPatternPredicate, 15,
19487
+                    OPC_CheckPatternPredicate, 16,
19488 19488
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19489 19489
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO32rr), 0|OPFL_FlagInput,
19490 19490
                         1, MVT::i32, 2, 0, 1, 
... ...
@@ -19506,13 +21462,13 @@ SDNode *SelectCode(SDNode *N) {
19506 19506
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_GR8), 0|OPFL_FlagInput,
19507 19507
                       2, MVT::i8, MVT::i32, 3, 0, 1, 4, 
19508 19508
                 18,  MVT::i32,
19509
-                  OPC_CheckPatternPredicate, 16,
19509
+                  OPC_CheckPatternPredicate, 17,
19510 19510
                   OPC_EmitConvertToTarget, 2,
19511 19511
                   OPC_EmitCopyToReg, 3, X86::EFLAGS,
19512 19512
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_GR32), 0|OPFL_FlagInput,
19513 19513
                       2, MVT::i32, MVT::i32, 3, 0, 1, 4, 
19514 19514
                 18,  MVT::i16,
19515
-                  OPC_CheckPatternPredicate, 16,
19515
+                  OPC_CheckPatternPredicate, 17,
19516 19516
                   OPC_EmitConvertToTarget, 2,
19517 19517
                   OPC_EmitCopyToReg, 3, X86::EFLAGS,
19518 19518
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_GR16), 0|OPFL_FlagInput,
... ...
@@ -19525,17 +21481,17 @@ SDNode *SelectCode(SDNode *N) {
19525 19525
                   OPC_MoveParent,
19526 19526
                   OPC_RecordChild3,
19527 19527
                   OPC_SwitchType , 14,  MVT::f32,
19528
-                    OPC_CheckPatternPredicate, 17,
19528
+                    OPC_CheckPatternPredicate, 18,
19529 19529
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19530 19530
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB_Fp32), 0|OPFL_FlagInput,
19531 19531
                         1, MVT::f32, 2, 0, 1, 
19532 19532
                   14,  MVT::f64,
19533
-                    OPC_CheckPatternPredicate, 18,
19533
+                    OPC_CheckPatternPredicate, 19,
19534 19534
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19535 19535
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB_Fp64), 0|OPFL_FlagInput,
19536 19536
                         1, MVT::f64, 2, 0, 1, 
19537 19537
                   14,  MVT::f80,
19538
-                    OPC_CheckPatternPredicate, 15,
19538
+                    OPC_CheckPatternPredicate, 16,
19539 19539
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19540 19540
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB_Fp80), 0|OPFL_FlagInput,
19541 19541
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19545,17 +21501,17 @@ SDNode *SelectCode(SDNode *N) {
19545 19545
                   OPC_MoveParent,
19546 19546
                   OPC_RecordChild3,
19547 19547
                   OPC_SwitchType , 14,  MVT::f32,
19548
-                    OPC_CheckPatternPredicate, 17,
19548
+                    OPC_CheckPatternPredicate, 18,
19549 19549
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19550 19550
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE_Fp32), 0|OPFL_FlagInput,
19551 19551
                         1, MVT::f32, 2, 0, 1, 
19552 19552
                   14,  MVT::f64,
19553
-                    OPC_CheckPatternPredicate, 18,
19553
+                    OPC_CheckPatternPredicate, 19,
19554 19554
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19555 19555
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE_Fp64), 0|OPFL_FlagInput,
19556 19556
                         1, MVT::f64, 2, 0, 1, 
19557 19557
                   14,  MVT::f80,
19558
-                    OPC_CheckPatternPredicate, 15,
19558
+                    OPC_CheckPatternPredicate, 16,
19559 19559
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19560 19560
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE_Fp80), 0|OPFL_FlagInput,
19561 19561
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19565,17 +21521,17 @@ SDNode *SelectCode(SDNode *N) {
19565 19565
                   OPC_MoveParent,
19566 19566
                   OPC_RecordChild3,
19567 19567
                   OPC_SwitchType , 14,  MVT::f32,
19568
-                    OPC_CheckPatternPredicate, 17,
19568
+                    OPC_CheckPatternPredicate, 18,
19569 19569
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19570 19570
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE_Fp32), 0|OPFL_FlagInput,
19571 19571
                         1, MVT::f32, 2, 0, 1, 
19572 19572
                   14,  MVT::f64,
19573
-                    OPC_CheckPatternPredicate, 18,
19573
+                    OPC_CheckPatternPredicate, 19,
19574 19574
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19575 19575
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE_Fp64), 0|OPFL_FlagInput,
19576 19576
                         1, MVT::f64, 2, 0, 1, 
19577 19577
                   14,  MVT::f80,
19578
-                    OPC_CheckPatternPredicate, 15,
19578
+                    OPC_CheckPatternPredicate, 16,
19579 19579
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19580 19580
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE_Fp80), 0|OPFL_FlagInput,
19581 19581
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19585,17 +21541,17 @@ SDNode *SelectCode(SDNode *N) {
19585 19585
                   OPC_MoveParent,
19586 19586
                   OPC_RecordChild3,
19587 19587
                   OPC_SwitchType , 14,  MVT::f32,
19588
-                    OPC_CheckPatternPredicate, 17,
19588
+                    OPC_CheckPatternPredicate, 18,
19589 19589
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19590 19590
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP_Fp32), 0|OPFL_FlagInput,
19591 19591
                         1, MVT::f32, 2, 0, 1, 
19592 19592
                   14,  MVT::f64,
19593
-                    OPC_CheckPatternPredicate, 18,
19593
+                    OPC_CheckPatternPredicate, 19,
19594 19594
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19595 19595
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP_Fp64), 0|OPFL_FlagInput,
19596 19596
                         1, MVT::f64, 2, 0, 1, 
19597 19597
                   14,  MVT::f80,
19598
-                    OPC_CheckPatternPredicate, 15,
19598
+                    OPC_CheckPatternPredicate, 16,
19599 19599
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19600 19600
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP_Fp80), 0|OPFL_FlagInput,
19601 19601
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19605,17 +21561,17 @@ SDNode *SelectCode(SDNode *N) {
19605 19605
                   OPC_MoveParent,
19606 19606
                   OPC_RecordChild3,
19607 19607
                   OPC_SwitchType , 14,  MVT::f32,
19608
-                    OPC_CheckPatternPredicate, 17,
19608
+                    OPC_CheckPatternPredicate, 18,
19609 19609
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19610 19610
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNB_Fp32), 0|OPFL_FlagInput,
19611 19611
                         1, MVT::f32, 2, 0, 1, 
19612 19612
                   14,  MVT::f64,
19613
-                    OPC_CheckPatternPredicate, 18,
19613
+                    OPC_CheckPatternPredicate, 19,
19614 19614
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19615 19615
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNB_Fp64), 0|OPFL_FlagInput,
19616 19616
                         1, MVT::f64, 2, 0, 1, 
19617 19617
                   14,  MVT::f80,
19618
-                    OPC_CheckPatternPredicate, 15,
19618
+                    OPC_CheckPatternPredicate, 16,
19619 19619
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19620 19620
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNB_Fp80), 0|OPFL_FlagInput,
19621 19621
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19625,17 +21581,17 @@ SDNode *SelectCode(SDNode *N) {
19625 19625
                   OPC_MoveParent,
19626 19626
                   OPC_RecordChild3,
19627 19627
                   OPC_SwitchType , 14,  MVT::f32,
19628
-                    OPC_CheckPatternPredicate, 17,
19628
+                    OPC_CheckPatternPredicate, 18,
19629 19629
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19630 19630
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNBE_Fp32), 0|OPFL_FlagInput,
19631 19631
                         1, MVT::f32, 2, 0, 1, 
19632 19632
                   14,  MVT::f64,
19633
-                    OPC_CheckPatternPredicate, 18,
19633
+                    OPC_CheckPatternPredicate, 19,
19634 19634
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19635 19635
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNBE_Fp64), 0|OPFL_FlagInput,
19636 19636
                         1, MVT::f64, 2, 0, 1, 
19637 19637
                   14,  MVT::f80,
19638
-                    OPC_CheckPatternPredicate, 15,
19638
+                    OPC_CheckPatternPredicate, 16,
19639 19639
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19640 19640
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNBE_Fp80), 0|OPFL_FlagInput,
19641 19641
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19645,17 +21601,17 @@ SDNode *SelectCode(SDNode *N) {
19645 19645
                   OPC_MoveParent,
19646 19646
                   OPC_RecordChild3,
19647 19647
                   OPC_SwitchType , 14,  MVT::f32,
19648
-                    OPC_CheckPatternPredicate, 17,
19648
+                    OPC_CheckPatternPredicate, 18,
19649 19649
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19650 19650
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE_Fp32), 0|OPFL_FlagInput,
19651 19651
                         1, MVT::f32, 2, 0, 1, 
19652 19652
                   14,  MVT::f64,
19653
-                    OPC_CheckPatternPredicate, 18,
19653
+                    OPC_CheckPatternPredicate, 19,
19654 19654
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19655 19655
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE_Fp64), 0|OPFL_FlagInput,
19656 19656
                         1, MVT::f64, 2, 0, 1, 
19657 19657
                   14,  MVT::f80,
19658
-                    OPC_CheckPatternPredicate, 15,
19658
+                    OPC_CheckPatternPredicate, 16,
19659 19659
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19660 19660
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE_Fp80), 0|OPFL_FlagInput,
19661 19661
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19665,17 +21621,17 @@ SDNode *SelectCode(SDNode *N) {
19665 19665
                   OPC_MoveParent,
19666 19666
                   OPC_RecordChild3,
19667 19667
                   OPC_SwitchType , 14,  MVT::f32,
19668
-                    OPC_CheckPatternPredicate, 17,
19668
+                    OPC_CheckPatternPredicate, 18,
19669 19669
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19670 19670
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP_Fp32), 0|OPFL_FlagInput,
19671 19671
                         1, MVT::f32, 2, 0, 1, 
19672 19672
                   14,  MVT::f64,
19673
-                    OPC_CheckPatternPredicate, 18,
19673
+                    OPC_CheckPatternPredicate, 19,
19674 19674
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19675 19675
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP_Fp64), 0|OPFL_FlagInput,
19676 19676
                         1, MVT::f64, 2, 0, 1, 
19677 19677
                   14,  MVT::f80,
19678
-                    OPC_CheckPatternPredicate, 15,
19678
+                    OPC_CheckPatternPredicate, 16,
19679 19679
                     OPC_EmitCopyToReg, 2, X86::EFLAGS,
19680 19680
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP_Fp80), 0|OPFL_FlagInput,
19681 19681
                         1, MVT::f80, 2, 0, 1, 
... ...
@@ -19689,7 +21645,7 @@ SDNode *SelectCode(SDNode *N) {
19689 19689
                 OPC_RecordChild3,
19690 19690
                 OPC_SwitchType , 37,  MVT::f32,
19691 19691
                   OPC_Scope, 18, 
19692
-                    OPC_CheckPatternPredicate, 16,
19692
+                    OPC_CheckPatternPredicate, 17,
19693 19693
                     OPC_EmitConvertToTarget, 2,
19694 19694
                     OPC_EmitCopyToReg, 3, X86::EFLAGS,
19695 19695
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_RFP32), 0|OPFL_FlagInput,
... ...
@@ -19702,7 +21658,7 @@ SDNode *SelectCode(SDNode *N) {
19702 19702
                   0, 
19703 19703
                 37,  MVT::f64,
19704 19704
                   OPC_Scope, 18, 
19705
-                    OPC_CheckPatternPredicate, 16,
19705
+                    OPC_CheckPatternPredicate, 17,
19706 19706
                     OPC_EmitConvertToTarget, 2,
19707 19707
                     OPC_EmitCopyToReg, 3, X86::EFLAGS,
19708 19708
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_RFP64), 0|OPFL_FlagInput,
... ...
@@ -19714,7 +21670,7 @@ SDNode *SelectCode(SDNode *N) {
19714 19714
                         1, MVT::f64, 3, 0, 1, 4, 
19715 19715
                   0, 
19716 19716
                 18,  MVT::f80,
19717
-                  OPC_CheckPatternPredicate, 16,
19717
+                  OPC_CheckPatternPredicate, 17,
19718 19718
                   OPC_EmitConvertToTarget, 2,
19719 19719
                   OPC_EmitCopyToReg, 3, X86::EFLAGS,
19720 19720
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_RFP80), 0|OPFL_FlagInput,
... ...
@@ -19742,6 +21698,2622 @@ SDNode *SelectCode(SDNode *N) {
19742 19742
                 0, 
19743 19743
               0, 
19744 19744
             0, 
19745
+          37|128,12,  TARGET_OPCODE(ISD::LOAD),
19746
+            OPC_RecordMemRef,
19747
+            OPC_RecordNode,
19748
+            OPC_Scope, 19|128,6, 
19749
+              OPC_RecordChild1,
19750
+              OPC_CheckPredicate, 2,
19751
+              OPC_Scope, 24|128,1, 
19752
+                OPC_CheckPredicate, 3,
19753
+                OPC_SwitchType , 42,  MVT::f64,
19754
+                  OPC_CheckPredicate, 4,
19755
+                  OPC_Scope, 18, 
19756
+                    OPC_CheckPatternPredicate, 0,
19757
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19758
+                    OPC_EmitMergeInputChains1_0,
19759
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
19760
+                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
19761
+                  18, 
19762
+                    OPC_CheckPatternPredicate, 2,
19763
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19764
+                    OPC_EmitMergeInputChains1_0,
19765
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
19766
+                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
19767
+                  0, 
19768
+                40,  MVT::i32,
19769
+                  OPC_Scope, 18, 
19770
+                    OPC_CheckPredicate, 45,
19771
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19772
+                    OPC_EmitMergeInputChains1_0,
19773
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::GS_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
19774
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19775
+                  18, 
19776
+                    OPC_CheckPredicate, 46,
19777
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19778
+                    OPC_EmitMergeInputChains1_0,
19779
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::FS_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
19780
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19781
+                  0, 
19782
+                40,  MVT::i64,
19783
+                  OPC_Scope, 18, 
19784
+                    OPC_CheckPredicate, 45,
19785
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19786
+                    OPC_EmitMergeInputChains1_0,
19787
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64GSrm), 0|OPFL_Chain|OPFL_MemRefs,
19788
+                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19789
+                  18, 
19790
+                    OPC_CheckPredicate, 46,
19791
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19792
+                    OPC_EmitMergeInputChains1_0,
19793
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64FSrm), 0|OPFL_Chain|OPFL_MemRefs,
19794
+                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19795
+                  0, 
19796
+                18,  MVT::i8,
19797
+                  OPC_CheckPredicate, 4,
19798
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19799
+                  OPC_EmitMergeInputChains1_0,
19800
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
19801
+                      1, MVT::i8, 5, 2, 3, 4, 5, 6, 
19802
+                0, 
19803
+              20, 
19804
+                OPC_CheckPredicate, 7,
19805
+                OPC_CheckType, MVT::i16,
19806
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19807
+                OPC_EmitMergeInputChains1_0,
19808
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
19809
+                    1, MVT::i16, 5, 2, 3, 4, 5, 6, 
19810
+              20, 
19811
+                OPC_CheckPredicate, 8,
19812
+                OPC_CheckType, MVT::i32,
19813
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19814
+                OPC_EmitMergeInputChains1_0,
19815
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
19816
+                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19817
+              66, 
19818
+                OPC_CheckPredicate, 47,
19819
+                OPC_Scope, 40, 
19820
+                  OPC_CheckPredicate, 48,
19821
+                  OPC_SwitchType , 16,  MVT::i16,
19822
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19823
+                    OPC_EmitMergeInputChains1_0,
19824
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
19825
+                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
19826
+                  16,  MVT::i32,
19827
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19828
+                    OPC_EmitMergeInputChains1_0,
19829
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
19830
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19831
+                  0, 
19832
+                20, 
19833
+                  OPC_CheckPredicate, 49,
19834
+                  OPC_CheckType, MVT::i32,
19835
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19836
+                  OPC_EmitMergeInputChains1_0,
19837
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
19838
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19839
+                0, 
19840
+              125, 
19841
+                OPC_CheckPredicate, 50,
19842
+                OPC_Scope, 40, 
19843
+                  OPC_CheckPredicate, 51,
19844
+                  OPC_SwitchType , 16,  MVT::i16,
19845
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19846
+                    OPC_EmitMergeInputChains1_0,
19847
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
19848
+                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
19849
+                  16,  MVT::i32,
19850
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19851
+                    OPC_EmitMergeInputChains1_0,
19852
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
19853
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19854
+                  0, 
19855
+                20, 
19856
+                  OPC_CheckPredicate, 52,
19857
+                  OPC_CheckType, MVT::i32,
19858
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19859
+                  OPC_EmitMergeInputChains1_0,
19860
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
19861
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19862
+                58, 
19863
+                  OPC_CheckPredicate, 53,
19864
+                  OPC_SwitchType , 16,  MVT::i8,
19865
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19866
+                    OPC_EmitMergeInputChains1_0,
19867
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
19868
+                        1, MVT::i8, 5, 2, 3, 4, 5, 6, 
19869
+                  16,  MVT::i16,
19870
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19871
+                    OPC_EmitMergeInputChains1_0,
19872
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
19873
+                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
19874
+                  16,  MVT::i32,
19875
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19876
+                    OPC_EmitMergeInputChains1_0,
19877
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
19878
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19879
+                  0, 
19880
+                0, 
19881
+              125, 
19882
+                OPC_CheckPredicate, 54,
19883
+                OPC_Scope, 58, 
19884
+                  OPC_CheckPredicate, 55,
19885
+                  OPC_SwitchType , 16,  MVT::i8,
19886
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19887
+                    OPC_EmitMergeInputChains1_0,
19888
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
19889
+                        1, MVT::i8, 5, 2, 3, 4, 5, 6, 
19890
+                  16,  MVT::i16,
19891
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19892
+                    OPC_EmitMergeInputChains1_0,
19893
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
19894
+                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
19895
+                  16,  MVT::i32,
19896
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19897
+                    OPC_EmitMergeInputChains1_0,
19898
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
19899
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19900
+                  0, 
19901
+                40, 
19902
+                  OPC_CheckPredicate, 56,
19903
+                  OPC_SwitchType , 16,  MVT::i16,
19904
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19905
+                    OPC_EmitMergeInputChains1_0,
19906
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
19907
+                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
19908
+                  16,  MVT::i32,
19909
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19910
+                    OPC_EmitMergeInputChains1_0,
19911
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
19912
+                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19913
+                  0, 
19914
+                20, 
19915
+                  OPC_CheckPredicate, 57,
19916
+                  OPC_CheckType, MVT::i32,
19917
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19918
+                  OPC_EmitMergeInputChains1_0,
19919
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
19920
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
19921
+                0, 
19922
+              20, 
19923
+                OPC_CheckPredicate, 3,
19924
+                OPC_CheckType, MVT::i64,
19925
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19926
+                OPC_EmitMergeInputChains1_0,
19927
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
19928
+                    1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19929
+              63, 
19930
+                OPC_CheckPredicate, 47,
19931
+                OPC_CheckType, MVT::i64,
19932
+                OPC_Scope, 18, 
19933
+                  OPC_CheckPredicate, 48,
19934
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19935
+                  OPC_EmitMergeInputChains1_0,
19936
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
19937
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19938
+                18, 
19939
+                  OPC_CheckPredicate, 49,
19940
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19941
+                  OPC_EmitMergeInputChains1_0,
19942
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
19943
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19944
+                18, 
19945
+                  OPC_CheckPredicate, 58,
19946
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19947
+                  OPC_EmitMergeInputChains1_0,
19948
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
19949
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19950
+                0, 
19951
+              82, 
19952
+                OPC_CheckPredicate, 50,
19953
+                OPC_CheckType, MVT::i64,
19954
+                OPC_Scope, 18, 
19955
+                  OPC_CheckPredicate, 51,
19956
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19957
+                  OPC_EmitMergeInputChains1_0,
19958
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
19959
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19960
+                18, 
19961
+                  OPC_CheckPredicate, 52,
19962
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19963
+                  OPC_EmitMergeInputChains1_0,
19964
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
19965
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19966
+                18, 
19967
+                  OPC_CheckPredicate, 59,
19968
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19969
+                  OPC_EmitMergeInputChains1_0,
19970
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
19971
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19972
+                18, 
19973
+                  OPC_CheckPredicate, 53,
19974
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19975
+                  OPC_EmitMergeInputChains1_0,
19976
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
19977
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19978
+                0, 
19979
+              98, 
19980
+                OPC_CheckPredicate, 54,
19981
+                OPC_CheckType, MVT::i64,
19982
+                OPC_Scope, 18, 
19983
+                  OPC_CheckPredicate, 55,
19984
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19985
+                  OPC_EmitMergeInputChains1_0,
19986
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
19987
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19988
+                18, 
19989
+                  OPC_CheckPredicate, 56,
19990
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19991
+                  OPC_EmitMergeInputChains1_0,
19992
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
19993
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
19994
+                18, 
19995
+                  OPC_CheckPredicate, 57,
19996
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
19997
+                  OPC_EmitMergeInputChains1_0,
19998
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
19999
+                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20000
+                34, 
20001
+                  OPC_CheckPredicate, 60,
20002
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20003
+                  OPC_EmitMergeInputChains1_0,
20004
+                  OPC_EmitInteger, MVT::i64, 0, 
20005
+                  OPC_EmitNode, TARGET_OPCODE(X86::MOV32rm), 0|OPFL_Chain,
20006
+                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20007
+                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
20008
+                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
20009
+                      1, MVT::i64, 3, 7, 8, 9, 
20010
+                0, 
20011
+              0, 
20012
+            30, 
20013
+              OPC_MoveChild, 1,
20014
+              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::Wrapper),
20015
+              OPC_RecordChild0,
20016
+              OPC_MoveChild, 0,
20017
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalTLSAddress),
20018
+              OPC_MoveParent,
20019
+              OPC_CheckType, MVT::i64,
20020
+              OPC_MoveParent,
20021
+              OPC_CheckPredicate, 2,
20022
+              OPC_CheckPredicate, 3,
20023
+              OPC_CheckType, MVT::i64,
20024
+              OPC_EmitMergeInputChains1_0,
20025
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
20026
+                  1, MVT::i64, 1, 1, 
20027
+            107|128,5, 
20028
+              OPC_RecordChild1,
20029
+              OPC_CheckPredicate, 2,
20030
+              OPC_Scope, 64, 
20031
+                OPC_CheckPredicate, 3,
20032
+                OPC_CheckPredicate, 4,
20033
+                OPC_SwitchType , 18,  MVT::f32,
20034
+                  OPC_CheckPatternPredicate, 7,
20035
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20036
+                  OPC_EmitMergeInputChains1_0,
20037
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
20038
+                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20039
+                18,  MVT::f64,
20040
+                  OPC_CheckPatternPredicate, 8,
20041
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20042
+                  OPC_EmitMergeInputChains1_0,
20043
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
20044
+                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20045
+                16,  MVT::f80,
20046
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20047
+                  OPC_EmitMergeInputChains1_0,
20048
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
20049
+                      1, MVT::f80, 5, 2, 3, 4, 5, 6, 
20050
+                0, 
20051
+              68, 
20052
+                OPC_CheckPredicate, 54,
20053
+                OPC_SwitchType , 20,  MVT::f64,
20054
+                  OPC_CheckPredicate, 61,
20055
+                  OPC_CheckPatternPredicate, 8,
20056
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20057
+                  OPC_EmitMergeInputChains1_0,
20058
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
20059
+                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20060
+                40,  MVT::f80,
20061
+                  OPC_Scope, 18, 
20062
+                    OPC_CheckPredicate, 62,
20063
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20064
+                    OPC_EmitMergeInputChains1_0,
20065
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
20066
+                        1, MVT::f80, 5, 2, 3, 4, 5, 6, 
20067
+                  18, 
20068
+                    OPC_CheckPredicate, 61,
20069
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20070
+                    OPC_EmitMergeInputChains1_0,
20071
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
20072
+                        1, MVT::f80, 5, 2, 3, 4, 5, 6, 
20073
+                  0, 
20074
+                0, 
20075
+              46, 
20076
+                OPC_CheckPredicate, 3,
20077
+                OPC_CheckPredicate, 4,
20078
+                OPC_CheckType, MVT::f32,
20079
+                OPC_Scope, 18, 
20080
+                  OPC_CheckPatternPredicate, 0,
20081
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20082
+                  OPC_EmitMergeInputChains1_0,
20083
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
20084
+                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20085
+                18, 
20086
+                  OPC_CheckPatternPredicate, 1,
20087
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20088
+                  OPC_EmitMergeInputChains1_0,
20089
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
20090
+                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20091
+                0, 
20092
+              24, 
20093
+                OPC_CheckPredicate, 54,
20094
+                OPC_CheckPredicate, 61,
20095
+                OPC_CheckType, MVT::f64,
20096
+                OPC_CheckPatternPredicate, 20,
20097
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20098
+                OPC_EmitMergeInputChains1_0,
20099
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
20100
+                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20101
+              46, 
20102
+                OPC_CheckPredicate, 3,
20103
+                OPC_CheckPredicate, 63,
20104
+                OPC_SwitchType , 18,  MVT::f32,
20105
+                  OPC_CheckPatternPredicate, 1,
20106
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20107
+                  OPC_EmitMergeInputChains1_0,
20108
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20109
+                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20110
+                18,  MVT::f64,
20111
+                  OPC_CheckPatternPredicate, 2,
20112
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20113
+                  OPC_EmitMergeInputChains1_0,
20114
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20115
+                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20116
+                0, 
20117
+              35, 
20118
+                OPC_CheckPredicate, 54,
20119
+                OPC_CheckPredicate, 61,
20120
+                OPC_CheckType, MVT::f64,
20121
+                OPC_CheckPatternPredicate, 21,
20122
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20123
+                OPC_EmitMergeInputChains1_0,
20124
+                OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
20125
+                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20126
+                OPC_EmitNode, TARGET_OPCODE(X86::CVTSS2SDrr), 0|OPFL_MemRefs,
20127
+                    1, MVT::f64, 1, 7, 
20128
+                OPC_CompleteMatch, 1, 8, 
20129
+
20130
+              67|128,3, 
20131
+                OPC_CheckPredicate, 3,
20132
+                OPC_SwitchType , 85,  MVT::v4i32,
20133
+                  OPC_Scope, 20, 
20134
+                    OPC_CheckPredicate, 63,
20135
+                    OPC_CheckPatternPredicate, 1,
20136
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20137
+                    OPC_EmitMergeInputChains1_0,
20138
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20139
+                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20140
+                  61, 
20141
+                    OPC_Scope, 18, 
20142
+                      OPC_CheckPatternPredicate, 1,
20143
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20144
+                      OPC_EmitMergeInputChains1_0,
20145
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20146
+                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20147
+                    20, 
20148
+                      OPC_CheckPredicate, 63,
20149
+                      OPC_CheckPatternPredicate, 0,
20150
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20151
+                      OPC_EmitMergeInputChains1_0,
20152
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20153
+                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20154
+                    18, 
20155
+                      OPC_CheckPatternPredicate, 0,
20156
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20157
+                      OPC_EmitMergeInputChains1_0,
20158
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20159
+                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20160
+                    0, 
20161
+                  0, 
20162
+                82,  MVT::v2i64,
20163
+                  OPC_Scope, 20, 
20164
+                    OPC_CheckPredicate, 63,
20165
+                    OPC_CheckPatternPredicate, 1,
20166
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20167
+                    OPC_EmitMergeInputChains1_0,
20168
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20169
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20170
+                  18, 
20171
+                    OPC_CheckPatternPredicate, 1,
20172
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20173
+                    OPC_EmitMergeInputChains1_0,
20174
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20175
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20176
+                  20, 
20177
+                    OPC_CheckPredicate, 63,
20178
+                    OPC_CheckPatternPredicate, 0,
20179
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20180
+                    OPC_EmitMergeInputChains1_0,
20181
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20182
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20183
+                  18, 
20184
+                    OPC_CheckPatternPredicate, 0,
20185
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20186
+                    OPC_EmitMergeInputChains1_0,
20187
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20188
+                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20189
+                  0, 
20190
+                18,  MVT::v1i64,
20191
+                  OPC_CheckPatternPredicate, 9,
20192
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20193
+                  OPC_EmitMergeInputChains1_0,
20194
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
20195
+                      1, MVT::v1i64, 5, 2, 3, 4, 5, 6, 
20196
+                82,  MVT::v4f32,
20197
+                  OPC_Scope, 20, 
20198
+                    OPC_CheckPredicate, 63,
20199
+                    OPC_CheckPatternPredicate, 0,
20200
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20201
+                    OPC_EmitMergeInputChains1_0,
20202
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20203
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20204
+                  18, 
20205
+                    OPC_CheckPatternPredicate, 0,
20206
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20207
+                    OPC_EmitMergeInputChains1_0,
20208
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20209
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20210
+                  20, 
20211
+                    OPC_CheckPredicate, 63,
20212
+                    OPC_CheckPatternPredicate, 1,
20213
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20214
+                    OPC_EmitMergeInputChains1_0,
20215
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20216
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20217
+                  18, 
20218
+                    OPC_CheckPatternPredicate, 1,
20219
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20220
+                    OPC_EmitMergeInputChains1_0,
20221
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20222
+                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20223
+                  0, 
20224
+                82,  MVT::v2f64,
20225
+                  OPC_Scope, 20, 
20226
+                    OPC_CheckPredicate, 63,
20227
+                    OPC_CheckPatternPredicate, 0,
20228
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20229
+                    OPC_EmitMergeInputChains1_0,
20230
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20231
+                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20232
+                  18, 
20233
+                    OPC_CheckPatternPredicate, 0,
20234
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20235
+                    OPC_EmitMergeInputChains1_0,
20236
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20237
+                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20238
+                  20, 
20239
+                    OPC_CheckPredicate, 63,
20240
+                    OPC_CheckPatternPredicate, 2,
20241
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20242
+                    OPC_EmitMergeInputChains1_0,
20243
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20244
+                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20245
+                  18, 
20246
+                    OPC_CheckPatternPredicate, 2,
20247
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20248
+                    OPC_EmitMergeInputChains1_0,
20249
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20250
+                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20251
+                  0, 
20252
+                42,  MVT::v8f32,
20253
+                  OPC_Scope, 20, 
20254
+                    OPC_CheckPredicate, 63,
20255
+                    OPC_CheckPatternPredicate, 0,
20256
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20257
+                    OPC_EmitMergeInputChains1_0,
20258
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
20259
+                        1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
20260
+                  18, 
20261
+                    OPC_CheckPatternPredicate, 0,
20262
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20263
+                    OPC_EmitMergeInputChains1_0,
20264
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
20265
+                        1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
20266
+                  0, 
20267
+                42,  MVT::v4f64,
20268
+                  OPC_Scope, 20, 
20269
+                    OPC_CheckPredicate, 63,
20270
+                    OPC_CheckPatternPredicate, 0,
20271
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20272
+                    OPC_EmitMergeInputChains1_0,
20273
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
20274
+                        1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
20275
+                  18, 
20276
+                    OPC_CheckPatternPredicate, 0,
20277
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20278
+                    OPC_EmitMergeInputChains1_0,
20279
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
20280
+                        1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
20281
+                  0, 
20282
+                0, 
20283
+              0, 
20284
+            0, 
20285
+          56,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
20286
+            OPC_RecordNode,
20287
+            OPC_RecordChild1,
20288
+            OPC_SwitchType , 16,  MVT::v2i64,
20289
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20290
+              OPC_EmitMergeInputChains1_0,
20291
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain,
20292
+                  1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20293
+            32,  MVT::v2f64,
20294
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20295
+              OPC_EmitMergeInputChains1_0,
20296
+              OPC_EmitInteger, MVT::i64, 0, 
20297
+              OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
20298
+                  1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20299
+              OPC_EmitInteger, MVT::i32, X86::sub_sd,
20300
+              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
20301
+                  1, MVT::v2f64, 3, 7, 8, 9, 
20302
+            0, 
20303
+          113|128,30,  TARGET_OPCODE(ISD::AND),
20304
+            OPC_Scope, 0|128,12, 
20305
+              OPC_MoveChild, 0,
20306
+              OPC_SwitchOpcode , 27|128,6,  TARGET_OPCODE(ISD::XOR),
20307
+                OPC_Scope, 48|128,1, 
20308
+                  OPC_MoveChild, 0,
20309
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20310
+                  OPC_Scope, 58, 
20311
+                    OPC_RecordChild0,
20312
+                    OPC_CheckChild0Type, MVT::v4f32,
20313
+                    OPC_MoveParent,
20314
+                    OPC_MoveChild, 1,
20315
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20316
+                    OPC_MoveChild, 0,
20317
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20318
+                    OPC_CheckPredicate, 64,
20319
+                    OPC_CheckType, MVT::v4i32,
20320
+                    OPC_MoveParent,
20321
+                    OPC_MoveParent,
20322
+                    OPC_MoveParent,
20323
+                    OPC_MoveChild, 1,
20324
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20325
+                    OPC_RecordMemRef,
20326
+                    OPC_RecordNode,
20327
+                    OPC_CheckFoldableChainNode,
20328
+                    OPC_RecordChild1,
20329
+                    OPC_CheckPredicate, 2,
20330
+                    OPC_CheckPredicate, 3,
20331
+                    OPC_CheckPredicate, 19,
20332
+                    OPC_MoveParent,
20333
+                    OPC_CheckType, MVT::v2i64,
20334
+                    OPC_CheckPatternPredicate, 1,
20335
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20336
+                    OPC_EmitMergeInputChains1_1,
20337
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20338
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20339
+                  58, 
20340
+                    OPC_MoveChild, 0,
20341
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20342
+                    OPC_CheckPredicate, 64,
20343
+                    OPC_CheckType, MVT::v4i32,
20344
+                    OPC_MoveParent,
20345
+                    OPC_MoveParent,
20346
+                    OPC_MoveChild, 1,
20347
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20348
+                    OPC_RecordChild0,
20349
+                    OPC_CheckChild0Type, MVT::v4f32,
20350
+                    OPC_MoveParent,
20351
+                    OPC_MoveParent,
20352
+                    OPC_MoveChild, 1,
20353
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20354
+                    OPC_RecordMemRef,
20355
+                    OPC_RecordNode,
20356
+                    OPC_CheckFoldableChainNode,
20357
+                    OPC_RecordChild1,
20358
+                    OPC_CheckPredicate, 2,
20359
+                    OPC_CheckPredicate, 3,
20360
+                    OPC_CheckPredicate, 19,
20361
+                    OPC_MoveParent,
20362
+                    OPC_CheckType, MVT::v2i64,
20363
+                    OPC_CheckPatternPredicate, 1,
20364
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20365
+                    OPC_EmitMergeInputChains1_1,
20366
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20367
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20368
+                  50, 
20369
+                    OPC_RecordChild0,
20370
+                    OPC_CheckChild0Type, MVT::v2f64,
20371
+                    OPC_MoveParent,
20372
+                    OPC_MoveChild, 1,
20373
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20374
+                    OPC_CheckPredicate, 64,
20375
+                    OPC_MoveParent,
20376
+                    OPC_MoveParent,
20377
+                    OPC_MoveChild, 1,
20378
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20379
+                    OPC_RecordMemRef,
20380
+                    OPC_RecordNode,
20381
+                    OPC_CheckFoldableChainNode,
20382
+                    OPC_RecordChild1,
20383
+                    OPC_CheckPredicate, 2,
20384
+                    OPC_CheckPredicate, 3,
20385
+                    OPC_CheckPredicate, 19,
20386
+                    OPC_MoveParent,
20387
+                    OPC_CheckType, MVT::v2i64,
20388
+                    OPC_CheckPatternPredicate, 2,
20389
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20390
+                    OPC_EmitMergeInputChains1_1,
20391
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20392
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20393
+                  0, 
20394
+                51|128,1, 
20395
+                  OPC_RecordChild0,
20396
+                  OPC_MoveChild, 1,
20397
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20398
+                  OPC_MoveChild, 0,
20399
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20400
+                  OPC_CheckPredicate, 64,
20401
+                  OPC_SwitchType , 40,  MVT::v4i32,
20402
+                    OPC_MoveParent,
20403
+                    OPC_MoveParent,
20404
+                    OPC_MoveParent,
20405
+                    OPC_MoveChild, 1,
20406
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20407
+                    OPC_RecordMemRef,
20408
+                    OPC_RecordNode,
20409
+                    OPC_CheckFoldableChainNode,
20410
+                    OPC_RecordChild1,
20411
+                    OPC_CheckPredicate, 2,
20412
+                    OPC_CheckPredicate, 3,
20413
+                    OPC_CheckPredicate, 19,
20414
+                    OPC_MoveParent,
20415
+                    OPC_CheckType, MVT::v2i64,
20416
+                    OPC_CheckPatternPredicate, 2,
20417
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20418
+                    OPC_EmitMergeInputChains1_1,
20419
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20420
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20421
+                  40,  MVT::v8i16,
20422
+                    OPC_MoveParent,
20423
+                    OPC_MoveParent,
20424
+                    OPC_MoveParent,
20425
+                    OPC_MoveChild, 1,
20426
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20427
+                    OPC_RecordMemRef,
20428
+                    OPC_RecordNode,
20429
+                    OPC_CheckFoldableChainNode,
20430
+                    OPC_RecordChild1,
20431
+                    OPC_CheckPredicate, 2,
20432
+                    OPC_CheckPredicate, 3,
20433
+                    OPC_CheckPredicate, 19,
20434
+                    OPC_MoveParent,
20435
+                    OPC_CheckType, MVT::v2i64,
20436
+                    OPC_CheckPatternPredicate, 2,
20437
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20438
+                    OPC_EmitMergeInputChains1_1,
20439
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20440
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20441
+                  40,  MVT::v16i8,
20442
+                    OPC_MoveParent,
20443
+                    OPC_MoveParent,
20444
+                    OPC_MoveParent,
20445
+                    OPC_MoveChild, 1,
20446
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20447
+                    OPC_RecordMemRef,
20448
+                    OPC_RecordNode,
20449
+                    OPC_CheckFoldableChainNode,
20450
+                    OPC_RecordChild1,
20451
+                    OPC_CheckPredicate, 2,
20452
+                    OPC_CheckPredicate, 3,
20453
+                    OPC_CheckPredicate, 19,
20454
+                    OPC_MoveParent,
20455
+                    OPC_CheckType, MVT::v2i64,
20456
+                    OPC_CheckPatternPredicate, 2,
20457
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20458
+                    OPC_EmitMergeInputChains1_1,
20459
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20460
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20461
+                  36,  MVT::v2i32,
20462
+                    OPC_MoveParent,
20463
+                    OPC_MoveParent,
20464
+                    OPC_MoveParent,
20465
+                    OPC_MoveChild, 1,
20466
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20467
+                    OPC_RecordMemRef,
20468
+                    OPC_RecordNode,
20469
+                    OPC_CheckFoldableChainNode,
20470
+                    OPC_RecordChild1,
20471
+                    OPC_CheckPredicate, 2,
20472
+                    OPC_CheckPredicate, 3,
20473
+                    OPC_MoveParent,
20474
+                    OPC_CheckType, MVT::v1i64,
20475
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20476
+                    OPC_EmitMergeInputChains1_1,
20477
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20478
+                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
20479
+                  0, 
20480
+                110|128,1, 
20481
+                  OPC_MoveChild, 0,
20482
+                  OPC_SwitchOpcode , 50,  TARGET_OPCODE(ISD::BUILD_VECTOR),
20483
+                    OPC_CheckPredicate, 64,
20484
+                    OPC_MoveParent,
20485
+                    OPC_MoveChild, 1,
20486
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20487
+                    OPC_RecordChild0,
20488
+                    OPC_CheckChild0Type, MVT::v2f64,
20489
+                    OPC_MoveParent,
20490
+                    OPC_MoveParent,
20491
+                    OPC_MoveChild, 1,
20492
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20493
+                    OPC_RecordMemRef,
20494
+                    OPC_RecordNode,
20495
+                    OPC_CheckFoldableChainNode,
20496
+                    OPC_RecordChild1,
20497
+                    OPC_CheckPredicate, 2,
20498
+                    OPC_CheckPredicate, 3,
20499
+                    OPC_CheckPredicate, 19,
20500
+                    OPC_MoveParent,
20501
+                    OPC_CheckType, MVT::v2i64,
20502
+                    OPC_CheckPatternPredicate, 2,
20503
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20504
+                    OPC_EmitMergeInputChains1_1,
20505
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20506
+                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20507
+                  49|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
20508
+                    OPC_MoveChild, 0,
20509
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20510
+                    OPC_CheckPredicate, 64,
20511
+                    OPC_SwitchType , 41,  MVT::v4i32,
20512
+                      OPC_MoveParent,
20513
+                      OPC_MoveParent,
20514
+                      OPC_RecordChild1,
20515
+                      OPC_MoveParent,
20516
+                      OPC_MoveChild, 1,
20517
+                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20518
+                      OPC_RecordMemRef,
20519
+                      OPC_RecordNode,
20520
+                      OPC_CheckFoldableChainNode,
20521
+                      OPC_RecordChild1,
20522
+                      OPC_CheckPredicate, 2,
20523
+                      OPC_CheckPredicate, 3,
20524
+                      OPC_CheckPredicate, 19,
20525
+                      OPC_MoveParent,
20526
+                      OPC_CheckType, MVT::v2i64,
20527
+                      OPC_CheckPatternPredicate, 2,
20528
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20529
+                      OPC_EmitMergeInputChains1_1,
20530
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20531
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20532
+                    41,  MVT::v8i16,
20533
+                      OPC_MoveParent,
20534
+                      OPC_MoveParent,
20535
+                      OPC_RecordChild1,
20536
+                      OPC_MoveParent,
20537
+                      OPC_MoveChild, 1,
20538
+                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20539
+                      OPC_RecordMemRef,
20540
+                      OPC_RecordNode,
20541
+                      OPC_CheckFoldableChainNode,
20542
+                      OPC_RecordChild1,
20543
+                      OPC_CheckPredicate, 2,
20544
+                      OPC_CheckPredicate, 3,
20545
+                      OPC_CheckPredicate, 19,
20546
+                      OPC_MoveParent,
20547
+                      OPC_CheckType, MVT::v2i64,
20548
+                      OPC_CheckPatternPredicate, 2,
20549
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20550
+                      OPC_EmitMergeInputChains1_1,
20551
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20552
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20553
+                    41,  MVT::v16i8,
20554
+                      OPC_MoveParent,
20555
+                      OPC_MoveParent,
20556
+                      OPC_RecordChild1,
20557
+                      OPC_MoveParent,
20558
+                      OPC_MoveChild, 1,
20559
+                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20560
+                      OPC_RecordMemRef,
20561
+                      OPC_RecordNode,
20562
+                      OPC_CheckFoldableChainNode,
20563
+                      OPC_RecordChild1,
20564
+                      OPC_CheckPredicate, 2,
20565
+                      OPC_CheckPredicate, 3,
20566
+                      OPC_CheckPredicate, 19,
20567
+                      OPC_MoveParent,
20568
+                      OPC_CheckType, MVT::v2i64,
20569
+                      OPC_CheckPatternPredicate, 2,
20570
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20571
+                      OPC_EmitMergeInputChains1_1,
20572
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20573
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20574
+                    37,  MVT::v2i32,
20575
+                      OPC_MoveParent,
20576
+                      OPC_MoveParent,
20577
+                      OPC_RecordChild1,
20578
+                      OPC_MoveParent,
20579
+                      OPC_MoveChild, 1,
20580
+                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20581
+                      OPC_RecordMemRef,
20582
+                      OPC_RecordNode,
20583
+                      OPC_CheckFoldableChainNode,
20584
+                      OPC_RecordChild1,
20585
+                      OPC_CheckPredicate, 2,
20586
+                      OPC_CheckPredicate, 3,
20587
+                      OPC_MoveParent,
20588
+                      OPC_CheckType, MVT::v1i64,
20589
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20590
+                      OPC_EmitMergeInputChains1_1,
20591
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20592
+                          1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
20593
+                    0, 
20594
+                  0, 
20595
+                96, 
20596
+                  OPC_RecordChild0,
20597
+                  OPC_MoveChild, 1,
20598
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20599
+                  OPC_CheckPredicate, 64,
20600
+                  OPC_MoveParent,
20601
+                  OPC_MoveParent,
20602
+                  OPC_MoveChild, 1,
20603
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20604
+                  OPC_RecordMemRef,
20605
+                  OPC_RecordNode,
20606
+                  OPC_CheckFoldableChainNode,
20607
+                  OPC_RecordChild1,
20608
+                  OPC_CheckPredicate, 2,
20609
+                  OPC_CheckPredicate, 3,
20610
+                  OPC_Scope, 47, 
20611
+                    OPC_CheckPredicate, 19,
20612
+                    OPC_MoveParent,
20613
+                    OPC_CheckType, MVT::v2i64,
20614
+                    OPC_Scope, 19, 
20615
+                      OPC_CheckPatternPredicate, 0,
20616
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20617
+                      OPC_EmitMergeInputChains1_1,
20618
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20619
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20620
+                    19, 
20621
+                      OPC_CheckPatternPredicate, 2,
20622
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20623
+                      OPC_EmitMergeInputChains1_1,
20624
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20625
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20626
+                    0, 
20627
+                  22, 
20628
+                    OPC_MoveParent,
20629
+                    OPC_CheckType, MVT::v1i64,
20630
+                    OPC_CheckPatternPredicate, 9,
20631
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20632
+                    OPC_EmitMergeInputChains1_1,
20633
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20634
+                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
20635
+                  0, 
20636
+                96, 
20637
+                  OPC_MoveChild, 0,
20638
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20639
+                  OPC_CheckPredicate, 64,
20640
+                  OPC_MoveParent,
20641
+                  OPC_RecordChild1,
20642
+                  OPC_MoveParent,
20643
+                  OPC_MoveChild, 1,
20644
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20645
+                  OPC_RecordMemRef,
20646
+                  OPC_RecordNode,
20647
+                  OPC_CheckFoldableChainNode,
20648
+                  OPC_RecordChild1,
20649
+                  OPC_CheckPredicate, 2,
20650
+                  OPC_CheckPredicate, 3,
20651
+                  OPC_Scope, 47, 
20652
+                    OPC_CheckPredicate, 19,
20653
+                    OPC_MoveParent,
20654
+                    OPC_CheckType, MVT::v2i64,
20655
+                    OPC_Scope, 19, 
20656
+                      OPC_CheckPatternPredicate, 0,
20657
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20658
+                      OPC_EmitMergeInputChains1_1,
20659
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20660
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20661
+                    19, 
20662
+                      OPC_CheckPatternPredicate, 2,
20663
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20664
+                      OPC_EmitMergeInputChains1_1,
20665
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20666
+                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
20667
+                    0, 
20668
+                  22, 
20669
+                    OPC_MoveParent,
20670
+                    OPC_CheckType, MVT::v1i64,
20671
+                    OPC_CheckPatternPredicate, 9,
20672
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
20673
+                    OPC_EmitMergeInputChains1_1,
20674
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20675
+                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
20676
+                  0, 
20677
+                0, 
20678
+              89|128,5,  TARGET_OPCODE(ISD::LOAD),
20679
+                OPC_RecordMemRef,
20680
+                OPC_RecordNode,
20681
+                OPC_CheckFoldableChainNode,
20682
+                OPC_RecordChild1,
20683
+                OPC_CheckPredicate, 2,
20684
+                OPC_CheckPredicate, 3,
20685
+                OPC_Scope, 35|128,3, 
20686
+                  OPC_CheckPredicate, 19,
20687
+                  OPC_MoveParent,
20688
+                  OPC_MoveChild, 1,
20689
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
20690
+                  OPC_Scope, 39|128,1, 
20691
+                    OPC_MoveChild, 0,
20692
+                    OPC_SwitchOpcode , 123,  TARGET_OPCODE(ISD::BIT_CONVERT),
20693
+                      OPC_Scope, 42, 
20694
+                        OPC_RecordChild0,
20695
+                        OPC_CheckChild0Type, MVT::v4f32,
20696
+                        OPC_MoveParent,
20697
+                        OPC_MoveChild, 1,
20698
+                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20699
+                        OPC_MoveChild, 0,
20700
+                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20701
+                        OPC_CheckPredicate, 64,
20702
+                        OPC_CheckType, MVT::v4i32,
20703
+                        OPC_MoveParent,
20704
+                        OPC_MoveParent,
20705
+                        OPC_MoveParent,
20706
+                        OPC_CheckType, MVT::v2i64,
20707
+                        OPC_CheckPatternPredicate, 1,
20708
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20709
+                        OPC_EmitMergeInputChains1_0,
20710
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20711
+                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20712
+                      42, 
20713
+                        OPC_MoveChild, 0,
20714
+                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20715
+                        OPC_CheckPredicate, 64,
20716
+                        OPC_CheckType, MVT::v4i32,
20717
+                        OPC_MoveParent,
20718
+                        OPC_MoveParent,
20719
+                        OPC_MoveChild, 1,
20720
+                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20721
+                        OPC_RecordChild0,
20722
+                        OPC_CheckChild0Type, MVT::v4f32,
20723
+                        OPC_MoveParent,
20724
+                        OPC_MoveParent,
20725
+                        OPC_CheckType, MVT::v2i64,
20726
+                        OPC_CheckPatternPredicate, 1,
20727
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20728
+                        OPC_EmitMergeInputChains1_0,
20729
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20730
+                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20731
+                      34, 
20732
+                        OPC_RecordChild0,
20733
+                        OPC_CheckChild0Type, MVT::v2f64,
20734
+                        OPC_MoveParent,
20735
+                        OPC_MoveChild, 1,
20736
+                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20737
+                        OPC_CheckPredicate, 64,
20738
+                        OPC_MoveParent,
20739
+                        OPC_MoveParent,
20740
+                        OPC_CheckType, MVT::v2i64,
20741
+                        OPC_CheckPatternPredicate, 2,
20742
+                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20743
+                        OPC_EmitMergeInputChains1_0,
20744
+                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20745
+                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20746
+                      0, 
20747
+                    34,  TARGET_OPCODE(ISD::BUILD_VECTOR),
20748
+                      OPC_CheckPredicate, 64,
20749
+                      OPC_MoveParent,
20750
+                      OPC_MoveChild, 1,
20751
+                      OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20752
+                      OPC_RecordChild0,
20753
+                      OPC_CheckChild0Type, MVT::v2f64,
20754
+                      OPC_MoveParent,
20755
+                      OPC_MoveParent,
20756
+                      OPC_CheckType, MVT::v2i64,
20757
+                      OPC_CheckPatternPredicate, 2,
20758
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20759
+                      OPC_EmitMergeInputChains1_0,
20760
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20761
+                          1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20762
+                    0, 
20763
+                  39, 
20764
+                    OPC_RecordChild0,
20765
+                    OPC_MoveChild, 1,
20766
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20767
+                    OPC_MoveChild, 0,
20768
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20769
+                    OPC_CheckPredicate, 64,
20770
+                    OPC_CheckType, MVT::v4i32,
20771
+                    OPC_MoveParent,
20772
+                    OPC_MoveParent,
20773
+                    OPC_MoveParent,
20774
+                    OPC_CheckType, MVT::v2i64,
20775
+                    OPC_CheckPatternPredicate, 2,
20776
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20777
+                    OPC_EmitMergeInputChains1_0,
20778
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20779
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20780
+                  39, 
20781
+                    OPC_MoveChild, 0,
20782
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20783
+                    OPC_MoveChild, 0,
20784
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20785
+                    OPC_CheckPredicate, 64,
20786
+                    OPC_CheckType, MVT::v4i32,
20787
+                    OPC_MoveParent,
20788
+                    OPC_MoveParent,
20789
+                    OPC_RecordChild1,
20790
+                    OPC_MoveParent,
20791
+                    OPC_CheckType, MVT::v2i64,
20792
+                    OPC_CheckPatternPredicate, 2,
20793
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20794
+                    OPC_EmitMergeInputChains1_0,
20795
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20796
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20797
+                  39, 
20798
+                    OPC_RecordChild0,
20799
+                    OPC_MoveChild, 1,
20800
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20801
+                    OPC_MoveChild, 0,
20802
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20803
+                    OPC_CheckPredicate, 64,
20804
+                    OPC_CheckType, MVT::v8i16,
20805
+                    OPC_MoveParent,
20806
+                    OPC_MoveParent,
20807
+                    OPC_MoveParent,
20808
+                    OPC_CheckType, MVT::v2i64,
20809
+                    OPC_CheckPatternPredicate, 2,
20810
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20811
+                    OPC_EmitMergeInputChains1_0,
20812
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20813
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20814
+                  39, 
20815
+                    OPC_MoveChild, 0,
20816
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20817
+                    OPC_MoveChild, 0,
20818
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20819
+                    OPC_CheckPredicate, 64,
20820
+                    OPC_CheckType, MVT::v8i16,
20821
+                    OPC_MoveParent,
20822
+                    OPC_MoveParent,
20823
+                    OPC_RecordChild1,
20824
+                    OPC_MoveParent,
20825
+                    OPC_CheckType, MVT::v2i64,
20826
+                    OPC_CheckPatternPredicate, 2,
20827
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20828
+                    OPC_EmitMergeInputChains1_0,
20829
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20830
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20831
+                  39, 
20832
+                    OPC_RecordChild0,
20833
+                    OPC_MoveChild, 1,
20834
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20835
+                    OPC_MoveChild, 0,
20836
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20837
+                    OPC_CheckPredicate, 64,
20838
+                    OPC_CheckType, MVT::v16i8,
20839
+                    OPC_MoveParent,
20840
+                    OPC_MoveParent,
20841
+                    OPC_MoveParent,
20842
+                    OPC_CheckType, MVT::v2i64,
20843
+                    OPC_CheckPatternPredicate, 2,
20844
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20845
+                    OPC_EmitMergeInputChains1_0,
20846
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20847
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20848
+                  39, 
20849
+                    OPC_MoveChild, 0,
20850
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20851
+                    OPC_MoveChild, 0,
20852
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20853
+                    OPC_CheckPredicate, 64,
20854
+                    OPC_CheckType, MVT::v16i8,
20855
+                    OPC_MoveParent,
20856
+                    OPC_MoveParent,
20857
+                    OPC_RecordChild1,
20858
+                    OPC_MoveParent,
20859
+                    OPC_CheckType, MVT::v2i64,
20860
+                    OPC_CheckPatternPredicate, 2,
20861
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20862
+                    OPC_EmitMergeInputChains1_0,
20863
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20864
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20865
+                  0, 
20866
+                84, 
20867
+                  OPC_MoveParent,
20868
+                  OPC_MoveChild, 1,
20869
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
20870
+                  OPC_Scope, 37, 
20871
+                    OPC_RecordChild0,
20872
+                    OPC_MoveChild, 1,
20873
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20874
+                    OPC_MoveChild, 0,
20875
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20876
+                    OPC_CheckPredicate, 64,
20877
+                    OPC_CheckType, MVT::v2i32,
20878
+                    OPC_MoveParent,
20879
+                    OPC_MoveParent,
20880
+                    OPC_MoveParent,
20881
+                    OPC_CheckType, MVT::v1i64,
20882
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20883
+                    OPC_EmitMergeInputChains1_0,
20884
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20885
+                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
20886
+                  37, 
20887
+                    OPC_MoveChild, 0,
20888
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
20889
+                    OPC_MoveChild, 0,
20890
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20891
+                    OPC_CheckPredicate, 64,
20892
+                    OPC_CheckType, MVT::v2i32,
20893
+                    OPC_MoveParent,
20894
+                    OPC_MoveParent,
20895
+                    OPC_RecordChild1,
20896
+                    OPC_MoveParent,
20897
+                    OPC_CheckType, MVT::v1i64,
20898
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20899
+                    OPC_EmitMergeInputChains1_0,
20900
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20901
+                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
20902
+                  0, 
20903
+                10|128,1, 
20904
+                  OPC_CheckPredicate, 19,
20905
+                  OPC_MoveParent,
20906
+                  OPC_MoveChild, 1,
20907
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
20908
+                  OPC_Scope, 31, 
20909
+                    OPC_RecordChild0,
20910
+                    OPC_MoveChild, 1,
20911
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20912
+                    OPC_CheckPredicate, 64,
20913
+                    OPC_MoveParent,
20914
+                    OPC_MoveParent,
20915
+                    OPC_CheckType, MVT::v2i64,
20916
+                    OPC_CheckPatternPredicate, 0,
20917
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20918
+                    OPC_EmitMergeInputChains1_0,
20919
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20920
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20921
+                  31, 
20922
+                    OPC_MoveChild, 0,
20923
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20924
+                    OPC_CheckPredicate, 64,
20925
+                    OPC_MoveParent,
20926
+                    OPC_RecordChild1,
20927
+                    OPC_MoveParent,
20928
+                    OPC_CheckType, MVT::v2i64,
20929
+                    OPC_CheckPatternPredicate, 0,
20930
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20931
+                    OPC_EmitMergeInputChains1_0,
20932
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20933
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20934
+                  31, 
20935
+                    OPC_RecordChild0,
20936
+                    OPC_MoveChild, 1,
20937
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20938
+                    OPC_CheckPredicate, 64,
20939
+                    OPC_MoveParent,
20940
+                    OPC_MoveParent,
20941
+                    OPC_CheckType, MVT::v2i64,
20942
+                    OPC_CheckPatternPredicate, 2,
20943
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20944
+                    OPC_EmitMergeInputChains1_0,
20945
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20946
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20947
+                  31, 
20948
+                    OPC_MoveChild, 0,
20949
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20950
+                    OPC_CheckPredicate, 64,
20951
+                    OPC_MoveParent,
20952
+                    OPC_RecordChild1,
20953
+                    OPC_MoveParent,
20954
+                    OPC_CheckType, MVT::v2i64,
20955
+                    OPC_CheckPatternPredicate, 2,
20956
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20957
+                    OPC_EmitMergeInputChains1_0,
20958
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20959
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
20960
+                  0, 
20961
+                72, 
20962
+                  OPC_MoveParent,
20963
+                  OPC_MoveChild, 1,
20964
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
20965
+                  OPC_Scope, 31, 
20966
+                    OPC_RecordChild0,
20967
+                    OPC_MoveChild, 1,
20968
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20969
+                    OPC_CheckPredicate, 64,
20970
+                    OPC_MoveParent,
20971
+                    OPC_MoveParent,
20972
+                    OPC_CheckType, MVT::v1i64,
20973
+                    OPC_CheckPatternPredicate, 9,
20974
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20975
+                    OPC_EmitMergeInputChains1_0,
20976
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20977
+                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
20978
+                  31, 
20979
+                    OPC_MoveChild, 0,
20980
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
20981
+                    OPC_CheckPredicate, 64,
20982
+                    OPC_MoveParent,
20983
+                    OPC_RecordChild1,
20984
+                    OPC_MoveParent,
20985
+                    OPC_CheckType, MVT::v1i64,
20986
+                    OPC_CheckPatternPredicate, 9,
20987
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20988
+                    OPC_EmitMergeInputChains1_0,
20989
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
20990
+                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
20991
+                  0, 
20992
+                0, 
20993
+              0, 
20994
+            114, 
20995
+              OPC_RecordChild0,
20996
+              OPC_MoveChild, 1,
20997
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
20998
+              OPC_RecordMemRef,
20999
+              OPC_RecordNode,
21000
+              OPC_CheckFoldableChainNode,
21001
+              OPC_RecordChild1,
21002
+              OPC_CheckPredicate, 2,
21003
+              OPC_Scope, 25, 
21004
+                OPC_CheckPredicate, 3,
21005
+                OPC_CheckPredicate, 4,
21006
+                OPC_MoveParent,
21007
+                OPC_CheckType, MVT::i8,
21008
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21009
+                OPC_EmitMergeInputChains1_1,
21010
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
21011
+                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
21012
+              23, 
21013
+                OPC_CheckPredicate, 7,
21014
+                OPC_MoveParent,
21015
+                OPC_CheckType, MVT::i16,
21016
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21017
+                OPC_EmitMergeInputChains1_1,
21018
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
21019
+                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
21020
+              23, 
21021
+                OPC_CheckPredicate, 8,
21022
+                OPC_MoveParent,
21023
+                OPC_CheckType, MVT::i32,
21024
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21025
+                OPC_EmitMergeInputChains1_1,
21026
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
21027
+                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
21028
+              25, 
21029
+                OPC_CheckPredicate, 3,
21030
+                OPC_CheckPredicate, 4,
21031
+                OPC_MoveParent,
21032
+                OPC_CheckType, MVT::i64,
21033
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21034
+                OPC_EmitMergeInputChains1_1,
21035
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
21036
+                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
21037
+              0, 
21038
+            117, 
21039
+              OPC_MoveChild, 0,
21040
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
21041
+              OPC_RecordMemRef,
21042
+              OPC_RecordNode,
21043
+              OPC_CheckFoldableChainNode,
21044
+              OPC_RecordChild1,
21045
+              OPC_CheckPredicate, 2,
21046
+              OPC_Scope, 26, 
21047
+                OPC_CheckPredicate, 3,
21048
+                OPC_CheckPredicate, 4,
21049
+                OPC_MoveParent,
21050
+                OPC_RecordChild1,
21051
+                OPC_CheckType, MVT::i8,
21052
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21053
+                OPC_EmitMergeInputChains1_0,
21054
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
21055
+                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
21056
+              24, 
21057
+                OPC_CheckPredicate, 7,
21058
+                OPC_MoveParent,
21059
+                OPC_RecordChild1,
21060
+                OPC_CheckType, MVT::i16,
21061
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21062
+                OPC_EmitMergeInputChains1_0,
21063
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
21064
+                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
21065
+              24, 
21066
+                OPC_CheckPredicate, 8,
21067
+                OPC_MoveParent,
21068
+                OPC_RecordChild1,
21069
+                OPC_CheckType, MVT::i32,
21070
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21071
+                OPC_EmitMergeInputChains1_0,
21072
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
21073
+                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
21074
+              26, 
21075
+                OPC_CheckPredicate, 3,
21076
+                OPC_CheckPredicate, 4,
21077
+                OPC_MoveParent,
21078
+                OPC_RecordChild1,
21079
+                OPC_CheckType, MVT::i64,
21080
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21081
+                OPC_EmitMergeInputChains1_0,
21082
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
21083
+                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
21084
+              0, 
21085
+            17|128,1, 
21086
+              OPC_CheckAndImm, 127|128,1, 
21087
+              OPC_MoveChild, 0,
21088
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::SRL),
21089
+              OPC_RecordChild0,
21090
+              OPC_MoveChild, 1,
21091
+              OPC_CheckInteger, 8, 
21092
+              OPC_CheckType, MVT::i8,
21093
+              OPC_MoveParent,
21094
+              OPC_CheckPredicate, 13,
21095
+              OPC_MoveParent,
21096
+              OPC_SwitchType , 72,  MVT::i32,
21097
+                OPC_Scope, 34, 
21098
+                  OPC_CheckPatternPredicate, 3,
21099
+                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
21100
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
21101
+                      1, MVT::i32, 2, 0, 1, 
21102
+                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
21103
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21104
+                      1, MVT::i8, 2, 2, 3, 
21105
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
21106
+                      1, MVT::i32, 1, 4, 
21107
+                34, 
21108
+                  OPC_CheckPatternPredicate, 4,
21109
+                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
21110
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
21111
+                      1, MVT::i32, 2, 0, 1, 
21112
+                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
21113
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21114
+                      1, MVT::i8, 2, 2, 3, 
21115
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
21116
+                      1, MVT::i32, 1, 4, 
21117
+                0, 
21118
+              48,  MVT::i64,
21119
+                OPC_EmitInteger, MVT::i64, 0, 
21120
+                OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
21121
+                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
21122
+                    1, MVT::i64, 2, 0, 2, 
21123
+                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
21124
+                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21125
+                    1, MVT::i8, 2, 3, 4, 
21126
+                OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
21127
+                    1, MVT::i32, 1, 5, 
21128
+                OPC_EmitInteger, MVT::i32, X86::sub_32bit,
21129
+                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
21130
+                    1, MVT::i64, 3, 1, 6, 7, 
21131
+              0, 
21132
+            27, 
21133
+              OPC_CheckAndImm, 127|128,127|128,3, 
21134
+              OPC_RecordChild0,
21135
+              OPC_CheckType, MVT::i32,
21136
+              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
21137
+              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21138
+                  1, MVT::i16, 2, 0, 1, 
21139
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr16), 0,
21140
+                  1, MVT::i32, 1, 2, 
21141
+            29, 
21142
+              OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15, 
21143
+              OPC_RecordChild0,
21144
+              OPC_CheckType, MVT::i64,
21145
+              OPC_EmitInteger, MVT::i32, X86::sub_32bit,
21146
+              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21147
+                  1, MVT::i32, 2, 0, 1, 
21148
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr32), 0,
21149
+                  1, MVT::i64, 1, 2, 
21150
+            27, 
21151
+              OPC_CheckAndImm, 127|128,127|128,3, 
21152
+              OPC_RecordChild0,
21153
+              OPC_CheckType, MVT::i64,
21154
+              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
21155
+              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21156
+                  1, MVT::i16, 2, 0, 1, 
21157
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr16), 0,
21158
+                  1, MVT::i64, 1, 2, 
21159
+            24|128,1, 
21160
+              OPC_CheckAndImm, 127|128,1, 
21161
+              OPC_RecordChild0,
21162
+              OPC_SwitchType , 20,  MVT::i64,
21163
+                OPC_EmitInteger, MVT::i32, X86::sub_8bit,
21164
+                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21165
+                    1, MVT::i8, 2, 0, 1, 
21166
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr8), 0,
21167
+                    1, MVT::i64, 1, 2, 
21168
+              60,  MVT::i32,
21169
+                OPC_Scope, 22, 
21170
+                  OPC_CheckPatternPredicate, 4,
21171
+                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
21172
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21173
+                      1, MVT::i8, 2, 0, 1, 
21174
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
21175
+                      1, MVT::i32, 1, 2, 
21176
+                34, 
21177
+                  OPC_CheckPatternPredicate, 3,
21178
+                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
21179
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
21180
+                      1, MVT::i32, 2, 0, 1, 
21181
+                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
21182
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21183
+                      1, MVT::i8, 2, 2, 3, 
21184
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
21185
+                      1, MVT::i32, 1, 4, 
21186
+                0, 
21187
+              60,  MVT::i16,
21188
+                OPC_Scope, 22, 
21189
+                  OPC_CheckPatternPredicate, 4,
21190
+                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
21191
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21192
+                      1, MVT::i8, 2, 0, 1, 
21193
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
21194
+                      1, MVT::i16, 1, 2, 
21195
+                34, 
21196
+                  OPC_CheckPatternPredicate, 3,
21197
+                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
21198
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
21199
+                      1, MVT::i16, 2, 0, 1, 
21200
+                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
21201
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21202
+                      1, MVT::i8, 2, 2, 3, 
21203
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
21204
+                      1, MVT::i16, 1, 4, 
21205
+                0, 
21206
+              0, 
21207
+            98|128,1, 
21208
+              OPC_RecordChild0,
21209
+              OPC_RecordChild1,
21210
+              OPC_Scope, 40|128,1, 
21211
+                OPC_MoveChild, 1,
21212
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
21213
+                OPC_Scope, 47, 
21214
+                  OPC_CheckPredicate, 9,
21215
+                  OPC_MoveParent,
21216
+                  OPC_SwitchType , 12,  MVT::i16,
21217
+                    OPC_EmitConvertToTarget, 1,
21218
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri8), 0,
21219
+                        2, MVT::i16, MVT::i32, 2, 0, 2, 
21220
+                  12,  MVT::i32,
21221
+                    OPC_EmitConvertToTarget, 1,
21222
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri8), 0,
21223
+                        2, MVT::i32, MVT::i32, 2, 0, 2, 
21224
+                  12,  MVT::i64,
21225
+                    OPC_EmitConvertToTarget, 1,
21226
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri8), 0,
21227
+                        2, MVT::i64, MVT::i32, 2, 0, 2, 
21228
+                  0, 
21229
+                17, 
21230
+                  OPC_CheckPredicate, 10,
21231
+                  OPC_MoveParent,
21232
+                  OPC_CheckType, MVT::i64,
21233
+                  OPC_EmitConvertToTarget, 1,
21234
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri32), 0,
21235
+                      2, MVT::i64, MVT::i32, 2, 0, 2, 
21236
+                48, 
21237
+                  OPC_CheckPredicate, 65,
21238
+                  OPC_MoveParent,
21239
+                  OPC_CheckType, MVT::i64,
21240
+                  OPC_EmitInteger, MVT::i64, 0, 
21241
+                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
21242
+                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
21243
+                      1, MVT::i32, 2, 0, 3, 
21244
+                  OPC_EmitConvertToTarget, 1,
21245
+                  OPC_EmitNodeXForm, 6, 5,
21246
+                  OPC_EmitNode, TARGET_OPCODE(X86::AND32ri), 0,
21247
+                      2, MVT::i32, MVT::i32, 2, 4, 6, 
21248
+                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
21249
+                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
21250
+                      1, MVT::i64, 3, 2, 7, 9, 
21251
+                45, 
21252
+                  OPC_MoveParent,
21253
+                  OPC_SwitchType , 12,  MVT::i8,
21254
+                    OPC_EmitConvertToTarget, 1,
21255
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8ri), 0,
21256
+                        2, MVT::i8, MVT::i32, 2, 0, 2, 
21257
+                  12,  MVT::i16,
21258
+                    OPC_EmitConvertToTarget, 1,
21259
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri), 0,
21260
+                        2, MVT::i16, MVT::i32, 2, 0, 2, 
21261
+                  12,  MVT::i32,
21262
+                    OPC_EmitConvertToTarget, 1,
21263
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri), 0,
21264
+                        2, MVT::i32, MVT::i32, 2, 0, 2, 
21265
+                  0, 
21266
+                0, 
21267
+              12, 
21268
+                OPC_CheckType, MVT::i8,
21269
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rr), 0,
21270
+                    2, MVT::i8, MVT::i32, 2, 0, 1, 
21271
+              12, 
21272
+                OPC_CheckType, MVT::i16,
21273
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rr), 0,
21274
+                    2, MVT::i16, MVT::i32, 2, 0, 1, 
21275
+              12, 
21276
+                OPC_CheckType, MVT::i32,
21277
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rr), 0,
21278
+                    2, MVT::i32, MVT::i32, 2, 0, 1, 
21279
+              12, 
21280
+                OPC_CheckType, MVT::i64,
21281
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rr), 0,
21282
+                    2, MVT::i64, MVT::i32, 2, 0, 1, 
21283
+              0, 
21284
+            36|128,1, 
21285
+              OPC_MoveChild, 0,
21286
+              OPC_SwitchOpcode , 85,  TARGET_OPCODE(ISD::BIT_CONVERT),
21287
+                OPC_RecordChild0,
21288
+                OPC_Scope, 40, 
21289
+                  OPC_CheckChild0Type, MVT::v4f32,
21290
+                  OPC_MoveParent,
21291
+                  OPC_MoveChild, 1,
21292
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
21293
+                  OPC_RecordMemRef,
21294
+                  OPC_RecordNode,
21295
+                  OPC_CheckFoldableChainNode,
21296
+                  OPC_RecordChild1,
21297
+                  OPC_CheckPredicate, 2,
21298
+                  OPC_CheckPredicate, 3,
21299
+                  OPC_CheckPredicate, 19,
21300
+                  OPC_MoveParent,
21301
+                  OPC_CheckType, MVT::v2i64,
21302
+                  OPC_CheckPatternPredicate, 1,
21303
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21304
+                  OPC_EmitMergeInputChains1_1,
21305
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
21306
+                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
21307
+                40, 
21308
+                  OPC_CheckChild0Type, MVT::v2f64,
21309
+                  OPC_MoveParent,
21310
+                  OPC_MoveChild, 1,
21311
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
21312
+                  OPC_RecordMemRef,
21313
+                  OPC_RecordNode,
21314
+                  OPC_CheckFoldableChainNode,
21315
+                  OPC_RecordChild1,
21316
+                  OPC_CheckPredicate, 2,
21317
+                  OPC_CheckPredicate, 3,
21318
+                  OPC_CheckPredicate, 19,
21319
+                  OPC_MoveParent,
21320
+                  OPC_CheckType, MVT::v2i64,
21321
+                  OPC_CheckPatternPredicate, 2,
21322
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21323
+                  OPC_EmitMergeInputChains1_1,
21324
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
21325
+                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
21326
+                0, 
21327
+              69,  TARGET_OPCODE(ISD::LOAD),
21328
+                OPC_RecordMemRef,
21329
+                OPC_RecordNode,
21330
+                OPC_CheckFoldableChainNode,
21331
+                OPC_RecordChild1,
21332
+                OPC_CheckPredicate, 2,
21333
+                OPC_CheckPredicate, 3,
21334
+                OPC_CheckPredicate, 19,
21335
+                OPC_MoveParent,
21336
+                OPC_MoveChild, 1,
21337
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21338
+                OPC_RecordChild0,
21339
+                OPC_Scope, 24, 
21340
+                  OPC_CheckChild0Type, MVT::v4f32,
21341
+                  OPC_MoveParent,
21342
+                  OPC_CheckType, MVT::v2i64,
21343
+                  OPC_CheckPatternPredicate, 1,
21344
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21345
+                  OPC_EmitMergeInputChains1_0,
21346
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
21347
+                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
21348
+                24, 
21349
+                  OPC_CheckChild0Type, MVT::v2f64,
21350
+                  OPC_MoveParent,
21351
+                  OPC_CheckType, MVT::v2i64,
21352
+                  OPC_CheckPatternPredicate, 2,
21353
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21354
+                  OPC_EmitMergeInputChains1_0,
21355
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
21356
+                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
21357
+                0, 
21358
+              0, 
21359
+            87, 
21360
+              OPC_RecordChild0,
21361
+              OPC_MoveChild, 1,
21362
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
21363
+              OPC_RecordMemRef,
21364
+              OPC_RecordNode,
21365
+              OPC_CheckFoldableChainNode,
21366
+              OPC_RecordChild1,
21367
+              OPC_CheckPredicate, 2,
21368
+              OPC_CheckPredicate, 3,
21369
+              OPC_Scope, 47, 
21370
+                OPC_CheckPredicate, 19,
21371
+                OPC_MoveParent,
21372
+                OPC_CheckType, MVT::v2i64,
21373
+                OPC_Scope, 19, 
21374
+                  OPC_CheckPatternPredicate, 0,
21375
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21376
+                  OPC_EmitMergeInputChains1_1,
21377
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
21378
+                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
21379
+                19, 
21380
+                  OPC_CheckPatternPredicate, 2,
21381
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21382
+                  OPC_EmitMergeInputChains1_1,
21383
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
21384
+                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
21385
+                0, 
21386
+              22, 
21387
+                OPC_MoveParent,
21388
+                OPC_CheckType, MVT::v1i64,
21389
+                OPC_CheckPatternPredicate, 9,
21390
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
21391
+                OPC_EmitMergeInputChains1_1,
21392
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
21393
+                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
21394
+              0, 
21395
+            5|128,3, 
21396
+              OPC_MoveChild, 0,
21397
+              OPC_SwitchOpcode , 83,  TARGET_OPCODE(ISD::LOAD),
21398
+                OPC_RecordMemRef,
21399
+                OPC_RecordNode,
21400
+                OPC_CheckFoldableChainNode,
21401
+                OPC_RecordChild1,
21402
+                OPC_CheckPredicate, 2,
21403
+                OPC_CheckPredicate, 3,
21404
+                OPC_Scope, 48, 
21405
+                  OPC_CheckPredicate, 19,
21406
+                  OPC_MoveParent,
21407
+                  OPC_RecordChild1,
21408
+                  OPC_CheckType, MVT::v2i64,
21409
+                  OPC_Scope, 19, 
21410
+                    OPC_CheckPatternPredicate, 0,
21411
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21412
+                    OPC_EmitMergeInputChains1_0,
21413
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
21414
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
21415
+                  19, 
21416
+                    OPC_CheckPatternPredicate, 2,
21417
+                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21418
+                    OPC_EmitMergeInputChains1_0,
21419
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
21420
+                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
21421
+                  0, 
21422
+                23, 
21423
+                  OPC_MoveParent,
21424
+                  OPC_RecordChild1,
21425
+                  OPC_CheckType, MVT::v1i64,
21426
+                  OPC_CheckPatternPredicate, 9,
21427
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
21428
+                  OPC_EmitMergeInputChains1_0,
21429
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
21430
+                      1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
21431
+                0, 
21432
+              93|128,1,  TARGET_OPCODE(ISD::XOR),
21433
+                OPC_Scope, 80, 
21434
+                  OPC_MoveChild, 0,
21435
+                  OPC_SwitchOpcode , 35,  TARGET_OPCODE(ISD::BIT_CONVERT),
21436
+                    OPC_RecordChild0,
21437
+                    OPC_CheckChild0Type, MVT::v2f64,
21438
+                    OPC_MoveParent,
21439
+                    OPC_MoveChild, 1,
21440
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21441
+                    OPC_CheckPredicate, 64,
21442
+                    OPC_MoveParent,
21443
+                    OPC_MoveParent,
21444
+                    OPC_MoveChild, 1,
21445
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21446
+                    OPC_RecordChild0,
21447
+                    OPC_CheckChild0Type, MVT::v2f64,
21448
+                    OPC_MoveParent,
21449
+                    OPC_CheckType, MVT::v2i64,
21450
+                    OPC_CheckPatternPredicate, 2,
21451
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
21452
+                        1, MVT::v2i64, 2, 0, 1, 
21453
+                  35,  TARGET_OPCODE(ISD::BUILD_VECTOR),
21454
+                    OPC_CheckPredicate, 64,
21455
+                    OPC_MoveParent,
21456
+                    OPC_MoveChild, 1,
21457
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21458
+                    OPC_RecordChild0,
21459
+                    OPC_CheckChild0Type, MVT::v2f64,
21460
+                    OPC_MoveParent,
21461
+                    OPC_MoveParent,
21462
+                    OPC_MoveChild, 1,
21463
+                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21464
+                    OPC_RecordChild0,
21465
+                    OPC_CheckChild0Type, MVT::v2f64,
21466
+                    OPC_MoveParent,
21467
+                    OPC_CheckType, MVT::v2i64,
21468
+                    OPC_CheckPatternPredicate, 2,
21469
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
21470
+                        1, MVT::v2i64, 2, 0, 1, 
21471
+                  0, 
21472
+                104, 
21473
+                  OPC_RecordChild0,
21474
+                  OPC_MoveChild, 1,
21475
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21476
+                  OPC_MoveChild, 0,
21477
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21478
+                  OPC_CheckPredicate, 64,
21479
+                  OPC_SwitchType , 32,  MVT::v4i32,
21480
+                    OPC_MoveParent,
21481
+                    OPC_MoveParent,
21482
+                    OPC_MoveParent,
21483
+                    OPC_RecordChild1,
21484
+                    OPC_CheckType, MVT::v2i64,
21485
+                    OPC_Scope, 11, 
21486
+                      OPC_CheckPatternPredicate, 1,
21487
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
21488
+                          1, MVT::v2i64, 2, 0, 1, 
21489
+                    11, 
21490
+                      OPC_CheckPatternPredicate, 2,
21491
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21492
+                          1, MVT::v2i64, 2, 0, 1, 
21493
+                    0, 
21494
+                  17,  MVT::v8i16,
21495
+                    OPC_MoveParent,
21496
+                    OPC_MoveParent,
21497
+                    OPC_MoveParent,
21498
+                    OPC_RecordChild1,
21499
+                    OPC_CheckType, MVT::v2i64,
21500
+                    OPC_CheckPatternPredicate, 2,
21501
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21502
+                        1, MVT::v2i64, 2, 0, 1, 
21503
+                  17,  MVT::v16i8,
21504
+                    OPC_MoveParent,
21505
+                    OPC_MoveParent,
21506
+                    OPC_MoveParent,
21507
+                    OPC_RecordChild1,
21508
+                    OPC_CheckType, MVT::v2i64,
21509
+                    OPC_CheckPatternPredicate, 2,
21510
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21511
+                        1, MVT::v2i64, 2, 0, 1, 
21512
+                  15,  MVT::v2i32,
21513
+                    OPC_MoveParent,
21514
+                    OPC_MoveParent,
21515
+                    OPC_MoveParent,
21516
+                    OPC_RecordChild1,
21517
+                    OPC_CheckType, MVT::v1i64,
21518
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21519
+                        1, MVT::v1i64, 2, 0, 1, 
21520
+                  0, 
21521
+                32, 
21522
+                  OPC_MoveChild, 0,
21523
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21524
+                  OPC_MoveChild, 0,
21525
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21526
+                  OPC_CheckPredicate, 64,
21527
+                  OPC_CheckType, MVT::v4i32,
21528
+                  OPC_MoveParent,
21529
+                  OPC_MoveParent,
21530
+                  OPC_RecordChild1,
21531
+                  OPC_MoveParent,
21532
+                  OPC_RecordChild1,
21533
+                  OPC_CheckType, MVT::v2i64,
21534
+                  OPC_CheckPatternPredicate, 1,
21535
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
21536
+                      1, MVT::v2i64, 2, 0, 1, 
21537
+                0, 
21538
+              71,  TARGET_OPCODE(ISD::BIT_CONVERT),
21539
+                OPC_RecordChild0,
21540
+                OPC_CheckChild0Type, MVT::v2f64,
21541
+                OPC_MoveParent,
21542
+                OPC_MoveChild, 1,
21543
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21544
+                OPC_MoveChild, 0,
21545
+                OPC_SwitchOpcode , 26,  TARGET_OPCODE(ISD::BIT_CONVERT),
21546
+                  OPC_RecordChild0,
21547
+                  OPC_CheckChild0Type, MVT::v2f64,
21548
+                  OPC_MoveParent,
21549
+                  OPC_MoveChild, 1,
21550
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21551
+                  OPC_CheckPredicate, 64,
21552
+                  OPC_MoveParent,
21553
+                  OPC_MoveParent,
21554
+                  OPC_CheckType, MVT::v2i64,
21555
+                  OPC_CheckPatternPredicate, 2,
21556
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
21557
+                      1, MVT::v2i64, 2, 1, 0, 
21558
+                26,  TARGET_OPCODE(ISD::BUILD_VECTOR),
21559
+                  OPC_CheckPredicate, 64,
21560
+                  OPC_MoveParent,
21561
+                  OPC_MoveChild, 1,
21562
+                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21563
+                  OPC_RecordChild0,
21564
+                  OPC_CheckChild0Type, MVT::v2f64,
21565
+                  OPC_MoveParent,
21566
+                  OPC_MoveParent,
21567
+                  OPC_CheckType, MVT::v2i64,
21568
+                  OPC_CheckPatternPredicate, 2,
21569
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
21570
+                      1, MVT::v2i64, 2, 1, 0, 
21571
+                0, 
21572
+              0, 
21573
+            72, 
21574
+              OPC_RecordChild0,
21575
+              OPC_MoveChild, 1,
21576
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21577
+              OPC_Scope, 31, 
21578
+                OPC_RecordChild0,
21579
+                OPC_MoveChild, 1,
21580
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21581
+                OPC_MoveChild, 0,
21582
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21583
+                OPC_CheckPredicate, 64,
21584
+                OPC_CheckType, MVT::v4i32,
21585
+                OPC_MoveParent,
21586
+                OPC_MoveParent,
21587
+                OPC_MoveParent,
21588
+                OPC_CheckType, MVT::v2i64,
21589
+                OPC_CheckPatternPredicate, 1,
21590
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
21591
+                    1, MVT::v2i64, 2, 1, 0, 
21592
+              31, 
21593
+                OPC_MoveChild, 0,
21594
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21595
+                OPC_MoveChild, 0,
21596
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21597
+                OPC_CheckPredicate, 64,
21598
+                OPC_CheckType, MVT::v4i32,
21599
+                OPC_MoveParent,
21600
+                OPC_MoveParent,
21601
+                OPC_RecordChild1,
21602
+                OPC_MoveParent,
21603
+                OPC_CheckType, MVT::v2i64,
21604
+                OPC_CheckPatternPredicate, 1,
21605
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
21606
+                    1, MVT::v2i64, 2, 1, 0, 
21607
+              0, 
21608
+            37, 
21609
+              OPC_MoveChild, 0,
21610
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21611
+              OPC_MoveChild, 0,
21612
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21613
+              OPC_MoveChild, 0,
21614
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21615
+              OPC_CheckPredicate, 64,
21616
+              OPC_CheckType, MVT::v4i32,
21617
+              OPC_MoveParent,
21618
+              OPC_MoveParent,
21619
+              OPC_RecordChild1,
21620
+              OPC_MoveParent,
21621
+              OPC_RecordChild1,
21622
+              OPC_CheckType, MVT::v2i64,
21623
+              OPC_CheckPatternPredicate, 2,
21624
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21625
+                  1, MVT::v2i64, 2, 0, 1, 
21626
+            72, 
21627
+              OPC_RecordChild0,
21628
+              OPC_MoveChild, 1,
21629
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21630
+              OPC_Scope, 31, 
21631
+                OPC_RecordChild0,
21632
+                OPC_MoveChild, 1,
21633
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21634
+                OPC_MoveChild, 0,
21635
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21636
+                OPC_CheckPredicate, 64,
21637
+                OPC_CheckType, MVT::v4i32,
21638
+                OPC_MoveParent,
21639
+                OPC_MoveParent,
21640
+                OPC_MoveParent,
21641
+                OPC_CheckType, MVT::v2i64,
21642
+                OPC_CheckPatternPredicate, 2,
21643
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21644
+                    1, MVT::v2i64, 2, 1, 0, 
21645
+              31, 
21646
+                OPC_MoveChild, 0,
21647
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21648
+                OPC_MoveChild, 0,
21649
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21650
+                OPC_CheckPredicate, 64,
21651
+                OPC_CheckType, MVT::v4i32,
21652
+                OPC_MoveParent,
21653
+                OPC_MoveParent,
21654
+                OPC_RecordChild1,
21655
+                OPC_MoveParent,
21656
+                OPC_CheckType, MVT::v2i64,
21657
+                OPC_CheckPatternPredicate, 2,
21658
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21659
+                    1, MVT::v2i64, 2, 1, 0, 
21660
+              0, 
21661
+            37, 
21662
+              OPC_MoveChild, 0,
21663
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21664
+              OPC_MoveChild, 0,
21665
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21666
+              OPC_MoveChild, 0,
21667
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21668
+              OPC_CheckPredicate, 64,
21669
+              OPC_CheckType, MVT::v8i16,
21670
+              OPC_MoveParent,
21671
+              OPC_MoveParent,
21672
+              OPC_RecordChild1,
21673
+              OPC_MoveParent,
21674
+              OPC_RecordChild1,
21675
+              OPC_CheckType, MVT::v2i64,
21676
+              OPC_CheckPatternPredicate, 2,
21677
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21678
+                  1, MVT::v2i64, 2, 0, 1, 
21679
+            72, 
21680
+              OPC_RecordChild0,
21681
+              OPC_MoveChild, 1,
21682
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21683
+              OPC_Scope, 31, 
21684
+                OPC_RecordChild0,
21685
+                OPC_MoveChild, 1,
21686
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21687
+                OPC_MoveChild, 0,
21688
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21689
+                OPC_CheckPredicate, 64,
21690
+                OPC_CheckType, MVT::v8i16,
21691
+                OPC_MoveParent,
21692
+                OPC_MoveParent,
21693
+                OPC_MoveParent,
21694
+                OPC_CheckType, MVT::v2i64,
21695
+                OPC_CheckPatternPredicate, 2,
21696
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21697
+                    1, MVT::v2i64, 2, 1, 0, 
21698
+              31, 
21699
+                OPC_MoveChild, 0,
21700
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21701
+                OPC_MoveChild, 0,
21702
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21703
+                OPC_CheckPredicate, 64,
21704
+                OPC_CheckType, MVT::v8i16,
21705
+                OPC_MoveParent,
21706
+                OPC_MoveParent,
21707
+                OPC_RecordChild1,
21708
+                OPC_MoveParent,
21709
+                OPC_CheckType, MVT::v2i64,
21710
+                OPC_CheckPatternPredicate, 2,
21711
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21712
+                    1, MVT::v2i64, 2, 1, 0, 
21713
+              0, 
21714
+            37, 
21715
+              OPC_MoveChild, 0,
21716
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21717
+              OPC_MoveChild, 0,
21718
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21719
+              OPC_MoveChild, 0,
21720
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21721
+              OPC_CheckPredicate, 64,
21722
+              OPC_CheckType, MVT::v16i8,
21723
+              OPC_MoveParent,
21724
+              OPC_MoveParent,
21725
+              OPC_RecordChild1,
21726
+              OPC_MoveParent,
21727
+              OPC_RecordChild1,
21728
+              OPC_CheckType, MVT::v2i64,
21729
+              OPC_CheckPatternPredicate, 2,
21730
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21731
+                  1, MVT::v2i64, 2, 0, 1, 
21732
+            72, 
21733
+              OPC_RecordChild0,
21734
+              OPC_MoveChild, 1,
21735
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21736
+              OPC_Scope, 31, 
21737
+                OPC_RecordChild0,
21738
+                OPC_MoveChild, 1,
21739
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21740
+                OPC_MoveChild, 0,
21741
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21742
+                OPC_CheckPredicate, 64,
21743
+                OPC_CheckType, MVT::v16i8,
21744
+                OPC_MoveParent,
21745
+                OPC_MoveParent,
21746
+                OPC_MoveParent,
21747
+                OPC_CheckType, MVT::v2i64,
21748
+                OPC_CheckPatternPredicate, 2,
21749
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21750
+                    1, MVT::v2i64, 2, 1, 0, 
21751
+              31, 
21752
+                OPC_MoveChild, 0,
21753
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21754
+                OPC_MoveChild, 0,
21755
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21756
+                OPC_CheckPredicate, 64,
21757
+                OPC_CheckType, MVT::v16i8,
21758
+                OPC_MoveParent,
21759
+                OPC_MoveParent,
21760
+                OPC_RecordChild1,
21761
+                OPC_MoveParent,
21762
+                OPC_CheckType, MVT::v2i64,
21763
+                OPC_CheckPatternPredicate, 2,
21764
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21765
+                    1, MVT::v2i64, 2, 1, 0, 
21766
+              0, 
21767
+            35, 
21768
+              OPC_MoveChild, 0,
21769
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21770
+              OPC_MoveChild, 0,
21771
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21772
+              OPC_MoveChild, 0,
21773
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21774
+              OPC_CheckPredicate, 64,
21775
+              OPC_CheckType, MVT::v2i32,
21776
+              OPC_MoveParent,
21777
+              OPC_MoveParent,
21778
+              OPC_RecordChild1,
21779
+              OPC_MoveParent,
21780
+              OPC_RecordChild1,
21781
+              OPC_CheckType, MVT::v1i64,
21782
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21783
+                  1, MVT::v1i64, 2, 0, 1, 
21784
+            68, 
21785
+              OPC_RecordChild0,
21786
+              OPC_MoveChild, 1,
21787
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21788
+              OPC_Scope, 29, 
21789
+                OPC_RecordChild0,
21790
+                OPC_MoveChild, 1,
21791
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21792
+                OPC_MoveChild, 0,
21793
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21794
+                OPC_CheckPredicate, 64,
21795
+                OPC_CheckType, MVT::v2i32,
21796
+                OPC_MoveParent,
21797
+                OPC_MoveParent,
21798
+                OPC_MoveParent,
21799
+                OPC_CheckType, MVT::v1i64,
21800
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21801
+                    1, MVT::v1i64, 2, 1, 0, 
21802
+              29, 
21803
+                OPC_MoveChild, 0,
21804
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21805
+                OPC_MoveChild, 0,
21806
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21807
+                OPC_CheckPredicate, 64,
21808
+                OPC_CheckType, MVT::v2i32,
21809
+                OPC_MoveParent,
21810
+                OPC_MoveParent,
21811
+                OPC_RecordChild1,
21812
+                OPC_MoveParent,
21813
+                OPC_CheckType, MVT::v1i64,
21814
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21815
+                    1, MVT::v1i64, 2, 1, 0, 
21816
+              0, 
21817
+            87, 
21818
+              OPC_MoveChild, 0,
21819
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21820
+              OPC_Scope, 54, 
21821
+                OPC_RecordChild0,
21822
+                OPC_MoveChild, 1,
21823
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21824
+                OPC_CheckPredicate, 64,
21825
+                OPC_MoveParent,
21826
+                OPC_MoveParent,
21827
+                OPC_RecordChild1,
21828
+                OPC_SwitchType , 26,  MVT::v2i64,
21829
+                  OPC_Scope, 11, 
21830
+                    OPC_CheckPatternPredicate, 0,
21831
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
21832
+                        1, MVT::v2i64, 2, 0, 1, 
21833
+                  11, 
21834
+                    OPC_CheckPatternPredicate, 2,
21835
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21836
+                        1, MVT::v2i64, 2, 0, 1, 
21837
+                  0, 
21838
+                11,  MVT::v1i64,
21839
+                  OPC_CheckPatternPredicate, 9,
21840
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21841
+                      1, MVT::v1i64, 2, 0, 1, 
21842
+                0, 
21843
+              24, 
21844
+                OPC_MoveChild, 0,
21845
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21846
+                OPC_CheckPredicate, 64,
21847
+                OPC_MoveParent,
21848
+                OPC_RecordChild1,
21849
+                OPC_MoveParent,
21850
+                OPC_RecordChild1,
21851
+                OPC_CheckType, MVT::v2i64,
21852
+                OPC_CheckPatternPredicate, 0,
21853
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
21854
+                    1, MVT::v2i64, 2, 0, 1, 
21855
+              0, 
21856
+            56, 
21857
+              OPC_RecordChild0,
21858
+              OPC_MoveChild, 1,
21859
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21860
+              OPC_Scope, 23, 
21861
+                OPC_RecordChild0,
21862
+                OPC_MoveChild, 1,
21863
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21864
+                OPC_CheckPredicate, 64,
21865
+                OPC_MoveParent,
21866
+                OPC_MoveParent,
21867
+                OPC_CheckType, MVT::v2i64,
21868
+                OPC_CheckPatternPredicate, 0,
21869
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
21870
+                    1, MVT::v2i64, 2, 1, 0, 
21871
+              23, 
21872
+                OPC_MoveChild, 0,
21873
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21874
+                OPC_CheckPredicate, 64,
21875
+                OPC_MoveParent,
21876
+                OPC_RecordChild1,
21877
+                OPC_MoveParent,
21878
+                OPC_CheckType, MVT::v2i64,
21879
+                OPC_CheckPatternPredicate, 0,
21880
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
21881
+                    1, MVT::v2i64, 2, 1, 0, 
21882
+              0, 
21883
+            29, 
21884
+              OPC_MoveChild, 0,
21885
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21886
+              OPC_MoveChild, 0,
21887
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21888
+              OPC_CheckPredicate, 64,
21889
+              OPC_MoveParent,
21890
+              OPC_RecordChild1,
21891
+              OPC_MoveParent,
21892
+              OPC_RecordChild1,
21893
+              OPC_CheckType, MVT::v2i64,
21894
+              OPC_CheckPatternPredicate, 2,
21895
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21896
+                  1, MVT::v2i64, 2, 0, 1, 
21897
+            56, 
21898
+              OPC_RecordChild0,
21899
+              OPC_MoveChild, 1,
21900
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21901
+              OPC_Scope, 23, 
21902
+                OPC_RecordChild0,
21903
+                OPC_MoveChild, 1,
21904
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21905
+                OPC_CheckPredicate, 64,
21906
+                OPC_MoveParent,
21907
+                OPC_MoveParent,
21908
+                OPC_CheckType, MVT::v2i64,
21909
+                OPC_CheckPatternPredicate, 2,
21910
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21911
+                    1, MVT::v2i64, 2, 1, 0, 
21912
+              23, 
21913
+                OPC_MoveChild, 0,
21914
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21915
+                OPC_CheckPredicate, 64,
21916
+                OPC_MoveParent,
21917
+                OPC_RecordChild1,
21918
+                OPC_MoveParent,
21919
+                OPC_CheckType, MVT::v2i64,
21920
+                OPC_CheckPatternPredicate, 2,
21921
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
21922
+                    1, MVT::v2i64, 2, 1, 0, 
21923
+              0, 
21924
+            29, 
21925
+              OPC_MoveChild, 0,
21926
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21927
+              OPC_MoveChild, 0,
21928
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21929
+              OPC_CheckPredicate, 64,
21930
+              OPC_MoveParent,
21931
+              OPC_RecordChild1,
21932
+              OPC_MoveParent,
21933
+              OPC_RecordChild1,
21934
+              OPC_CheckType, MVT::v1i64,
21935
+              OPC_CheckPatternPredicate, 9,
21936
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21937
+                  1, MVT::v1i64, 2, 0, 1, 
21938
+            56, 
21939
+              OPC_RecordChild0,
21940
+              OPC_MoveChild, 1,
21941
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
21942
+              OPC_Scope, 23, 
21943
+                OPC_RecordChild0,
21944
+                OPC_MoveChild, 1,
21945
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21946
+                OPC_CheckPredicate, 64,
21947
+                OPC_MoveParent,
21948
+                OPC_MoveParent,
21949
+                OPC_CheckType, MVT::v1i64,
21950
+                OPC_CheckPatternPredicate, 9,
21951
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21952
+                    1, MVT::v1i64, 2, 1, 0, 
21953
+              23, 
21954
+                OPC_MoveChild, 0,
21955
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
21956
+                OPC_CheckPredicate, 64,
21957
+                OPC_MoveParent,
21958
+                OPC_RecordChild1,
21959
+                OPC_MoveParent,
21960
+                OPC_CheckType, MVT::v1i64,
21961
+                OPC_CheckPatternPredicate, 9,
21962
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
21963
+                    1, MVT::v1i64, 2, 1, 0, 
21964
+              0, 
21965
+            31, 
21966
+              OPC_MoveChild, 0,
21967
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21968
+              OPC_RecordChild0,
21969
+              OPC_CheckChild0Type, MVT::v2f64,
21970
+              OPC_MoveParent,
21971
+              OPC_MoveChild, 1,
21972
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
21973
+              OPC_RecordChild0,
21974
+              OPC_CheckChild0Type, MVT::v2f64,
21975
+              OPC_MoveParent,
21976
+              OPC_CheckType, MVT::v2i64,
21977
+              OPC_CheckPatternPredicate, 2,
21978
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrr), 0,
21979
+                  1, MVT::v2i64, 2, 0, 1, 
21980
+            57, 
21981
+              OPC_RecordChild0,
21982
+              OPC_RecordChild1,
21983
+              OPC_SwitchType , 38,  MVT::v2i64,
21984
+                OPC_Scope, 11, 
21985
+                  OPC_CheckPatternPredicate, 1,
21986
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrr), 0,
21987
+                      1, MVT::v2i64, 2, 0, 1, 
21988
+                11, 
21989
+                  OPC_CheckPatternPredicate, 0,
21990
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrr), 0,
21991
+                      1, MVT::v2i64, 2, 0, 1, 
21992
+                11, 
21993
+                  OPC_CheckPatternPredicate, 2,
21994
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrr), 0,
21995
+                      1, MVT::v2i64, 2, 0, 1, 
21996
+                0, 
21997
+              11,  MVT::v1i64,
21998
+                OPC_CheckPatternPredicate, 9,
21999
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrr), 0,
22000
+                    1, MVT::v1i64, 2, 0, 1, 
22001
+              0, 
22002
+            0, 
22003
+          63|128,1,  TARGET_OPCODE(X86ISD::PSHUFD),
22004
+            OPC_Scope, 115, 
22005
+              OPC_MoveChild, 0,
22006
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
22007
+              OPC_MoveChild, 0,
22008
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22009
+              OPC_RecordMemRef,
22010
+              OPC_RecordNode,
22011
+              OPC_CheckFoldableChainNode,
22012
+              OPC_RecordChild1,
22013
+              OPC_CheckPredicate, 2,
22014
+              OPC_CheckPredicate, 3,
22015
+              OPC_CheckPredicate, 19,
22016
+              OPC_SwitchType , 57,  MVT::v2i64,
22017
+                OPC_MoveParent,
22018
+                OPC_MoveParent,
22019
+                OPC_RecordChild1,
22020
+                OPC_MoveChild, 1,
22021
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22022
+                OPC_CheckType, MVT::i8,
22023
+                OPC_MoveParent,
22024
+                OPC_CheckType, MVT::v4i32,
22025
+                OPC_Scope, 21, 
22026
+                  OPC_CheckPatternPredicate, 0,
22027
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22028
+                  OPC_EmitMergeInputChains1_0,
22029
+                  OPC_EmitConvertToTarget, 2,
22030
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
22031
+                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
22032
+                19, 
22033
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22034
+                  OPC_EmitMergeInputChains1_0,
22035
+                  OPC_EmitConvertToTarget, 2,
22036
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
22037
+                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
22038
+                0, 
22039
+              32,  MVT::v4f32,
22040
+                OPC_MoveParent,
22041
+                OPC_MoveParent,
22042
+                OPC_RecordChild1,
22043
+                OPC_MoveChild, 1,
22044
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22045
+                OPC_CheckType, MVT::i8,
22046
+                OPC_MoveParent,
22047
+                OPC_CheckType, MVT::v4i32,
22048
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22049
+                OPC_EmitMergeInputChains1_0,
22050
+                OPC_EmitConvertToTarget, 2,
22051
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
22052
+                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
22053
+              0, 
22054
+            72, 
22055
+              OPC_RecordChild0,
22056
+              OPC_RecordChild1,
22057
+              OPC_MoveChild, 1,
22058
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22059
+              OPC_CheckType, MVT::i8,
22060
+              OPC_MoveParent,
22061
+              OPC_SwitchType , 28,  MVT::v4i32,
22062
+                OPC_Scope, 13, 
22063
+                  OPC_CheckPatternPredicate, 0,
22064
+                  OPC_EmitConvertToTarget, 1,
22065
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
22066
+                      1, MVT::v4i32, 2, 0, 2, 
22067
+                11, 
22068
+                  OPC_EmitConvertToTarget, 1,
22069
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
22070
+                      1, MVT::v4i32, 2, 0, 2, 
22071
+                0, 
22072
+              28,  MVT::v4f32,
22073
+                OPC_Scope, 13, 
22074
+                  OPC_CheckPatternPredicate, 0,
22075
+                  OPC_EmitConvertToTarget, 1,
22076
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
22077
+                      1, MVT::v4f32, 2, 0, 2, 
22078
+                11, 
22079
+                  OPC_EmitConvertToTarget, 1,
22080
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
22081
+                      1, MVT::v4f32, 2, 0, 2, 
22082
+                0, 
22083
+              0, 
22084
+            0, 
22085
+          39|128,2,  TARGET_OPCODE(X86ISD::SHUFPS),
22086
+            OPC_RecordChild0,
22087
+            OPC_Scope, 81, 
22088
+              OPC_MoveChild, 1,
22089
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
22090
+              OPC_MoveChild, 0,
22091
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22092
+              OPC_RecordMemRef,
22093
+              OPC_RecordNode,
22094
+              OPC_CheckFoldableChainNode,
22095
+              OPC_RecordChild1,
22096
+              OPC_CheckPredicate, 2,
22097
+              OPC_CheckPredicate, 3,
22098
+              OPC_CheckPredicate, 19,
22099
+              OPC_CheckType, MVT::v2i64,
22100
+              OPC_MoveParent,
22101
+              OPC_MoveParent,
22102
+              OPC_RecordChild2,
22103
+              OPC_MoveChild, 2,
22104
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22105
+              OPC_CheckType, MVT::i8,
22106
+              OPC_MoveParent,
22107
+              OPC_CheckType, MVT::v4i32,
22108
+              OPC_Scope, 22, 
22109
+                OPC_CheckPatternPredicate, 0,
22110
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22111
+                OPC_EmitMergeInputChains1_1,
22112
+                OPC_EmitConvertToTarget, 3,
22113
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
22114
+                    1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
22115
+              20, 
22116
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22117
+                OPC_EmitMergeInputChains1_1,
22118
+                OPC_EmitConvertToTarget, 3,
22119
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
22120
+                    1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
22121
+              0, 
22122
+            42, 
22123
+              OPC_RecordChild1,
22124
+              OPC_RecordChild2,
22125
+              OPC_MoveChild, 2,
22126
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22127
+              OPC_CheckType, MVT::i8,
22128
+              OPC_MoveParent,
22129
+              OPC_CheckType, MVT::v4i32,
22130
+              OPC_Scope, 14, 
22131
+                OPC_CheckPatternPredicate, 0,
22132
+                OPC_EmitConvertToTarget, 2,
22133
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
22134
+                    1, MVT::v4i32, 3, 0, 1, 3, 
22135
+              12, 
22136
+                OPC_EmitConvertToTarget, 2,
22137
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
22138
+                    1, MVT::v4i32, 3, 0, 1, 3, 
22139
+              0, 
22140
+            123, 
22141
+              OPC_MoveChild, 1,
22142
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22143
+              OPC_RecordMemRef,
22144
+              OPC_RecordNode,
22145
+              OPC_CheckFoldableChainNode,
22146
+              OPC_RecordChild1,
22147
+              OPC_CheckPredicate, 2,
22148
+              OPC_CheckPredicate, 3,
22149
+              OPC_CheckPredicate, 19,
22150
+              OPC_MoveParent,
22151
+              OPC_RecordChild2,
22152
+              OPC_MoveChild, 2,
22153
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22154
+              OPC_CheckType, MVT::i8,
22155
+              OPC_MoveParent,
22156
+              OPC_SwitchType , 46,  MVT::v2f64,
22157
+                OPC_Scope, 22, 
22158
+                  OPC_CheckPatternPredicate, 0,
22159
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22160
+                  OPC_EmitMergeInputChains1_1,
22161
+                  OPC_EmitConvertToTarget, 3,
22162
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
22163
+                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
22164
+                20, 
22165
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22166
+                  OPC_EmitMergeInputChains1_1,
22167
+                  OPC_EmitConvertToTarget, 3,
22168
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
22169
+                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
22170
+                0, 
22171
+              46,  MVT::v4f32,
22172
+                OPC_Scope, 22, 
22173
+                  OPC_CheckPatternPredicate, 0,
22174
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22175
+                  OPC_EmitMergeInputChains1_1,
22176
+                  OPC_EmitConvertToTarget, 3,
22177
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
22178
+                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
22179
+                20, 
22180
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22181
+                  OPC_EmitMergeInputChains1_1,
22182
+                  OPC_EmitConvertToTarget, 3,
22183
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
22184
+                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
22185
+                0, 
22186
+              0, 
22187
+            42, 
22188
+              OPC_RecordChild1,
22189
+              OPC_RecordChild2,
22190
+              OPC_MoveChild, 2,
22191
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22192
+              OPC_CheckType, MVT::i8,
22193
+              OPC_MoveParent,
22194
+              OPC_CheckType, MVT::v4f32,
22195
+              OPC_Scope, 14, 
22196
+                OPC_CheckPatternPredicate, 0,
22197
+                OPC_EmitConvertToTarget, 2,
22198
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
22199
+                    1, MVT::v4f32, 3, 0, 1, 3, 
22200
+              12, 
22201
+                OPC_EmitConvertToTarget, 2,
22202
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
22203
+                    1, MVT::v4f32, 3, 0, 1, 3, 
22204
+              0, 
22205
+            0, 
22206
+          81,  TARGET_OPCODE(X86ISD::PSHUFHW),
22207
+            OPC_Scope, 54, 
22208
+              OPC_MoveChild, 0,
22209
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
22210
+              OPC_MoveChild, 0,
22211
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22212
+              OPC_RecordMemRef,
22213
+              OPC_RecordNode,
22214
+              OPC_CheckFoldableChainNode,
22215
+              OPC_RecordChild1,
22216
+              OPC_CheckPredicate, 2,
22217
+              OPC_CheckPredicate, 3,
22218
+              OPC_CheckPredicate, 19,
22219
+              OPC_CheckType, MVT::v2i64,
22220
+              OPC_MoveParent,
22221
+              OPC_MoveParent,
22222
+              OPC_RecordChild1,
22223
+              OPC_MoveChild, 1,
22224
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22225
+              OPC_CheckType, MVT::i8,
22226
+              OPC_MoveParent,
22227
+              OPC_CheckType, MVT::v8i16,
22228
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22229
+              OPC_EmitMergeInputChains1_0,
22230
+              OPC_EmitConvertToTarget, 2,
22231
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
22232
+                  1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
22233
+            23, 
22234
+              OPC_RecordChild0,
22235
+              OPC_RecordChild1,
22236
+              OPC_MoveChild, 1,
22237
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22238
+              OPC_CheckType, MVT::i8,
22239
+              OPC_MoveParent,
22240
+              OPC_CheckType, MVT::v8i16,
22241
+              OPC_EmitConvertToTarget, 1,
22242
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
22243
+                  1, MVT::v8i16, 2, 0, 2, 
22244
+            0, 
22245
+          81,  TARGET_OPCODE(X86ISD::PSHUFLW),
22246
+            OPC_Scope, 54, 
22247
+              OPC_MoveChild, 0,
22248
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
22249
+              OPC_MoveChild, 0,
22250
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22251
+              OPC_RecordMemRef,
22252
+              OPC_RecordNode,
22253
+              OPC_CheckFoldableChainNode,
22254
+              OPC_RecordChild1,
22255
+              OPC_CheckPredicate, 2,
22256
+              OPC_CheckPredicate, 3,
22257
+              OPC_CheckPredicate, 19,
22258
+              OPC_CheckType, MVT::v2i64,
22259
+              OPC_MoveParent,
22260
+              OPC_MoveParent,
22261
+              OPC_RecordChild1,
22262
+              OPC_MoveChild, 1,
22263
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22264
+              OPC_CheckType, MVT::i8,
22265
+              OPC_MoveParent,
22266
+              OPC_CheckType, MVT::v8i16,
22267
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22268
+              OPC_EmitMergeInputChains1_0,
22269
+              OPC_EmitConvertToTarget, 2,
22270
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
22271
+                  1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
22272
+            23, 
22273
+              OPC_RecordChild0,
22274
+              OPC_RecordChild1,
22275
+              OPC_MoveChild, 1,
22276
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22277
+              OPC_CheckType, MVT::i8,
22278
+              OPC_MoveParent,
22279
+              OPC_CheckType, MVT::v8i16,
22280
+              OPC_EmitConvertToTarget, 1,
22281
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
22282
+                  1, MVT::v8i16, 2, 0, 2, 
22283
+            0, 
22284
+          78,  TARGET_OPCODE(X86ISD::MMX_PINSRW),
22285
+            OPC_RecordChild0,
22286
+            OPC_Scope, 51, 
22287
+              OPC_MoveChild, 1,
22288
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::ANY_EXTEND),
22289
+              OPC_MoveChild, 0,
22290
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22291
+              OPC_RecordMemRef,
22292
+              OPC_RecordNode,
22293
+              OPC_CheckFoldableChainNode,
22294
+              OPC_RecordChild1,
22295
+              OPC_CheckPredicate, 2,
22296
+              OPC_CheckPredicate, 7,
22297
+              OPC_CheckType, MVT::i16,
22298
+              OPC_MoveParent,
22299
+              OPC_MoveParent,
22300
+              OPC_RecordChild2,
22301
+              OPC_MoveChild, 2,
22302
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22303
+              OPC_MoveParent,
22304
+              OPC_CheckPatternPredicate, 9,
22305
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
22306
+              OPC_EmitMergeInputChains1_1,
22307
+              OPC_EmitConvertToTarget, 3,
22308
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
22309
+                  1, MVT::v4i16, 7, 0, 4, 5, 6, 7, 8, 9, 
22310
+            22, 
22311
+              OPC_RecordChild1,
22312
+              OPC_RecordChild2,
22313
+              OPC_MoveChild, 2,
22314
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
22315
+              OPC_MoveParent,
22316
+              OPC_CheckPatternPredicate, 9,
22317
+              OPC_EmitConvertToTarget, 2,
22318
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PINSRWrri), 0,
22319
+                  1, MVT::v4i16, 3, 0, 1, 3, 
22320
+            0, 
22321
+          88,  TARGET_OPCODE(X86ISD::MOVQ2DQ),
22322
+            OPC_Scope, 75, 
22323
+              OPC_MoveChild, 0,
22324
+              OPC_SwitchOpcode , 41,  TARGET_OPCODE(ISD::BIT_CONVERT),
22325
+                OPC_MoveChild, 0,
22326
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
22327
+                OPC_MoveChild, 0,
22328
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
22329
+                OPC_RecordMemRef,
22330
+                OPC_RecordNode,
22331
+                OPC_CheckFoldableChainNode,
22332
+                OPC_RecordChild1,
22333
+                OPC_CheckPredicate, 2,
22334
+                OPC_CheckPredicate, 8,
22335
+                OPC_CheckType, MVT::i32,
22336
+                OPC_MoveParent,
22337
+                OPC_CheckType, MVT::v2i32,
22338
+                OPC_MoveParent,
22339
+                OPC_MoveParent,
22340
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22341
+                OPC_EmitMergeInputChains1_0,
22342
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
22343
+                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
22344
+              24,  TARGET_OPCODE(ISD::LOAD),
22345
+                OPC_RecordMemRef,
22346
+                OPC_RecordNode,
22347
+                OPC_RecordChild1,
22348
+                OPC_CheckPredicate, 2,
22349
+                OPC_CheckPredicate, 3,
22350
+                OPC_MoveParent,
22351
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
22352
+                OPC_EmitMergeInputChains1_0,
22353
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
22354
+                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
22355
+              0, 
22356
+            9, 
22357
+              OPC_RecordChild0,
22358
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
22359
+                  1, MVT::v2i64, 1, 0, 
22360
+            0, 
19745 22361
           3|128,4,  TARGET_OPCODE(X86ISD::SMUL),
19746 22362
             OPC_Scope, 40|128,1, 
19747 22363
               OPC_MoveChild, 0,
... ...
@@ -20287,7 +24859,7 @@ SDNode *SelectCode(SDNode *N) {
20287 20287
                 OPC_CheckPredicate, 2,
20288 20288
                 OPC_CheckPredicate, 3,
20289 20289
                 OPC_SwitchType , 94,  MVT::v2i64,
20290
-                  OPC_CheckPredicate, 21,
20290
+                  OPC_CheckPredicate, 19,
20291 20291
                   OPC_MoveParent,
20292 20292
                   OPC_MoveParent,
20293 20293
                   OPC_SwitchType , 42,  MVT::v8i16,
... ...
@@ -20342,7 +24914,7 @@ SDNode *SelectCode(SDNode *N) {
20342 20342
               OPC_CheckPredicate, 2,
20343 20343
               OPC_CheckPredicate, 3,
20344 20344
               OPC_SwitchType , 95,  MVT::v2i64,
20345
-                OPC_CheckPredicate, 21,
20345
+                OPC_CheckPredicate, 19,
20346 20346
                 OPC_MoveParent,
20347 20347
                 OPC_MoveParent,
20348 20348
                 OPC_RecordChild1,
... ...
@@ -20415,545 +24987,6 @@ SDNode *SelectCode(SDNode *N) {
20415 20415
                     1, MVT::v4i16, 2, 0, 1, 
20416 20416
               0, 
20417 20417
             0, 
20418
-          33|128,12,  TARGET_OPCODE(ISD::LOAD),
20419
-            OPC_RecordMemRef,
20420
-            OPC_RecordNode,
20421
-            OPC_Scope, 102|128,5, 
20422
-              OPC_RecordChild1,
20423
-              OPC_CheckPredicate, 2,
20424
-              OPC_Scope, 108, 
20425
-                OPC_CheckPredicate, 3,
20426
-                OPC_SwitchType , 40,  MVT::i32,
20427
-                  OPC_Scope, 18, 
20428
-                    OPC_CheckPredicate, 23,
20429
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20430
-                    OPC_EmitMergeInputChains1_0,
20431
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::GS_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
20432
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20433
-                  18, 
20434
-                    OPC_CheckPredicate, 24,
20435
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20436
-                    OPC_EmitMergeInputChains1_0,
20437
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::FS_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
20438
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20439
-                  0, 
20440
-                40,  MVT::i64,
20441
-                  OPC_Scope, 18, 
20442
-                    OPC_CheckPredicate, 23,
20443
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20444
-                    OPC_EmitMergeInputChains1_0,
20445
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64GSrm), 0|OPFL_Chain|OPFL_MemRefs,
20446
-                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20447
-                  18, 
20448
-                    OPC_CheckPredicate, 24,
20449
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20450
-                    OPC_EmitMergeInputChains1_0,
20451
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64FSrm), 0|OPFL_Chain|OPFL_MemRefs,
20452
-                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20453
-                  0, 
20454
-                18,  MVT::i8,
20455
-                  OPC_CheckPredicate, 4,
20456
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20457
-                  OPC_EmitMergeInputChains1_0,
20458
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
20459
-                      1, MVT::i8, 5, 2, 3, 4, 5, 6, 
20460
-                0, 
20461
-              20, 
20462
-                OPC_CheckPredicate, 7,
20463
-                OPC_CheckType, MVT::i16,
20464
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20465
-                OPC_EmitMergeInputChains1_0,
20466
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
20467
-                    1, MVT::i16, 5, 2, 3, 4, 5, 6, 
20468
-              20, 
20469
-                OPC_CheckPredicate, 8,
20470
-                OPC_CheckType, MVT::i32,
20471
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20472
-                OPC_EmitMergeInputChains1_0,
20473
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
20474
-                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20475
-              66, 
20476
-                OPC_CheckPredicate, 25,
20477
-                OPC_Scope, 40, 
20478
-                  OPC_CheckPredicate, 26,
20479
-                  OPC_SwitchType , 16,  MVT::i16,
20480
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20481
-                    OPC_EmitMergeInputChains1_0,
20482
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
20483
-                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
20484
-                  16,  MVT::i32,
20485
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20486
-                    OPC_EmitMergeInputChains1_0,
20487
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
20488
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20489
-                  0, 
20490
-                20, 
20491
-                  OPC_CheckPredicate, 27,
20492
-                  OPC_CheckType, MVT::i32,
20493
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20494
-                  OPC_EmitMergeInputChains1_0,
20495
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
20496
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20497
-                0, 
20498
-              125, 
20499
-                OPC_CheckPredicate, 28,
20500
-                OPC_Scope, 40, 
20501
-                  OPC_CheckPredicate, 29,
20502
-                  OPC_SwitchType , 16,  MVT::i16,
20503
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20504
-                    OPC_EmitMergeInputChains1_0,
20505
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
20506
-                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
20507
-                  16,  MVT::i32,
20508
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20509
-                    OPC_EmitMergeInputChains1_0,
20510
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
20511
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20512
-                  0, 
20513
-                20, 
20514
-                  OPC_CheckPredicate, 30,
20515
-                  OPC_CheckType, MVT::i32,
20516
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20517
-                  OPC_EmitMergeInputChains1_0,
20518
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
20519
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20520
-                58, 
20521
-                  OPC_CheckPredicate, 31,
20522
-                  OPC_SwitchType , 16,  MVT::i8,
20523
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20524
-                    OPC_EmitMergeInputChains1_0,
20525
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
20526
-                        1, MVT::i8, 5, 2, 3, 4, 5, 6, 
20527
-                  16,  MVT::i16,
20528
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20529
-                    OPC_EmitMergeInputChains1_0,
20530
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
20531
-                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
20532
-                  16,  MVT::i32,
20533
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20534
-                    OPC_EmitMergeInputChains1_0,
20535
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
20536
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20537
-                  0, 
20538
-                0, 
20539
-              125, 
20540
-                OPC_CheckPredicate, 32,
20541
-                OPC_Scope, 58, 
20542
-                  OPC_CheckPredicate, 33,
20543
-                  OPC_SwitchType , 16,  MVT::i8,
20544
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20545
-                    OPC_EmitMergeInputChains1_0,
20546
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
20547
-                        1, MVT::i8, 5, 2, 3, 4, 5, 6, 
20548
-                  16,  MVT::i16,
20549
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20550
-                    OPC_EmitMergeInputChains1_0,
20551
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
20552
-                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
20553
-                  16,  MVT::i32,
20554
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20555
-                    OPC_EmitMergeInputChains1_0,
20556
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
20557
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20558
-                  0, 
20559
-                40, 
20560
-                  OPC_CheckPredicate, 34,
20561
-                  OPC_SwitchType , 16,  MVT::i16,
20562
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20563
-                    OPC_EmitMergeInputChains1_0,
20564
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
20565
-                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
20566
-                  16,  MVT::i32,
20567
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20568
-                    OPC_EmitMergeInputChains1_0,
20569
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
20570
-                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20571
-                  0, 
20572
-                20, 
20573
-                  OPC_CheckPredicate, 35,
20574
-                  OPC_CheckType, MVT::i32,
20575
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20576
-                  OPC_EmitMergeInputChains1_0,
20577
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
20578
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20579
-                0, 
20580
-              20, 
20581
-                OPC_CheckPredicate, 3,
20582
-                OPC_CheckType, MVT::i64,
20583
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20584
-                OPC_EmitMergeInputChains1_0,
20585
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
20586
-                    1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20587
-              63, 
20588
-                OPC_CheckPredicate, 25,
20589
-                OPC_CheckType, MVT::i64,
20590
-                OPC_Scope, 18, 
20591
-                  OPC_CheckPredicate, 26,
20592
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20593
-                  OPC_EmitMergeInputChains1_0,
20594
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
20595
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20596
-                18, 
20597
-                  OPC_CheckPredicate, 27,
20598
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20599
-                  OPC_EmitMergeInputChains1_0,
20600
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
20601
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20602
-                18, 
20603
-                  OPC_CheckPredicate, 36,
20604
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20605
-                  OPC_EmitMergeInputChains1_0,
20606
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
20607
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20608
-                0, 
20609
-              82, 
20610
-                OPC_CheckPredicate, 28,
20611
-                OPC_CheckType, MVT::i64,
20612
-                OPC_Scope, 18, 
20613
-                  OPC_CheckPredicate, 29,
20614
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20615
-                  OPC_EmitMergeInputChains1_0,
20616
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
20617
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20618
-                18, 
20619
-                  OPC_CheckPredicate, 30,
20620
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20621
-                  OPC_EmitMergeInputChains1_0,
20622
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
20623
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20624
-                18, 
20625
-                  OPC_CheckPredicate, 37,
20626
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20627
-                  OPC_EmitMergeInputChains1_0,
20628
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
20629
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20630
-                18, 
20631
-                  OPC_CheckPredicate, 31,
20632
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20633
-                  OPC_EmitMergeInputChains1_0,
20634
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
20635
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20636
-                0, 
20637
-              98, 
20638
-                OPC_CheckPredicate, 32,
20639
-                OPC_CheckType, MVT::i64,
20640
-                OPC_Scope, 18, 
20641
-                  OPC_CheckPredicate, 33,
20642
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20643
-                  OPC_EmitMergeInputChains1_0,
20644
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
20645
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20646
-                18, 
20647
-                  OPC_CheckPredicate, 34,
20648
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20649
-                  OPC_EmitMergeInputChains1_0,
20650
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
20651
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20652
-                18, 
20653
-                  OPC_CheckPredicate, 35,
20654
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20655
-                  OPC_EmitMergeInputChains1_0,
20656
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
20657
-                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
20658
-                34, 
20659
-                  OPC_CheckPredicate, 38,
20660
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20661
-                  OPC_EmitMergeInputChains1_0,
20662
-                  OPC_EmitInteger, MVT::i64, 0, 
20663
-                  OPC_EmitNode, TARGET_OPCODE(X86::MOV32rm), 0|OPFL_Chain,
20664
-                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
20665
-                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
20666
-                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
20667
-                      1, MVT::i64, 3, 7, 8, 9, 
20668
-                0, 
20669
-              0, 
20670
-            30, 
20671
-              OPC_MoveChild, 1,
20672
-              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::Wrapper),
20673
-              OPC_RecordChild0,
20674
-              OPC_MoveChild, 0,
20675
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalTLSAddress),
20676
-              OPC_MoveParent,
20677
-              OPC_CheckType, MVT::i64,
20678
-              OPC_MoveParent,
20679
-              OPC_CheckPredicate, 2,
20680
-              OPC_CheckPredicate, 3,
20681
-              OPC_CheckType, MVT::i64,
20682
-              OPC_EmitMergeInputChains1_0,
20683
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
20684
-                  1, MVT::i64, 1, 1, 
20685
-            20|128,6, 
20686
-              OPC_RecordChild1,
20687
-              OPC_CheckPredicate, 2,
20688
-              OPC_Scope, 105, 
20689
-                OPC_CheckPredicate, 3,
20690
-                OPC_CheckPredicate, 4,
20691
-                OPC_SwitchType , 59,  MVT::f64,
20692
-                  OPC_Scope, 18, 
20693
-                    OPC_CheckPatternPredicate, 0,
20694
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20695
-                    OPC_EmitMergeInputChains1_0,
20696
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
20697
-                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20698
-                  18, 
20699
-                    OPC_CheckPatternPredicate, 2,
20700
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20701
-                    OPC_EmitMergeInputChains1_0,
20702
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
20703
-                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20704
-                  18, 
20705
-                    OPC_CheckPatternPredicate, 8,
20706
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20707
-                    OPC_EmitMergeInputChains1_0,
20708
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
20709
-                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20710
-                  0, 
20711
-                18,  MVT::f32,
20712
-                  OPC_CheckPatternPredicate, 7,
20713
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20714
-                  OPC_EmitMergeInputChains1_0,
20715
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
20716
-                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20717
-                16,  MVT::f80,
20718
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20719
-                  OPC_EmitMergeInputChains1_0,
20720
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
20721
-                      1, MVT::f80, 5, 2, 3, 4, 5, 6, 
20722
-                0, 
20723
-              68, 
20724
-                OPC_CheckPredicate, 32,
20725
-                OPC_SwitchType , 20,  MVT::f64,
20726
-                  OPC_CheckPredicate, 39,
20727
-                  OPC_CheckPatternPredicate, 8,
20728
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20729
-                  OPC_EmitMergeInputChains1_0,
20730
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
20731
-                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20732
-                40,  MVT::f80,
20733
-                  OPC_Scope, 18, 
20734
-                    OPC_CheckPredicate, 40,
20735
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20736
-                    OPC_EmitMergeInputChains1_0,
20737
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
20738
-                        1, MVT::f80, 5, 2, 3, 4, 5, 6, 
20739
-                  18, 
20740
-                    OPC_CheckPredicate, 39,
20741
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20742
-                    OPC_EmitMergeInputChains1_0,
20743
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
20744
-                        1, MVT::f80, 5, 2, 3, 4, 5, 6, 
20745
-                  0, 
20746
-                0, 
20747
-              46, 
20748
-                OPC_CheckPredicate, 3,
20749
-                OPC_CheckPredicate, 4,
20750
-                OPC_CheckType, MVT::f32,
20751
-                OPC_Scope, 18, 
20752
-                  OPC_CheckPatternPredicate, 0,
20753
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20754
-                  OPC_EmitMergeInputChains1_0,
20755
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
20756
-                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20757
-                18, 
20758
-                  OPC_CheckPatternPredicate, 1,
20759
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20760
-                  OPC_EmitMergeInputChains1_0,
20761
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
20762
-                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20763
-                0, 
20764
-              24, 
20765
-                OPC_CheckPredicate, 32,
20766
-                OPC_CheckPredicate, 39,
20767
-                OPC_CheckType, MVT::f64,
20768
-                OPC_CheckPatternPredicate, 19,
20769
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20770
-                OPC_EmitMergeInputChains1_0,
20771
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
20772
-                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20773
-              46, 
20774
-                OPC_CheckPredicate, 3,
20775
-                OPC_CheckPredicate, 41,
20776
-                OPC_SwitchType , 18,  MVT::f32,
20777
-                  OPC_CheckPatternPredicate, 1,
20778
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20779
-                  OPC_EmitMergeInputChains1_0,
20780
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20781
-                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20782
-                18,  MVT::f64,
20783
-                  OPC_CheckPatternPredicate, 2,
20784
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20785
-                  OPC_EmitMergeInputChains1_0,
20786
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20787
-                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
20788
-                0, 
20789
-              35, 
20790
-                OPC_CheckPredicate, 32,
20791
-                OPC_CheckPredicate, 39,
20792
-                OPC_CheckType, MVT::f64,
20793
-                OPC_CheckPatternPredicate, 20,
20794
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20795
-                OPC_EmitMergeInputChains1_0,
20796
-                OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
20797
-                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
20798
-                OPC_EmitNode, TARGET_OPCODE(X86::CVTSS2SDrr), 0|OPFL_MemRefs,
20799
-                    1, MVT::f64, 1, 7, 
20800
-                OPC_CompleteMatch, 1, 8, 
20801
-
20802
-              67|128,3, 
20803
-                OPC_CheckPredicate, 3,
20804
-                OPC_SwitchType , 85,  MVT::v4i32,
20805
-                  OPC_Scope, 20, 
20806
-                    OPC_CheckPredicate, 41,
20807
-                    OPC_CheckPatternPredicate, 1,
20808
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20809
-                    OPC_EmitMergeInputChains1_0,
20810
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20811
-                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20812
-                  61, 
20813
-                    OPC_Scope, 18, 
20814
-                      OPC_CheckPatternPredicate, 1,
20815
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20816
-                      OPC_EmitMergeInputChains1_0,
20817
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20818
-                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20819
-                    20, 
20820
-                      OPC_CheckPredicate, 41,
20821
-                      OPC_CheckPatternPredicate, 0,
20822
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20823
-                      OPC_EmitMergeInputChains1_0,
20824
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20825
-                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20826
-                    18, 
20827
-                      OPC_CheckPatternPredicate, 0,
20828
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20829
-                      OPC_EmitMergeInputChains1_0,
20830
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20831
-                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
20832
-                    0, 
20833
-                  0, 
20834
-                82,  MVT::v2i64,
20835
-                  OPC_Scope, 20, 
20836
-                    OPC_CheckPredicate, 41,
20837
-                    OPC_CheckPatternPredicate, 1,
20838
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20839
-                    OPC_EmitMergeInputChains1_0,
20840
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20841
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20842
-                  18, 
20843
-                    OPC_CheckPatternPredicate, 1,
20844
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20845
-                    OPC_EmitMergeInputChains1_0,
20846
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20847
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20848
-                  20, 
20849
-                    OPC_CheckPredicate, 41,
20850
-                    OPC_CheckPatternPredicate, 0,
20851
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20852
-                    OPC_EmitMergeInputChains1_0,
20853
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20854
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20855
-                  18, 
20856
-                    OPC_CheckPatternPredicate, 0,
20857
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20858
-                    OPC_EmitMergeInputChains1_0,
20859
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20860
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
20861
-                  0, 
20862
-                18,  MVT::v1i64,
20863
-                  OPC_CheckPatternPredicate, 9,
20864
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20865
-                  OPC_EmitMergeInputChains1_0,
20866
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
20867
-                      1, MVT::v1i64, 5, 2, 3, 4, 5, 6, 
20868
-                82,  MVT::v4f32,
20869
-                  OPC_Scope, 20, 
20870
-                    OPC_CheckPredicate, 41,
20871
-                    OPC_CheckPatternPredicate, 0,
20872
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20873
-                    OPC_EmitMergeInputChains1_0,
20874
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20875
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20876
-                  18, 
20877
-                    OPC_CheckPatternPredicate, 0,
20878
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20879
-                    OPC_EmitMergeInputChains1_0,
20880
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20881
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20882
-                  20, 
20883
-                    OPC_CheckPredicate, 41,
20884
-                    OPC_CheckPatternPredicate, 1,
20885
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20886
-                    OPC_EmitMergeInputChains1_0,
20887
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20888
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20889
-                  18, 
20890
-                    OPC_CheckPatternPredicate, 1,
20891
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20892
-                    OPC_EmitMergeInputChains1_0,
20893
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
20894
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
20895
-                  0, 
20896
-                82,  MVT::v2f64,
20897
-                  OPC_Scope, 20, 
20898
-                    OPC_CheckPredicate, 41,
20899
-                    OPC_CheckPatternPredicate, 0,
20900
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20901
-                    OPC_EmitMergeInputChains1_0,
20902
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20903
-                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20904
-                  18, 
20905
-                    OPC_CheckPatternPredicate, 0,
20906
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20907
-                    OPC_EmitMergeInputChains1_0,
20908
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20909
-                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20910
-                  20, 
20911
-                    OPC_CheckPredicate, 41,
20912
-                    OPC_CheckPatternPredicate, 2,
20913
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20914
-                    OPC_EmitMergeInputChains1_0,
20915
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20916
-                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20917
-                  18, 
20918
-                    OPC_CheckPatternPredicate, 2,
20919
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20920
-                    OPC_EmitMergeInputChains1_0,
20921
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
20922
-                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
20923
-                  0, 
20924
-                42,  MVT::v8f32,
20925
-                  OPC_Scope, 20, 
20926
-                    OPC_CheckPredicate, 41,
20927
-                    OPC_CheckPatternPredicate, 0,
20928
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20929
-                    OPC_EmitMergeInputChains1_0,
20930
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
20931
-                        1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
20932
-                  18, 
20933
-                    OPC_CheckPatternPredicate, 0,
20934
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20935
-                    OPC_EmitMergeInputChains1_0,
20936
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
20937
-                        1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
20938
-                  0, 
20939
-                42,  MVT::v4f64,
20940
-                  OPC_Scope, 20, 
20941
-                    OPC_CheckPredicate, 41,
20942
-                    OPC_CheckPatternPredicate, 0,
20943
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20944
-                    OPC_EmitMergeInputChains1_0,
20945
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
20946
-                        1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
20947
-                  18, 
20948
-                    OPC_CheckPatternPredicate, 0,
20949
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
20950
-                    OPC_EmitMergeInputChains1_0,
20951
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
20952
-                        1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
20953
-                  0, 
20954
-                0, 
20955
-              0, 
20956
-            0, 
20957 20418
           4|128,1,  TARGET_OPCODE(X86ISD::BSF),
20958 20419
             OPC_Scope, 86, 
20959 20420
               OPC_MoveChild, 0,
... ...
@@ -22423,7 +26456,7 @@ SDNode *SelectCode(SDNode *N) {
22423 22423
                 OPC_CheckPredicate, 2,
22424 22424
                 OPC_CheckPredicate, 3,
22425 22425
                 OPC_SwitchType , 10|128,1,  MVT::v2i64,
22426
-                  OPC_CheckPredicate, 21,
22426
+                  OPC_CheckPredicate, 19,
22427 22427
                   OPC_MoveParent,
22428 22428
                   OPC_MoveParent,
22429 22429
                   OPC_SwitchType , 42,  MVT::v16i8,
... ...
@@ -22505,7 +26538,7 @@ SDNode *SelectCode(SDNode *N) {
22505 22505
               OPC_CheckPredicate, 2,
22506 22506
               OPC_CheckPredicate, 3,
22507 22507
               OPC_SwitchType , 11|128,1,  MVT::v2i64,
22508
-                OPC_CheckPredicate, 21,
22508
+                OPC_CheckPredicate, 19,
22509 22509
                 OPC_MoveParent,
22510 22510
                 OPC_MoveParent,
22511 22511
                 OPC_RecordChild1,
... ...
@@ -22587,7 +26620,7 @@ SDNode *SelectCode(SDNode *N) {
22587 22587
               OPC_CheckPredicate, 2,
22588 22588
               OPC_CheckPredicate, 3,
22589 22589
               OPC_Scope, 47, 
22590
-                OPC_CheckPredicate, 21,
22590
+                OPC_CheckPredicate, 19,
22591 22591
                 OPC_MoveParent,
22592 22592
                 OPC_CheckType, MVT::v2i64,
22593 22593
                 OPC_Scope, 19, 
... ...
@@ -22622,7 +26655,7 @@ SDNode *SelectCode(SDNode *N) {
22622 22622
               OPC_CheckPredicate, 2,
22623 22623
               OPC_CheckPredicate, 3,
22624 22624
               OPC_Scope, 48, 
22625
-                OPC_CheckPredicate, 21,
22625
+                OPC_CheckPredicate, 19,
22626 22626
                 OPC_MoveParent,
22627 22627
                 OPC_RecordChild1,
22628 22628
                 OPC_CheckType, MVT::v2i64,
... ...
@@ -22867,7 +26900,7 @@ SDNode *SelectCode(SDNode *N) {
22867 22867
                   OPC_CheckPredicate, 2,
22868 22868
                   OPC_CheckPredicate, 3,
22869 22869
                   OPC_SwitchType , 10|128,1,  MVT::v2i64,
22870
-                    OPC_CheckPredicate, 21,
22870
+                    OPC_CheckPredicate, 19,
22871 22871
                     OPC_MoveParent,
22872 22872
                     OPC_MoveParent,
22873 22873
                     OPC_SwitchType , 42,  MVT::v16i8,
... ...
@@ -22944,7 +26977,7 @@ SDNode *SelectCode(SDNode *N) {
22944 22944
                   OPC_CheckPredicate, 2,
22945 22945
                   OPC_CheckPredicate, 3,
22946 22946
                   OPC_Scope, 47, 
22947
-                    OPC_CheckPredicate, 21,
22947
+                    OPC_CheckPredicate, 19,
22948 22948
                     OPC_MoveParent,
22949 22949
                     OPC_CheckType, MVT::v2i64,
22950 22950
                     OPC_Scope, 19, 
... ...
@@ -23151,7 +27184,7 @@ SDNode *SelectCode(SDNode *N) {
23151 23151
                 OPC_Scope, 49, 
23152 23152
                   OPC_CheckPredicate, 9,
23153 23153
                   OPC_MoveParent,
23154
-                  OPC_CheckPredicate, 42,
23154
+                  OPC_CheckPredicate, 66,
23155 23155
                   OPC_SwitchType , 12,  MVT::i16,
23156 23156
                     OPC_EmitConvertToTarget, 1,
23157 23157
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri8), 0,
... ...
@@ -23168,14 +27201,14 @@ SDNode *SelectCode(SDNode *N) {
23168 23168
                 19, 
23169 23169
                   OPC_CheckPredicate, 10,
23170 23170
                   OPC_MoveParent,
23171
-                  OPC_CheckPredicate, 42,
23171
+                  OPC_CheckPredicate, 66,
23172 23172
                   OPC_CheckType, MVT::i64,
23173 23173
                   OPC_EmitConvertToTarget, 1,
23174 23174
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0,
23175 23175
                       2, MVT::i64, MVT::i32, 2, 0, 2, 
23176 23176
                 33, 
23177 23177
                   OPC_MoveParent,
23178
-                  OPC_CheckPredicate, 42,
23178
+                  OPC_CheckPredicate, 66,
23179 23179
                   OPC_SwitchType , 12,  MVT::i16,
23180 23180
                     OPC_EmitConvertToTarget, 1,
23181 23181
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri), 0,
... ...
@@ -23187,7 +27220,7 @@ SDNode *SelectCode(SDNode *N) {
23187 23187
                   0, 
23188 23188
                 0, 
23189 23189
               40, 
23190
-                OPC_CheckPredicate, 42,
23190
+                OPC_CheckPredicate, 66,
23191 23191
                 OPC_SwitchType , 10,  MVT::i16,
23192 23192
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rr), 0,
23193 23193
                       2, MVT::i16, MVT::i32, 2, 0, 1, 
... ...
@@ -23272,7 +27305,7 @@ SDNode *SelectCode(SDNode *N) {
23272 23272
                   OPC_RecordChild1,
23273 23273
                   OPC_CheckPredicate, 2,
23274 23274
                   OPC_CheckPredicate, 3,
23275
-                  OPC_CheckPredicate, 21,
23275
+                  OPC_CheckPredicate, 19,
23276 23276
                   OPC_MoveParent,
23277 23277
                   OPC_CheckType, MVT::v2i64,
23278 23278
                   OPC_CheckPatternPredicate, 1,
... ...
@@ -23291,7 +27324,7 @@ SDNode *SelectCode(SDNode *N) {
23291 23291
                   OPC_RecordChild1,
23292 23292
                   OPC_CheckPredicate, 2,
23293 23293
                   OPC_CheckPredicate, 3,
23294
-                  OPC_CheckPredicate, 21,
23294
+                  OPC_CheckPredicate, 19,
23295 23295
                   OPC_MoveParent,
23296 23296
                   OPC_CheckType, MVT::v2i64,
23297 23297
                   OPC_CheckPatternPredicate, 2,
... ...
@@ -23307,7 +27340,7 @@ SDNode *SelectCode(SDNode *N) {
23307 23307
                 OPC_RecordChild1,
23308 23308
                 OPC_CheckPredicate, 2,
23309 23309
                 OPC_CheckPredicate, 3,
23310
-                OPC_CheckPredicate, 21,
23310
+                OPC_CheckPredicate, 19,
23311 23311
                 OPC_MoveParent,
23312 23312
                 OPC_MoveChild, 1,
23313 23313
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
... ...
@@ -23343,7 +27376,7 @@ SDNode *SelectCode(SDNode *N) {
23343 23343
               OPC_CheckPredicate, 2,
23344 23344
               OPC_CheckPredicate, 3,
23345 23345
               OPC_Scope, 47, 
23346
-                OPC_CheckPredicate, 21,
23346
+                OPC_CheckPredicate, 19,
23347 23347
                 OPC_MoveParent,
23348 23348
                 OPC_CheckType, MVT::v2i64,
23349 23349
                 OPC_Scope, 19, 
... ...
@@ -23378,7 +27411,7 @@ SDNode *SelectCode(SDNode *N) {
23378 23378
                 OPC_CheckPredicate, 2,
23379 23379
                 OPC_CheckPredicate, 3,
23380 23380
                 OPC_Scope, 48, 
23381
-                  OPC_CheckPredicate, 21,
23381
+                  OPC_CheckPredicate, 19,
23382 23382
                   OPC_MoveParent,
23383 23383
                   OPC_RecordChild1,
23384 23384
                   OPC_CheckType, MVT::v2i64,
... ...
@@ -23630,7 +27663,7 @@ SDNode *SelectCode(SDNode *N) {
23630 23630
                   OPC_RecordChild1,
23631 23631
                   OPC_CheckPredicate, 2,
23632 23632
                   OPC_CheckPredicate, 3,
23633
-                  OPC_CheckPredicate, 21,
23633
+                  OPC_CheckPredicate, 19,
23634 23634
                   OPC_MoveParent,
23635 23635
                   OPC_CheckType, MVT::v2i64,
23636 23636
                   OPC_CheckPatternPredicate, 1,
... ...
@@ -23649,7 +27682,7 @@ SDNode *SelectCode(SDNode *N) {
23649 23649
                   OPC_RecordChild1,
23650 23650
                   OPC_CheckPredicate, 2,
23651 23651
                   OPC_CheckPredicate, 3,
23652
-                  OPC_CheckPredicate, 21,
23652
+                  OPC_CheckPredicate, 19,
23653 23653
                   OPC_MoveParent,
23654 23654
                   OPC_CheckType, MVT::v2i64,
23655 23655
                   OPC_CheckPatternPredicate, 2,
... ...
@@ -23665,7 +27698,7 @@ SDNode *SelectCode(SDNode *N) {
23665 23665
                 OPC_RecordChild1,
23666 23666
                 OPC_CheckPredicate, 2,
23667 23667
                 OPC_CheckPredicate, 3,
23668
-                OPC_CheckPredicate, 21,
23668
+                OPC_CheckPredicate, 19,
23669 23669
                 OPC_MoveParent,
23670 23670
                 OPC_MoveChild, 1,
23671 23671
                 OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
... ...
@@ -23701,7 +27734,7 @@ SDNode *SelectCode(SDNode *N) {
23701 23701
               OPC_CheckPredicate, 2,
23702 23702
               OPC_CheckPredicate, 3,
23703 23703
               OPC_Scope, 47, 
23704
-                OPC_CheckPredicate, 21,
23704
+                OPC_CheckPredicate, 19,
23705 23705
                 OPC_MoveParent,
23706 23706
                 OPC_CheckType, MVT::v2i64,
23707 23707
                 OPC_Scope, 19, 
... ...
@@ -23736,7 +27769,7 @@ SDNode *SelectCode(SDNode *N) {
23736 23736
                 OPC_CheckPredicate, 2,
23737 23737
                 OPC_CheckPredicate, 3,
23738 23738
                 OPC_Scope, 48, 
23739
-                  OPC_CheckPredicate, 21,
23739
+                  OPC_CheckPredicate, 19,
23740 23740
                   OPC_MoveParent,
23741 23741
                   OPC_RecordChild1,
23742 23742
                   OPC_CheckType, MVT::v2i64,
... ...
@@ -23800,1697 +27833,6 @@ SDNode *SelectCode(SDNode *N) {
23800 23800
                     1, MVT::v1i64, 2, 0, 1, 
23801 23801
               0, 
23802 23802
             0, 
23803
-          97|128,30,  TARGET_OPCODE(ISD::AND),
23804
-            OPC_Scope, 114, 
23805
-              OPC_RecordChild0,
23806
-              OPC_MoveChild, 1,
23807
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
23808
-              OPC_RecordMemRef,
23809
-              OPC_RecordNode,
23810
-              OPC_CheckFoldableChainNode,
23811
-              OPC_RecordChild1,
23812
-              OPC_CheckPredicate, 2,
23813
-              OPC_Scope, 25, 
23814
-                OPC_CheckPredicate, 3,
23815
-                OPC_CheckPredicate, 4,
23816
-                OPC_MoveParent,
23817
-                OPC_CheckType, MVT::i8,
23818
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
23819
-                OPC_EmitMergeInputChains1_1,
23820
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
23821
-                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
23822
-              23, 
23823
-                OPC_CheckPredicate, 7,
23824
-                OPC_MoveParent,
23825
-                OPC_CheckType, MVT::i16,
23826
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
23827
-                OPC_EmitMergeInputChains1_1,
23828
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
23829
-                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
23830
-              23, 
23831
-                OPC_CheckPredicate, 8,
23832
-                OPC_MoveParent,
23833
-                OPC_CheckType, MVT::i32,
23834
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
23835
-                OPC_EmitMergeInputChains1_1,
23836
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
23837
-                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
23838
-              25, 
23839
-                OPC_CheckPredicate, 3,
23840
-                OPC_CheckPredicate, 4,
23841
-                OPC_MoveParent,
23842
-                OPC_CheckType, MVT::i64,
23843
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
23844
-                OPC_EmitMergeInputChains1_1,
23845
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
23846
-                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
23847
-              0, 
23848
-            117, 
23849
-              OPC_MoveChild, 0,
23850
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
23851
-              OPC_RecordMemRef,
23852
-              OPC_RecordNode,
23853
-              OPC_CheckFoldableChainNode,
23854
-              OPC_RecordChild1,
23855
-              OPC_CheckPredicate, 2,
23856
-              OPC_Scope, 26, 
23857
-                OPC_CheckPredicate, 3,
23858
-                OPC_CheckPredicate, 4,
23859
-                OPC_MoveParent,
23860
-                OPC_RecordChild1,
23861
-                OPC_CheckType, MVT::i8,
23862
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
23863
-                OPC_EmitMergeInputChains1_0,
23864
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
23865
-                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
23866
-              24, 
23867
-                OPC_CheckPredicate, 7,
23868
-                OPC_MoveParent,
23869
-                OPC_RecordChild1,
23870
-                OPC_CheckType, MVT::i16,
23871
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
23872
-                OPC_EmitMergeInputChains1_0,
23873
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
23874
-                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
23875
-              24, 
23876
-                OPC_CheckPredicate, 8,
23877
-                OPC_MoveParent,
23878
-                OPC_RecordChild1,
23879
-                OPC_CheckType, MVT::i32,
23880
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
23881
-                OPC_EmitMergeInputChains1_0,
23882
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
23883
-                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
23884
-              26, 
23885
-                OPC_CheckPredicate, 3,
23886
-                OPC_CheckPredicate, 4,
23887
-                OPC_MoveParent,
23888
-                OPC_RecordChild1,
23889
-                OPC_CheckType, MVT::i64,
23890
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
23891
-                OPC_EmitMergeInputChains1_0,
23892
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
23893
-                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
23894
-              0, 
23895
-            17|128,1, 
23896
-              OPC_CheckAndImm, 127|128,1, 
23897
-              OPC_MoveChild, 0,
23898
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::SRL),
23899
-              OPC_RecordChild0,
23900
-              OPC_MoveChild, 1,
23901
-              OPC_CheckInteger, 8, 
23902
-              OPC_CheckType, MVT::i8,
23903
-              OPC_MoveParent,
23904
-              OPC_CheckPredicate, 13,
23905
-              OPC_MoveParent,
23906
-              OPC_SwitchType , 72,  MVT::i32,
23907
-                OPC_Scope, 34, 
23908
-                  OPC_CheckPatternPredicate, 3,
23909
-                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
23910
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
23911
-                      1, MVT::i32, 2, 0, 1, 
23912
-                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
23913
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23914
-                      1, MVT::i8, 2, 2, 3, 
23915
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
23916
-                      1, MVT::i32, 1, 4, 
23917
-                34, 
23918
-                  OPC_CheckPatternPredicate, 4,
23919
-                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
23920
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
23921
-                      1, MVT::i32, 2, 0, 1, 
23922
-                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
23923
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23924
-                      1, MVT::i8, 2, 2, 3, 
23925
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
23926
-                      1, MVT::i32, 1, 4, 
23927
-                0, 
23928
-              48,  MVT::i64,
23929
-                OPC_EmitInteger, MVT::i64, 0, 
23930
-                OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
23931
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
23932
-                    1, MVT::i64, 2, 0, 2, 
23933
-                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
23934
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23935
-                    1, MVT::i8, 2, 3, 4, 
23936
-                OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
23937
-                    1, MVT::i32, 1, 5, 
23938
-                OPC_EmitInteger, MVT::i32, X86::sub_32bit,
23939
-                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
23940
-                    1, MVT::i64, 3, 1, 6, 7, 
23941
-              0, 
23942
-            27, 
23943
-              OPC_CheckAndImm, 127|128,127|128,3, 
23944
-              OPC_RecordChild0,
23945
-              OPC_CheckType, MVT::i32,
23946
-              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
23947
-              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23948
-                  1, MVT::i16, 2, 0, 1, 
23949
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr16), 0,
23950
-                  1, MVT::i32, 1, 2, 
23951
-            29, 
23952
-              OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15, 
23953
-              OPC_RecordChild0,
23954
-              OPC_CheckType, MVT::i64,
23955
-              OPC_EmitInteger, MVT::i32, X86::sub_32bit,
23956
-              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23957
-                  1, MVT::i32, 2, 0, 1, 
23958
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr32), 0,
23959
-                  1, MVT::i64, 1, 2, 
23960
-            27, 
23961
-              OPC_CheckAndImm, 127|128,127|128,3, 
23962
-              OPC_RecordChild0,
23963
-              OPC_CheckType, MVT::i64,
23964
-              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
23965
-              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23966
-                  1, MVT::i16, 2, 0, 1, 
23967
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr16), 0,
23968
-                  1, MVT::i64, 1, 2, 
23969
-            24|128,1, 
23970
-              OPC_CheckAndImm, 127|128,1, 
23971
-              OPC_RecordChild0,
23972
-              OPC_SwitchType , 20,  MVT::i64,
23973
-                OPC_EmitInteger, MVT::i32, X86::sub_8bit,
23974
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23975
-                    1, MVT::i8, 2, 0, 1, 
23976
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr8), 0,
23977
-                    1, MVT::i64, 1, 2, 
23978
-              60,  MVT::i32,
23979
-                OPC_Scope, 22, 
23980
-                  OPC_CheckPatternPredicate, 4,
23981
-                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
23982
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23983
-                      1, MVT::i8, 2, 0, 1, 
23984
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
23985
-                      1, MVT::i32, 1, 2, 
23986
-                34, 
23987
-                  OPC_CheckPatternPredicate, 3,
23988
-                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
23989
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
23990
-                      1, MVT::i32, 2, 0, 1, 
23991
-                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
23992
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
23993
-                      1, MVT::i8, 2, 2, 3, 
23994
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
23995
-                      1, MVT::i32, 1, 4, 
23996
-                0, 
23997
-              60,  MVT::i16,
23998
-                OPC_Scope, 22, 
23999
-                  OPC_CheckPatternPredicate, 4,
24000
-                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
24001
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24002
-                      1, MVT::i8, 2, 0, 1, 
24003
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
24004
-                      1, MVT::i16, 1, 2, 
24005
-                34, 
24006
-                  OPC_CheckPatternPredicate, 3,
24007
-                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
24008
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
24009
-                      1, MVT::i16, 2, 0, 1, 
24010
-                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
24011
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24012
-                      1, MVT::i8, 2, 2, 3, 
24013
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
24014
-                      1, MVT::i16, 1, 4, 
24015
-                0, 
24016
-              0, 
24017
-            98|128,1, 
24018
-              OPC_RecordChild0,
24019
-              OPC_RecordChild1,
24020
-              OPC_Scope, 40|128,1, 
24021
-                OPC_MoveChild, 1,
24022
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
24023
-                OPC_Scope, 47, 
24024
-                  OPC_CheckPredicate, 9,
24025
-                  OPC_MoveParent,
24026
-                  OPC_SwitchType , 12,  MVT::i16,
24027
-                    OPC_EmitConvertToTarget, 1,
24028
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri8), 0,
24029
-                        2, MVT::i16, MVT::i32, 2, 0, 2, 
24030
-                  12,  MVT::i32,
24031
-                    OPC_EmitConvertToTarget, 1,
24032
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri8), 0,
24033
-                        2, MVT::i32, MVT::i32, 2, 0, 2, 
24034
-                  12,  MVT::i64,
24035
-                    OPC_EmitConvertToTarget, 1,
24036
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri8), 0,
24037
-                        2, MVT::i64, MVT::i32, 2, 0, 2, 
24038
-                  0, 
24039
-                17, 
24040
-                  OPC_CheckPredicate, 10,
24041
-                  OPC_MoveParent,
24042
-                  OPC_CheckType, MVT::i64,
24043
-                  OPC_EmitConvertToTarget, 1,
24044
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri32), 0,
24045
-                      2, MVT::i64, MVT::i32, 2, 0, 2, 
24046
-                48, 
24047
-                  OPC_CheckPredicate, 43,
24048
-                  OPC_MoveParent,
24049
-                  OPC_CheckType, MVT::i64,
24050
-                  OPC_EmitInteger, MVT::i64, 0, 
24051
-                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
24052
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
24053
-                      1, MVT::i32, 2, 0, 3, 
24054
-                  OPC_EmitConvertToTarget, 1,
24055
-                  OPC_EmitNodeXForm, 1, 5,
24056
-                  OPC_EmitNode, TARGET_OPCODE(X86::AND32ri), 0,
24057
-                      2, MVT::i32, MVT::i32, 2, 4, 6, 
24058
-                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
24059
-                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
24060
-                      1, MVT::i64, 3, 2, 7, 9, 
24061
-                45, 
24062
-                  OPC_MoveParent,
24063
-                  OPC_SwitchType , 12,  MVT::i8,
24064
-                    OPC_EmitConvertToTarget, 1,
24065
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8ri), 0,
24066
-                        2, MVT::i8, MVT::i32, 2, 0, 2, 
24067
-                  12,  MVT::i16,
24068
-                    OPC_EmitConvertToTarget, 1,
24069
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri), 0,
24070
-                        2, MVT::i16, MVT::i32, 2, 0, 2, 
24071
-                  12,  MVT::i32,
24072
-                    OPC_EmitConvertToTarget, 1,
24073
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri), 0,
24074
-                        2, MVT::i32, MVT::i32, 2, 0, 2, 
24075
-                  0, 
24076
-                0, 
24077
-              12, 
24078
-                OPC_CheckType, MVT::i8,
24079
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rr), 0,
24080
-                    2, MVT::i8, MVT::i32, 2, 0, 1, 
24081
-              12, 
24082
-                OPC_CheckType, MVT::i16,
24083
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rr), 0,
24084
-                    2, MVT::i16, MVT::i32, 2, 0, 1, 
24085
-              12, 
24086
-                OPC_CheckType, MVT::i32,
24087
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rr), 0,
24088
-                    2, MVT::i32, MVT::i32, 2, 0, 1, 
24089
-              12, 
24090
-                OPC_CheckType, MVT::i64,
24091
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rr), 0,
24092
-                    2, MVT::i64, MVT::i32, 2, 0, 1, 
24093
-              0, 
24094
-            22|128,13, 
24095
-              OPC_MoveChild, 0,
24096
-              OPC_SwitchOpcode , 27|128,6,  TARGET_OPCODE(ISD::XOR),
24097
-                OPC_Scope, 48|128,1, 
24098
-                  OPC_MoveChild, 0,
24099
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24100
-                  OPC_Scope, 58, 
24101
-                    OPC_RecordChild0,
24102
-                    OPC_CheckChild0Type, MVT::v4f32,
24103
-                    OPC_MoveParent,
24104
-                    OPC_MoveChild, 1,
24105
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24106
-                    OPC_MoveChild, 0,
24107
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24108
-                    OPC_CheckPredicate, 44,
24109
-                    OPC_CheckType, MVT::v4i32,
24110
-                    OPC_MoveParent,
24111
-                    OPC_MoveParent,
24112
-                    OPC_MoveParent,
24113
-                    OPC_MoveChild, 1,
24114
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24115
-                    OPC_RecordMemRef,
24116
-                    OPC_RecordNode,
24117
-                    OPC_CheckFoldableChainNode,
24118
-                    OPC_RecordChild1,
24119
-                    OPC_CheckPredicate, 2,
24120
-                    OPC_CheckPredicate, 3,
24121
-                    OPC_CheckPredicate, 21,
24122
-                    OPC_MoveParent,
24123
-                    OPC_CheckType, MVT::v2i64,
24124
-                    OPC_CheckPatternPredicate, 1,
24125
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24126
-                    OPC_EmitMergeInputChains1_1,
24127
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
24128
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24129
-                  58, 
24130
-                    OPC_MoveChild, 0,
24131
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24132
-                    OPC_CheckPredicate, 44,
24133
-                    OPC_CheckType, MVT::v4i32,
24134
-                    OPC_MoveParent,
24135
-                    OPC_MoveParent,
24136
-                    OPC_MoveChild, 1,
24137
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24138
-                    OPC_RecordChild0,
24139
-                    OPC_CheckChild0Type, MVT::v4f32,
24140
-                    OPC_MoveParent,
24141
-                    OPC_MoveParent,
24142
-                    OPC_MoveChild, 1,
24143
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24144
-                    OPC_RecordMemRef,
24145
-                    OPC_RecordNode,
24146
-                    OPC_CheckFoldableChainNode,
24147
-                    OPC_RecordChild1,
24148
-                    OPC_CheckPredicate, 2,
24149
-                    OPC_CheckPredicate, 3,
24150
-                    OPC_CheckPredicate, 21,
24151
-                    OPC_MoveParent,
24152
-                    OPC_CheckType, MVT::v2i64,
24153
-                    OPC_CheckPatternPredicate, 1,
24154
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24155
-                    OPC_EmitMergeInputChains1_1,
24156
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
24157
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24158
-                  50, 
24159
-                    OPC_RecordChild0,
24160
-                    OPC_CheckChild0Type, MVT::v2f64,
24161
-                    OPC_MoveParent,
24162
-                    OPC_MoveChild, 1,
24163
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24164
-                    OPC_CheckPredicate, 44,
24165
-                    OPC_MoveParent,
24166
-                    OPC_MoveParent,
24167
-                    OPC_MoveChild, 1,
24168
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24169
-                    OPC_RecordMemRef,
24170
-                    OPC_RecordNode,
24171
-                    OPC_CheckFoldableChainNode,
24172
-                    OPC_RecordChild1,
24173
-                    OPC_CheckPredicate, 2,
24174
-                    OPC_CheckPredicate, 3,
24175
-                    OPC_CheckPredicate, 21,
24176
-                    OPC_MoveParent,
24177
-                    OPC_CheckType, MVT::v2i64,
24178
-                    OPC_CheckPatternPredicate, 2,
24179
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24180
-                    OPC_EmitMergeInputChains1_1,
24181
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
24182
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24183
-                  0, 
24184
-                51|128,1, 
24185
-                  OPC_RecordChild0,
24186
-                  OPC_MoveChild, 1,
24187
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24188
-                  OPC_MoveChild, 0,
24189
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24190
-                  OPC_CheckPredicate, 44,
24191
-                  OPC_SwitchType , 40,  MVT::v4i32,
24192
-                    OPC_MoveParent,
24193
-                    OPC_MoveParent,
24194
-                    OPC_MoveParent,
24195
-                    OPC_MoveChild, 1,
24196
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24197
-                    OPC_RecordMemRef,
24198
-                    OPC_RecordNode,
24199
-                    OPC_CheckFoldableChainNode,
24200
-                    OPC_RecordChild1,
24201
-                    OPC_CheckPredicate, 2,
24202
-                    OPC_CheckPredicate, 3,
24203
-                    OPC_CheckPredicate, 21,
24204
-                    OPC_MoveParent,
24205
-                    OPC_CheckType, MVT::v2i64,
24206
-                    OPC_CheckPatternPredicate, 2,
24207
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24208
-                    OPC_EmitMergeInputChains1_1,
24209
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24210
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24211
-                  40,  MVT::v8i16,
24212
-                    OPC_MoveParent,
24213
-                    OPC_MoveParent,
24214
-                    OPC_MoveParent,
24215
-                    OPC_MoveChild, 1,
24216
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24217
-                    OPC_RecordMemRef,
24218
-                    OPC_RecordNode,
24219
-                    OPC_CheckFoldableChainNode,
24220
-                    OPC_RecordChild1,
24221
-                    OPC_CheckPredicate, 2,
24222
-                    OPC_CheckPredicate, 3,
24223
-                    OPC_CheckPredicate, 21,
24224
-                    OPC_MoveParent,
24225
-                    OPC_CheckType, MVT::v2i64,
24226
-                    OPC_CheckPatternPredicate, 2,
24227
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24228
-                    OPC_EmitMergeInputChains1_1,
24229
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24230
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24231
-                  40,  MVT::v16i8,
24232
-                    OPC_MoveParent,
24233
-                    OPC_MoveParent,
24234
-                    OPC_MoveParent,
24235
-                    OPC_MoveChild, 1,
24236
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24237
-                    OPC_RecordMemRef,
24238
-                    OPC_RecordNode,
24239
-                    OPC_CheckFoldableChainNode,
24240
-                    OPC_RecordChild1,
24241
-                    OPC_CheckPredicate, 2,
24242
-                    OPC_CheckPredicate, 3,
24243
-                    OPC_CheckPredicate, 21,
24244
-                    OPC_MoveParent,
24245
-                    OPC_CheckType, MVT::v2i64,
24246
-                    OPC_CheckPatternPredicate, 2,
24247
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24248
-                    OPC_EmitMergeInputChains1_1,
24249
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24250
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24251
-                  36,  MVT::v2i32,
24252
-                    OPC_MoveParent,
24253
-                    OPC_MoveParent,
24254
-                    OPC_MoveParent,
24255
-                    OPC_MoveChild, 1,
24256
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24257
-                    OPC_RecordMemRef,
24258
-                    OPC_RecordNode,
24259
-                    OPC_CheckFoldableChainNode,
24260
-                    OPC_RecordChild1,
24261
-                    OPC_CheckPredicate, 2,
24262
-                    OPC_CheckPredicate, 3,
24263
-                    OPC_MoveParent,
24264
-                    OPC_CheckType, MVT::v1i64,
24265
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24266
-                    OPC_EmitMergeInputChains1_1,
24267
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24268
-                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
24269
-                  0, 
24270
-                110|128,1, 
24271
-                  OPC_MoveChild, 0,
24272
-                  OPC_SwitchOpcode , 50,  TARGET_OPCODE(ISD::BUILD_VECTOR),
24273
-                    OPC_CheckPredicate, 44,
24274
-                    OPC_MoveParent,
24275
-                    OPC_MoveChild, 1,
24276
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24277
-                    OPC_RecordChild0,
24278
-                    OPC_CheckChild0Type, MVT::v2f64,
24279
-                    OPC_MoveParent,
24280
-                    OPC_MoveParent,
24281
-                    OPC_MoveChild, 1,
24282
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24283
-                    OPC_RecordMemRef,
24284
-                    OPC_RecordNode,
24285
-                    OPC_CheckFoldableChainNode,
24286
-                    OPC_RecordChild1,
24287
-                    OPC_CheckPredicate, 2,
24288
-                    OPC_CheckPredicate, 3,
24289
-                    OPC_CheckPredicate, 21,
24290
-                    OPC_MoveParent,
24291
-                    OPC_CheckType, MVT::v2i64,
24292
-                    OPC_CheckPatternPredicate, 2,
24293
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24294
-                    OPC_EmitMergeInputChains1_1,
24295
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
24296
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24297
-                  49|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
24298
-                    OPC_MoveChild, 0,
24299
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24300
-                    OPC_CheckPredicate, 44,
24301
-                    OPC_SwitchType , 41,  MVT::v4i32,
24302
-                      OPC_MoveParent,
24303
-                      OPC_MoveParent,
24304
-                      OPC_RecordChild1,
24305
-                      OPC_MoveParent,
24306
-                      OPC_MoveChild, 1,
24307
-                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24308
-                      OPC_RecordMemRef,
24309
-                      OPC_RecordNode,
24310
-                      OPC_CheckFoldableChainNode,
24311
-                      OPC_RecordChild1,
24312
-                      OPC_CheckPredicate, 2,
24313
-                      OPC_CheckPredicate, 3,
24314
-                      OPC_CheckPredicate, 21,
24315
-                      OPC_MoveParent,
24316
-                      OPC_CheckType, MVT::v2i64,
24317
-                      OPC_CheckPatternPredicate, 2,
24318
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24319
-                      OPC_EmitMergeInputChains1_1,
24320
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24321
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24322
-                    41,  MVT::v8i16,
24323
-                      OPC_MoveParent,
24324
-                      OPC_MoveParent,
24325
-                      OPC_RecordChild1,
24326
-                      OPC_MoveParent,
24327
-                      OPC_MoveChild, 1,
24328
-                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24329
-                      OPC_RecordMemRef,
24330
-                      OPC_RecordNode,
24331
-                      OPC_CheckFoldableChainNode,
24332
-                      OPC_RecordChild1,
24333
-                      OPC_CheckPredicate, 2,
24334
-                      OPC_CheckPredicate, 3,
24335
-                      OPC_CheckPredicate, 21,
24336
-                      OPC_MoveParent,
24337
-                      OPC_CheckType, MVT::v2i64,
24338
-                      OPC_CheckPatternPredicate, 2,
24339
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24340
-                      OPC_EmitMergeInputChains1_1,
24341
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24342
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24343
-                    41,  MVT::v16i8,
24344
-                      OPC_MoveParent,
24345
-                      OPC_MoveParent,
24346
-                      OPC_RecordChild1,
24347
-                      OPC_MoveParent,
24348
-                      OPC_MoveChild, 1,
24349
-                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24350
-                      OPC_RecordMemRef,
24351
-                      OPC_RecordNode,
24352
-                      OPC_CheckFoldableChainNode,
24353
-                      OPC_RecordChild1,
24354
-                      OPC_CheckPredicate, 2,
24355
-                      OPC_CheckPredicate, 3,
24356
-                      OPC_CheckPredicate, 21,
24357
-                      OPC_MoveParent,
24358
-                      OPC_CheckType, MVT::v2i64,
24359
-                      OPC_CheckPatternPredicate, 2,
24360
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24361
-                      OPC_EmitMergeInputChains1_1,
24362
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24363
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24364
-                    37,  MVT::v2i32,
24365
-                      OPC_MoveParent,
24366
-                      OPC_MoveParent,
24367
-                      OPC_RecordChild1,
24368
-                      OPC_MoveParent,
24369
-                      OPC_MoveChild, 1,
24370
-                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24371
-                      OPC_RecordMemRef,
24372
-                      OPC_RecordNode,
24373
-                      OPC_CheckFoldableChainNode,
24374
-                      OPC_RecordChild1,
24375
-                      OPC_CheckPredicate, 2,
24376
-                      OPC_CheckPredicate, 3,
24377
-                      OPC_MoveParent,
24378
-                      OPC_CheckType, MVT::v1i64,
24379
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24380
-                      OPC_EmitMergeInputChains1_1,
24381
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24382
-                          1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
24383
-                    0, 
24384
-                  0, 
24385
-                96, 
24386
-                  OPC_RecordChild0,
24387
-                  OPC_MoveChild, 1,
24388
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24389
-                  OPC_CheckPredicate, 44,
24390
-                  OPC_MoveParent,
24391
-                  OPC_MoveParent,
24392
-                  OPC_MoveChild, 1,
24393
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24394
-                  OPC_RecordMemRef,
24395
-                  OPC_RecordNode,
24396
-                  OPC_CheckFoldableChainNode,
24397
-                  OPC_RecordChild1,
24398
-                  OPC_CheckPredicate, 2,
24399
-                  OPC_CheckPredicate, 3,
24400
-                  OPC_Scope, 47, 
24401
-                    OPC_CheckPredicate, 21,
24402
-                    OPC_MoveParent,
24403
-                    OPC_CheckType, MVT::v2i64,
24404
-                    OPC_Scope, 19, 
24405
-                      OPC_CheckPatternPredicate, 0,
24406
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24407
-                      OPC_EmitMergeInputChains1_1,
24408
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24409
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24410
-                    19, 
24411
-                      OPC_CheckPatternPredicate, 2,
24412
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24413
-                      OPC_EmitMergeInputChains1_1,
24414
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24415
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24416
-                    0, 
24417
-                  22, 
24418
-                    OPC_MoveParent,
24419
-                    OPC_CheckType, MVT::v1i64,
24420
-                    OPC_CheckPatternPredicate, 9,
24421
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24422
-                    OPC_EmitMergeInputChains1_1,
24423
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24424
-                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
24425
-                  0, 
24426
-                96, 
24427
-                  OPC_MoveChild, 0,
24428
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24429
-                  OPC_CheckPredicate, 44,
24430
-                  OPC_MoveParent,
24431
-                  OPC_RecordChild1,
24432
-                  OPC_MoveParent,
24433
-                  OPC_MoveChild, 1,
24434
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24435
-                  OPC_RecordMemRef,
24436
-                  OPC_RecordNode,
24437
-                  OPC_CheckFoldableChainNode,
24438
-                  OPC_RecordChild1,
24439
-                  OPC_CheckPredicate, 2,
24440
-                  OPC_CheckPredicate, 3,
24441
-                  OPC_Scope, 47, 
24442
-                    OPC_CheckPredicate, 21,
24443
-                    OPC_MoveParent,
24444
-                    OPC_CheckType, MVT::v2i64,
24445
-                    OPC_Scope, 19, 
24446
-                      OPC_CheckPatternPredicate, 0,
24447
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24448
-                      OPC_EmitMergeInputChains1_1,
24449
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24450
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24451
-                    19, 
24452
-                      OPC_CheckPatternPredicate, 2,
24453
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24454
-                      OPC_EmitMergeInputChains1_1,
24455
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24456
-                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24457
-                    0, 
24458
-                  22, 
24459
-                    OPC_MoveParent,
24460
-                    OPC_CheckType, MVT::v1i64,
24461
-                    OPC_CheckPatternPredicate, 9,
24462
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24463
-                    OPC_EmitMergeInputChains1_1,
24464
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24465
-                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
24466
-                  0, 
24467
-                0, 
24468
-              23|128,6,  TARGET_OPCODE(ISD::LOAD),
24469
-                OPC_RecordMemRef,
24470
-                OPC_RecordNode,
24471
-                OPC_CheckFoldableChainNode,
24472
-                OPC_RecordChild1,
24473
-                OPC_CheckPredicate, 2,
24474
-                OPC_CheckPredicate, 3,
24475
-                OPC_Scope, 35|128,3, 
24476
-                  OPC_CheckPredicate, 21,
24477
-                  OPC_MoveParent,
24478
-                  OPC_MoveChild, 1,
24479
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
24480
-                  OPC_Scope, 39|128,1, 
24481
-                    OPC_MoveChild, 0,
24482
-                    OPC_SwitchOpcode , 123,  TARGET_OPCODE(ISD::BIT_CONVERT),
24483
-                      OPC_Scope, 42, 
24484
-                        OPC_RecordChild0,
24485
-                        OPC_CheckChild0Type, MVT::v4f32,
24486
-                        OPC_MoveParent,
24487
-                        OPC_MoveChild, 1,
24488
-                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24489
-                        OPC_MoveChild, 0,
24490
-                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24491
-                        OPC_CheckPredicate, 44,
24492
-                        OPC_CheckType, MVT::v4i32,
24493
-                        OPC_MoveParent,
24494
-                        OPC_MoveParent,
24495
-                        OPC_MoveParent,
24496
-                        OPC_CheckType, MVT::v2i64,
24497
-                        OPC_CheckPatternPredicate, 1,
24498
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24499
-                        OPC_EmitMergeInputChains1_0,
24500
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
24501
-                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24502
-                      42, 
24503
-                        OPC_MoveChild, 0,
24504
-                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24505
-                        OPC_CheckPredicate, 44,
24506
-                        OPC_CheckType, MVT::v4i32,
24507
-                        OPC_MoveParent,
24508
-                        OPC_MoveParent,
24509
-                        OPC_MoveChild, 1,
24510
-                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24511
-                        OPC_RecordChild0,
24512
-                        OPC_CheckChild0Type, MVT::v4f32,
24513
-                        OPC_MoveParent,
24514
-                        OPC_MoveParent,
24515
-                        OPC_CheckType, MVT::v2i64,
24516
-                        OPC_CheckPatternPredicate, 1,
24517
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24518
-                        OPC_EmitMergeInputChains1_0,
24519
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
24520
-                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24521
-                      34, 
24522
-                        OPC_RecordChild0,
24523
-                        OPC_CheckChild0Type, MVT::v2f64,
24524
-                        OPC_MoveParent,
24525
-                        OPC_MoveChild, 1,
24526
-                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24527
-                        OPC_CheckPredicate, 44,
24528
-                        OPC_MoveParent,
24529
-                        OPC_MoveParent,
24530
-                        OPC_CheckType, MVT::v2i64,
24531
-                        OPC_CheckPatternPredicate, 2,
24532
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24533
-                        OPC_EmitMergeInputChains1_0,
24534
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
24535
-                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24536
-                      0, 
24537
-                    34,  TARGET_OPCODE(ISD::BUILD_VECTOR),
24538
-                      OPC_CheckPredicate, 44,
24539
-                      OPC_MoveParent,
24540
-                      OPC_MoveChild, 1,
24541
-                      OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24542
-                      OPC_RecordChild0,
24543
-                      OPC_CheckChild0Type, MVT::v2f64,
24544
-                      OPC_MoveParent,
24545
-                      OPC_MoveParent,
24546
-                      OPC_CheckType, MVT::v2i64,
24547
-                      OPC_CheckPatternPredicate, 2,
24548
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24549
-                      OPC_EmitMergeInputChains1_0,
24550
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
24551
-                          1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24552
-                    0, 
24553
-                  39, 
24554
-                    OPC_RecordChild0,
24555
-                    OPC_MoveChild, 1,
24556
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24557
-                    OPC_MoveChild, 0,
24558
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24559
-                    OPC_CheckPredicate, 44,
24560
-                    OPC_CheckType, MVT::v4i32,
24561
-                    OPC_MoveParent,
24562
-                    OPC_MoveParent,
24563
-                    OPC_MoveParent,
24564
-                    OPC_CheckType, MVT::v2i64,
24565
-                    OPC_CheckPatternPredicate, 2,
24566
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24567
-                    OPC_EmitMergeInputChains1_0,
24568
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24569
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24570
-                  39, 
24571
-                    OPC_MoveChild, 0,
24572
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24573
-                    OPC_MoveChild, 0,
24574
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24575
-                    OPC_CheckPredicate, 44,
24576
-                    OPC_CheckType, MVT::v4i32,
24577
-                    OPC_MoveParent,
24578
-                    OPC_MoveParent,
24579
-                    OPC_RecordChild1,
24580
-                    OPC_MoveParent,
24581
-                    OPC_CheckType, MVT::v2i64,
24582
-                    OPC_CheckPatternPredicate, 2,
24583
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24584
-                    OPC_EmitMergeInputChains1_0,
24585
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24586
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24587
-                  39, 
24588
-                    OPC_RecordChild0,
24589
-                    OPC_MoveChild, 1,
24590
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24591
-                    OPC_MoveChild, 0,
24592
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24593
-                    OPC_CheckPredicate, 44,
24594
-                    OPC_CheckType, MVT::v8i16,
24595
-                    OPC_MoveParent,
24596
-                    OPC_MoveParent,
24597
-                    OPC_MoveParent,
24598
-                    OPC_CheckType, MVT::v2i64,
24599
-                    OPC_CheckPatternPredicate, 2,
24600
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24601
-                    OPC_EmitMergeInputChains1_0,
24602
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24603
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24604
-                  39, 
24605
-                    OPC_MoveChild, 0,
24606
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24607
-                    OPC_MoveChild, 0,
24608
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24609
-                    OPC_CheckPredicate, 44,
24610
-                    OPC_CheckType, MVT::v8i16,
24611
-                    OPC_MoveParent,
24612
-                    OPC_MoveParent,
24613
-                    OPC_RecordChild1,
24614
-                    OPC_MoveParent,
24615
-                    OPC_CheckType, MVT::v2i64,
24616
-                    OPC_CheckPatternPredicate, 2,
24617
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24618
-                    OPC_EmitMergeInputChains1_0,
24619
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24620
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24621
-                  39, 
24622
-                    OPC_RecordChild0,
24623
-                    OPC_MoveChild, 1,
24624
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24625
-                    OPC_MoveChild, 0,
24626
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24627
-                    OPC_CheckPredicate, 44,
24628
-                    OPC_CheckType, MVT::v16i8,
24629
-                    OPC_MoveParent,
24630
-                    OPC_MoveParent,
24631
-                    OPC_MoveParent,
24632
-                    OPC_CheckType, MVT::v2i64,
24633
-                    OPC_CheckPatternPredicate, 2,
24634
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24635
-                    OPC_EmitMergeInputChains1_0,
24636
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24637
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24638
-                  39, 
24639
-                    OPC_MoveChild, 0,
24640
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24641
-                    OPC_MoveChild, 0,
24642
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24643
-                    OPC_CheckPredicate, 44,
24644
-                    OPC_CheckType, MVT::v16i8,
24645
-                    OPC_MoveParent,
24646
-                    OPC_MoveParent,
24647
-                    OPC_RecordChild1,
24648
-                    OPC_MoveParent,
24649
-                    OPC_CheckType, MVT::v2i64,
24650
-                    OPC_CheckPatternPredicate, 2,
24651
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24652
-                    OPC_EmitMergeInputChains1_0,
24653
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24654
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24655
-                  0, 
24656
-                84, 
24657
-                  OPC_MoveParent,
24658
-                  OPC_MoveChild, 1,
24659
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
24660
-                  OPC_Scope, 37, 
24661
-                    OPC_RecordChild0,
24662
-                    OPC_MoveChild, 1,
24663
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24664
-                    OPC_MoveChild, 0,
24665
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24666
-                    OPC_CheckPredicate, 44,
24667
-                    OPC_CheckType, MVT::v2i32,
24668
-                    OPC_MoveParent,
24669
-                    OPC_MoveParent,
24670
-                    OPC_MoveParent,
24671
-                    OPC_CheckType, MVT::v1i64,
24672
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24673
-                    OPC_EmitMergeInputChains1_0,
24674
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24675
-                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
24676
-                  37, 
24677
-                    OPC_MoveChild, 0,
24678
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24679
-                    OPC_MoveChild, 0,
24680
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24681
-                    OPC_CheckPredicate, 44,
24682
-                    OPC_CheckType, MVT::v2i32,
24683
-                    OPC_MoveParent,
24684
-                    OPC_MoveParent,
24685
-                    OPC_RecordChild1,
24686
-                    OPC_MoveParent,
24687
-                    OPC_CheckType, MVT::v1i64,
24688
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24689
-                    OPC_EmitMergeInputChains1_0,
24690
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24691
-                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
24692
-                  0, 
24693
-                10|128,1, 
24694
-                  OPC_CheckPredicate, 21,
24695
-                  OPC_MoveParent,
24696
-                  OPC_MoveChild, 1,
24697
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
24698
-                  OPC_Scope, 31, 
24699
-                    OPC_RecordChild0,
24700
-                    OPC_MoveChild, 1,
24701
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24702
-                    OPC_CheckPredicate, 44,
24703
-                    OPC_MoveParent,
24704
-                    OPC_MoveParent,
24705
-                    OPC_CheckType, MVT::v2i64,
24706
-                    OPC_CheckPatternPredicate, 0,
24707
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24708
-                    OPC_EmitMergeInputChains1_0,
24709
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24710
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24711
-                  31, 
24712
-                    OPC_MoveChild, 0,
24713
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24714
-                    OPC_CheckPredicate, 44,
24715
-                    OPC_MoveParent,
24716
-                    OPC_RecordChild1,
24717
-                    OPC_MoveParent,
24718
-                    OPC_CheckType, MVT::v2i64,
24719
-                    OPC_CheckPatternPredicate, 0,
24720
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24721
-                    OPC_EmitMergeInputChains1_0,
24722
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24723
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24724
-                  31, 
24725
-                    OPC_RecordChild0,
24726
-                    OPC_MoveChild, 1,
24727
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24728
-                    OPC_CheckPredicate, 44,
24729
-                    OPC_MoveParent,
24730
-                    OPC_MoveParent,
24731
-                    OPC_CheckType, MVT::v2i64,
24732
-                    OPC_CheckPatternPredicate, 2,
24733
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24734
-                    OPC_EmitMergeInputChains1_0,
24735
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24736
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24737
-                  31, 
24738
-                    OPC_MoveChild, 0,
24739
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24740
-                    OPC_CheckPredicate, 44,
24741
-                    OPC_MoveParent,
24742
-                    OPC_RecordChild1,
24743
-                    OPC_MoveParent,
24744
-                    OPC_CheckType, MVT::v2i64,
24745
-                    OPC_CheckPatternPredicate, 2,
24746
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24747
-                    OPC_EmitMergeInputChains1_0,
24748
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24749
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24750
-                  0, 
24751
-                72, 
24752
-                  OPC_MoveParent,
24753
-                  OPC_MoveChild, 1,
24754
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
24755
-                  OPC_Scope, 31, 
24756
-                    OPC_RecordChild0,
24757
-                    OPC_MoveChild, 1,
24758
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24759
-                    OPC_CheckPredicate, 44,
24760
-                    OPC_MoveParent,
24761
-                    OPC_MoveParent,
24762
-                    OPC_CheckType, MVT::v1i64,
24763
-                    OPC_CheckPatternPredicate, 9,
24764
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24765
-                    OPC_EmitMergeInputChains1_0,
24766
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24767
-                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
24768
-                  31, 
24769
-                    OPC_MoveChild, 0,
24770
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24771
-                    OPC_CheckPredicate, 44,
24772
-                    OPC_MoveParent,
24773
-                    OPC_RecordChild1,
24774
-                    OPC_MoveParent,
24775
-                    OPC_CheckType, MVT::v1i64,
24776
-                    OPC_CheckPatternPredicate, 9,
24777
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24778
-                    OPC_EmitMergeInputChains1_0,
24779
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
24780
-                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
24781
-                  0, 
24782
-                61, 
24783
-                  OPC_CheckPredicate, 21,
24784
-                  OPC_MoveParent,
24785
-                  OPC_MoveChild, 1,
24786
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24787
-                  OPC_RecordChild0,
24788
-                  OPC_Scope, 24, 
24789
-                    OPC_CheckChild0Type, MVT::v4f32,
24790
-                    OPC_MoveParent,
24791
-                    OPC_CheckType, MVT::v2i64,
24792
-                    OPC_CheckPatternPredicate, 1,
24793
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24794
-                    OPC_EmitMergeInputChains1_0,
24795
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
24796
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24797
-                  24, 
24798
-                    OPC_CheckChild0Type, MVT::v2f64,
24799
-                    OPC_MoveParent,
24800
-                    OPC_CheckType, MVT::v2i64,
24801
-                    OPC_CheckPatternPredicate, 2,
24802
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24803
-                    OPC_EmitMergeInputChains1_0,
24804
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
24805
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24806
-                  0, 
24807
-                0, 
24808
-              85,  TARGET_OPCODE(ISD::BIT_CONVERT),
24809
-                OPC_RecordChild0,
24810
-                OPC_Scope, 40, 
24811
-                  OPC_CheckChild0Type, MVT::v4f32,
24812
-                  OPC_MoveParent,
24813
-                  OPC_MoveChild, 1,
24814
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24815
-                  OPC_RecordMemRef,
24816
-                  OPC_RecordNode,
24817
-                  OPC_CheckFoldableChainNode,
24818
-                  OPC_RecordChild1,
24819
-                  OPC_CheckPredicate, 2,
24820
-                  OPC_CheckPredicate, 3,
24821
-                  OPC_CheckPredicate, 21,
24822
-                  OPC_MoveParent,
24823
-                  OPC_CheckType, MVT::v2i64,
24824
-                  OPC_CheckPatternPredicate, 1,
24825
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24826
-                  OPC_EmitMergeInputChains1_1,
24827
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
24828
-                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24829
-                40, 
24830
-                  OPC_CheckChild0Type, MVT::v2f64,
24831
-                  OPC_MoveParent,
24832
-                  OPC_MoveChild, 1,
24833
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24834
-                  OPC_RecordMemRef,
24835
-                  OPC_RecordNode,
24836
-                  OPC_CheckFoldableChainNode,
24837
-                  OPC_RecordChild1,
24838
-                  OPC_CheckPredicate, 2,
24839
-                  OPC_CheckPredicate, 3,
24840
-                  OPC_CheckPredicate, 21,
24841
-                  OPC_MoveParent,
24842
-                  OPC_CheckType, MVT::v2i64,
24843
-                  OPC_CheckPatternPredicate, 2,
24844
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24845
-                  OPC_EmitMergeInputChains1_1,
24846
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
24847
-                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24848
-                0, 
24849
-              0, 
24850
-            87, 
24851
-              OPC_RecordChild0,
24852
-              OPC_MoveChild, 1,
24853
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
24854
-              OPC_RecordMemRef,
24855
-              OPC_RecordNode,
24856
-              OPC_CheckFoldableChainNode,
24857
-              OPC_RecordChild1,
24858
-              OPC_CheckPredicate, 2,
24859
-              OPC_CheckPredicate, 3,
24860
-              OPC_Scope, 47, 
24861
-                OPC_CheckPredicate, 21,
24862
-                OPC_MoveParent,
24863
-                OPC_CheckType, MVT::v2i64,
24864
-                OPC_Scope, 19, 
24865
-                  OPC_CheckPatternPredicate, 0,
24866
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24867
-                  OPC_EmitMergeInputChains1_1,
24868
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
24869
-                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24870
-                19, 
24871
-                  OPC_CheckPatternPredicate, 2,
24872
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24873
-                  OPC_EmitMergeInputChains1_1,
24874
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
24875
-                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
24876
-                0, 
24877
-              22, 
24878
-                OPC_MoveParent,
24879
-                OPC_CheckType, MVT::v1i64,
24880
-                OPC_CheckPatternPredicate, 9,
24881
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
24882
-                OPC_EmitMergeInputChains1_1,
24883
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
24884
-                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
24885
-              0, 
24886
-            5|128,3, 
24887
-              OPC_MoveChild, 0,
24888
-              OPC_SwitchOpcode , 83,  TARGET_OPCODE(ISD::LOAD),
24889
-                OPC_RecordMemRef,
24890
-                OPC_RecordNode,
24891
-                OPC_CheckFoldableChainNode,
24892
-                OPC_RecordChild1,
24893
-                OPC_CheckPredicate, 2,
24894
-                OPC_CheckPredicate, 3,
24895
-                OPC_Scope, 48, 
24896
-                  OPC_CheckPredicate, 21,
24897
-                  OPC_MoveParent,
24898
-                  OPC_RecordChild1,
24899
-                  OPC_CheckType, MVT::v2i64,
24900
-                  OPC_Scope, 19, 
24901
-                    OPC_CheckPatternPredicate, 0,
24902
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24903
-                    OPC_EmitMergeInputChains1_0,
24904
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
24905
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24906
-                  19, 
24907
-                    OPC_CheckPatternPredicate, 2,
24908
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24909
-                    OPC_EmitMergeInputChains1_0,
24910
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
24911
-                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
24912
-                  0, 
24913
-                23, 
24914
-                  OPC_MoveParent,
24915
-                  OPC_RecordChild1,
24916
-                  OPC_CheckType, MVT::v1i64,
24917
-                  OPC_CheckPatternPredicate, 9,
24918
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
24919
-                  OPC_EmitMergeInputChains1_0,
24920
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
24921
-                      1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
24922
-                0, 
24923
-              93|128,1,  TARGET_OPCODE(ISD::XOR),
24924
-                OPC_Scope, 80, 
24925
-                  OPC_MoveChild, 0,
24926
-                  OPC_SwitchOpcode , 35,  TARGET_OPCODE(ISD::BIT_CONVERT),
24927
-                    OPC_RecordChild0,
24928
-                    OPC_CheckChild0Type, MVT::v2f64,
24929
-                    OPC_MoveParent,
24930
-                    OPC_MoveChild, 1,
24931
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24932
-                    OPC_CheckPredicate, 44,
24933
-                    OPC_MoveParent,
24934
-                    OPC_MoveParent,
24935
-                    OPC_MoveChild, 1,
24936
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24937
-                    OPC_RecordChild0,
24938
-                    OPC_CheckChild0Type, MVT::v2f64,
24939
-                    OPC_MoveParent,
24940
-                    OPC_CheckType, MVT::v2i64,
24941
-                    OPC_CheckPatternPredicate, 2,
24942
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
24943
-                        1, MVT::v2i64, 2, 0, 1, 
24944
-                  35,  TARGET_OPCODE(ISD::BUILD_VECTOR),
24945
-                    OPC_CheckPredicate, 44,
24946
-                    OPC_MoveParent,
24947
-                    OPC_MoveChild, 1,
24948
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24949
-                    OPC_RecordChild0,
24950
-                    OPC_CheckChild0Type, MVT::v2f64,
24951
-                    OPC_MoveParent,
24952
-                    OPC_MoveParent,
24953
-                    OPC_MoveChild, 1,
24954
-                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24955
-                    OPC_RecordChild0,
24956
-                    OPC_CheckChild0Type, MVT::v2f64,
24957
-                    OPC_MoveParent,
24958
-                    OPC_CheckType, MVT::v2i64,
24959
-                    OPC_CheckPatternPredicate, 2,
24960
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
24961
-                        1, MVT::v2i64, 2, 0, 1, 
24962
-                  0, 
24963
-                104, 
24964
-                  OPC_RecordChild0,
24965
-                  OPC_MoveChild, 1,
24966
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
24967
-                  OPC_MoveChild, 0,
24968
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
24969
-                  OPC_CheckPredicate, 44,
24970
-                  OPC_SwitchType , 32,  MVT::v4i32,
24971
-                    OPC_MoveParent,
24972
-                    OPC_MoveParent,
24973
-                    OPC_MoveParent,
24974
-                    OPC_RecordChild1,
24975
-                    OPC_CheckType, MVT::v2i64,
24976
-                    OPC_Scope, 11, 
24977
-                      OPC_CheckPatternPredicate, 1,
24978
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
24979
-                          1, MVT::v2i64, 2, 0, 1, 
24980
-                    11, 
24981
-                      OPC_CheckPatternPredicate, 2,
24982
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
24983
-                          1, MVT::v2i64, 2, 0, 1, 
24984
-                    0, 
24985
-                  17,  MVT::v8i16,
24986
-                    OPC_MoveParent,
24987
-                    OPC_MoveParent,
24988
-                    OPC_MoveParent,
24989
-                    OPC_RecordChild1,
24990
-                    OPC_CheckType, MVT::v2i64,
24991
-                    OPC_CheckPatternPredicate, 2,
24992
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
24993
-                        1, MVT::v2i64, 2, 0, 1, 
24994
-                  17,  MVT::v16i8,
24995
-                    OPC_MoveParent,
24996
-                    OPC_MoveParent,
24997
-                    OPC_MoveParent,
24998
-                    OPC_RecordChild1,
24999
-                    OPC_CheckType, MVT::v2i64,
25000
-                    OPC_CheckPatternPredicate, 2,
25001
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25002
-                        1, MVT::v2i64, 2, 0, 1, 
25003
-                  15,  MVT::v2i32,
25004
-                    OPC_MoveParent,
25005
-                    OPC_MoveParent,
25006
-                    OPC_MoveParent,
25007
-                    OPC_RecordChild1,
25008
-                    OPC_CheckType, MVT::v1i64,
25009
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25010
-                        1, MVT::v1i64, 2, 0, 1, 
25011
-                  0, 
25012
-                32, 
25013
-                  OPC_MoveChild, 0,
25014
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25015
-                  OPC_MoveChild, 0,
25016
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25017
-                  OPC_CheckPredicate, 44,
25018
-                  OPC_CheckType, MVT::v4i32,
25019
-                  OPC_MoveParent,
25020
-                  OPC_MoveParent,
25021
-                  OPC_RecordChild1,
25022
-                  OPC_MoveParent,
25023
-                  OPC_RecordChild1,
25024
-                  OPC_CheckType, MVT::v2i64,
25025
-                  OPC_CheckPatternPredicate, 1,
25026
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
25027
-                      1, MVT::v2i64, 2, 0, 1, 
25028
-                0, 
25029
-              71,  TARGET_OPCODE(ISD::BIT_CONVERT),
25030
-                OPC_RecordChild0,
25031
-                OPC_CheckChild0Type, MVT::v2f64,
25032
-                OPC_MoveParent,
25033
-                OPC_MoveChild, 1,
25034
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25035
-                OPC_MoveChild, 0,
25036
-                OPC_SwitchOpcode , 26,  TARGET_OPCODE(ISD::BIT_CONVERT),
25037
-                  OPC_RecordChild0,
25038
-                  OPC_CheckChild0Type, MVT::v2f64,
25039
-                  OPC_MoveParent,
25040
-                  OPC_MoveChild, 1,
25041
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25042
-                  OPC_CheckPredicate, 44,
25043
-                  OPC_MoveParent,
25044
-                  OPC_MoveParent,
25045
-                  OPC_CheckType, MVT::v2i64,
25046
-                  OPC_CheckPatternPredicate, 2,
25047
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
25048
-                      1, MVT::v2i64, 2, 1, 0, 
25049
-                26,  TARGET_OPCODE(ISD::BUILD_VECTOR),
25050
-                  OPC_CheckPredicate, 44,
25051
-                  OPC_MoveParent,
25052
-                  OPC_MoveChild, 1,
25053
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25054
-                  OPC_RecordChild0,
25055
-                  OPC_CheckChild0Type, MVT::v2f64,
25056
-                  OPC_MoveParent,
25057
-                  OPC_MoveParent,
25058
-                  OPC_CheckType, MVT::v2i64,
25059
-                  OPC_CheckPatternPredicate, 2,
25060
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
25061
-                      1, MVT::v2i64, 2, 1, 0, 
25062
-                0, 
25063
-              0, 
25064
-            72, 
25065
-              OPC_RecordChild0,
25066
-              OPC_MoveChild, 1,
25067
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25068
-              OPC_Scope, 31, 
25069
-                OPC_RecordChild0,
25070
-                OPC_MoveChild, 1,
25071
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25072
-                OPC_MoveChild, 0,
25073
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25074
-                OPC_CheckPredicate, 44,
25075
-                OPC_CheckType, MVT::v4i32,
25076
-                OPC_MoveParent,
25077
-                OPC_MoveParent,
25078
-                OPC_MoveParent,
25079
-                OPC_CheckType, MVT::v2i64,
25080
-                OPC_CheckPatternPredicate, 1,
25081
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
25082
-                    1, MVT::v2i64, 2, 1, 0, 
25083
-              31, 
25084
-                OPC_MoveChild, 0,
25085
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25086
-                OPC_MoveChild, 0,
25087
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25088
-                OPC_CheckPredicate, 44,
25089
-                OPC_CheckType, MVT::v4i32,
25090
-                OPC_MoveParent,
25091
-                OPC_MoveParent,
25092
-                OPC_RecordChild1,
25093
-                OPC_MoveParent,
25094
-                OPC_CheckType, MVT::v2i64,
25095
-                OPC_CheckPatternPredicate, 1,
25096
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
25097
-                    1, MVT::v2i64, 2, 1, 0, 
25098
-              0, 
25099
-            37, 
25100
-              OPC_MoveChild, 0,
25101
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25102
-              OPC_MoveChild, 0,
25103
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25104
-              OPC_MoveChild, 0,
25105
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25106
-              OPC_CheckPredicate, 44,
25107
-              OPC_CheckType, MVT::v4i32,
25108
-              OPC_MoveParent,
25109
-              OPC_MoveParent,
25110
-              OPC_RecordChild1,
25111
-              OPC_MoveParent,
25112
-              OPC_RecordChild1,
25113
-              OPC_CheckType, MVT::v2i64,
25114
-              OPC_CheckPatternPredicate, 2,
25115
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25116
-                  1, MVT::v2i64, 2, 0, 1, 
25117
-            72, 
25118
-              OPC_RecordChild0,
25119
-              OPC_MoveChild, 1,
25120
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25121
-              OPC_Scope, 31, 
25122
-                OPC_RecordChild0,
25123
-                OPC_MoveChild, 1,
25124
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25125
-                OPC_MoveChild, 0,
25126
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25127
-                OPC_CheckPredicate, 44,
25128
-                OPC_CheckType, MVT::v4i32,
25129
-                OPC_MoveParent,
25130
-                OPC_MoveParent,
25131
-                OPC_MoveParent,
25132
-                OPC_CheckType, MVT::v2i64,
25133
-                OPC_CheckPatternPredicate, 2,
25134
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25135
-                    1, MVT::v2i64, 2, 1, 0, 
25136
-              31, 
25137
-                OPC_MoveChild, 0,
25138
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25139
-                OPC_MoveChild, 0,
25140
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25141
-                OPC_CheckPredicate, 44,
25142
-                OPC_CheckType, MVT::v4i32,
25143
-                OPC_MoveParent,
25144
-                OPC_MoveParent,
25145
-                OPC_RecordChild1,
25146
-                OPC_MoveParent,
25147
-                OPC_CheckType, MVT::v2i64,
25148
-                OPC_CheckPatternPredicate, 2,
25149
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25150
-                    1, MVT::v2i64, 2, 1, 0, 
25151
-              0, 
25152
-            37, 
25153
-              OPC_MoveChild, 0,
25154
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25155
-              OPC_MoveChild, 0,
25156
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25157
-              OPC_MoveChild, 0,
25158
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25159
-              OPC_CheckPredicate, 44,
25160
-              OPC_CheckType, MVT::v8i16,
25161
-              OPC_MoveParent,
25162
-              OPC_MoveParent,
25163
-              OPC_RecordChild1,
25164
-              OPC_MoveParent,
25165
-              OPC_RecordChild1,
25166
-              OPC_CheckType, MVT::v2i64,
25167
-              OPC_CheckPatternPredicate, 2,
25168
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25169
-                  1, MVT::v2i64, 2, 0, 1, 
25170
-            72, 
25171
-              OPC_RecordChild0,
25172
-              OPC_MoveChild, 1,
25173
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25174
-              OPC_Scope, 31, 
25175
-                OPC_RecordChild0,
25176
-                OPC_MoveChild, 1,
25177
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25178
-                OPC_MoveChild, 0,
25179
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25180
-                OPC_CheckPredicate, 44,
25181
-                OPC_CheckType, MVT::v8i16,
25182
-                OPC_MoveParent,
25183
-                OPC_MoveParent,
25184
-                OPC_MoveParent,
25185
-                OPC_CheckType, MVT::v2i64,
25186
-                OPC_CheckPatternPredicate, 2,
25187
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25188
-                    1, MVT::v2i64, 2, 1, 0, 
25189
-              31, 
25190
-                OPC_MoveChild, 0,
25191
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25192
-                OPC_MoveChild, 0,
25193
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25194
-                OPC_CheckPredicate, 44,
25195
-                OPC_CheckType, MVT::v8i16,
25196
-                OPC_MoveParent,
25197
-                OPC_MoveParent,
25198
-                OPC_RecordChild1,
25199
-                OPC_MoveParent,
25200
-                OPC_CheckType, MVT::v2i64,
25201
-                OPC_CheckPatternPredicate, 2,
25202
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25203
-                    1, MVT::v2i64, 2, 1, 0, 
25204
-              0, 
25205
-            37, 
25206
-              OPC_MoveChild, 0,
25207
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25208
-              OPC_MoveChild, 0,
25209
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25210
-              OPC_MoveChild, 0,
25211
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25212
-              OPC_CheckPredicate, 44,
25213
-              OPC_CheckType, MVT::v16i8,
25214
-              OPC_MoveParent,
25215
-              OPC_MoveParent,
25216
-              OPC_RecordChild1,
25217
-              OPC_MoveParent,
25218
-              OPC_RecordChild1,
25219
-              OPC_CheckType, MVT::v2i64,
25220
-              OPC_CheckPatternPredicate, 2,
25221
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25222
-                  1, MVT::v2i64, 2, 0, 1, 
25223
-            72, 
25224
-              OPC_RecordChild0,
25225
-              OPC_MoveChild, 1,
25226
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25227
-              OPC_Scope, 31, 
25228
-                OPC_RecordChild0,
25229
-                OPC_MoveChild, 1,
25230
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25231
-                OPC_MoveChild, 0,
25232
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25233
-                OPC_CheckPredicate, 44,
25234
-                OPC_CheckType, MVT::v16i8,
25235
-                OPC_MoveParent,
25236
-                OPC_MoveParent,
25237
-                OPC_MoveParent,
25238
-                OPC_CheckType, MVT::v2i64,
25239
-                OPC_CheckPatternPredicate, 2,
25240
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25241
-                    1, MVT::v2i64, 2, 1, 0, 
25242
-              31, 
25243
-                OPC_MoveChild, 0,
25244
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25245
-                OPC_MoveChild, 0,
25246
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25247
-                OPC_CheckPredicate, 44,
25248
-                OPC_CheckType, MVT::v16i8,
25249
-                OPC_MoveParent,
25250
-                OPC_MoveParent,
25251
-                OPC_RecordChild1,
25252
-                OPC_MoveParent,
25253
-                OPC_CheckType, MVT::v2i64,
25254
-                OPC_CheckPatternPredicate, 2,
25255
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25256
-                    1, MVT::v2i64, 2, 1, 0, 
25257
-              0, 
25258
-            35, 
25259
-              OPC_MoveChild, 0,
25260
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25261
-              OPC_MoveChild, 0,
25262
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25263
-              OPC_MoveChild, 0,
25264
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25265
-              OPC_CheckPredicate, 44,
25266
-              OPC_CheckType, MVT::v2i32,
25267
-              OPC_MoveParent,
25268
-              OPC_MoveParent,
25269
-              OPC_RecordChild1,
25270
-              OPC_MoveParent,
25271
-              OPC_RecordChild1,
25272
-              OPC_CheckType, MVT::v1i64,
25273
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25274
-                  1, MVT::v1i64, 2, 0, 1, 
25275
-            68, 
25276
-              OPC_RecordChild0,
25277
-              OPC_MoveChild, 1,
25278
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25279
-              OPC_Scope, 29, 
25280
-                OPC_RecordChild0,
25281
-                OPC_MoveChild, 1,
25282
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25283
-                OPC_MoveChild, 0,
25284
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25285
-                OPC_CheckPredicate, 44,
25286
-                OPC_CheckType, MVT::v2i32,
25287
-                OPC_MoveParent,
25288
-                OPC_MoveParent,
25289
-                OPC_MoveParent,
25290
-                OPC_CheckType, MVT::v1i64,
25291
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25292
-                    1, MVT::v1i64, 2, 1, 0, 
25293
-              29, 
25294
-                OPC_MoveChild, 0,
25295
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25296
-                OPC_MoveChild, 0,
25297
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25298
-                OPC_CheckPredicate, 44,
25299
-                OPC_CheckType, MVT::v2i32,
25300
-                OPC_MoveParent,
25301
-                OPC_MoveParent,
25302
-                OPC_RecordChild1,
25303
-                OPC_MoveParent,
25304
-                OPC_CheckType, MVT::v1i64,
25305
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25306
-                    1, MVT::v1i64, 2, 1, 0, 
25307
-              0, 
25308
-            87, 
25309
-              OPC_MoveChild, 0,
25310
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25311
-              OPC_Scope, 54, 
25312
-                OPC_RecordChild0,
25313
-                OPC_MoveChild, 1,
25314
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25315
-                OPC_CheckPredicate, 44,
25316
-                OPC_MoveParent,
25317
-                OPC_MoveParent,
25318
-                OPC_RecordChild1,
25319
-                OPC_SwitchType , 26,  MVT::v2i64,
25320
-                  OPC_Scope, 11, 
25321
-                    OPC_CheckPatternPredicate, 0,
25322
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
25323
-                        1, MVT::v2i64, 2, 0, 1, 
25324
-                  11, 
25325
-                    OPC_CheckPatternPredicate, 2,
25326
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25327
-                        1, MVT::v2i64, 2, 0, 1, 
25328
-                  0, 
25329
-                11,  MVT::v1i64,
25330
-                  OPC_CheckPatternPredicate, 9,
25331
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25332
-                      1, MVT::v1i64, 2, 0, 1, 
25333
-                0, 
25334
-              24, 
25335
-                OPC_MoveChild, 0,
25336
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25337
-                OPC_CheckPredicate, 44,
25338
-                OPC_MoveParent,
25339
-                OPC_RecordChild1,
25340
-                OPC_MoveParent,
25341
-                OPC_RecordChild1,
25342
-                OPC_CheckType, MVT::v2i64,
25343
-                OPC_CheckPatternPredicate, 0,
25344
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
25345
-                    1, MVT::v2i64, 2, 0, 1, 
25346
-              0, 
25347
-            56, 
25348
-              OPC_RecordChild0,
25349
-              OPC_MoveChild, 1,
25350
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25351
-              OPC_Scope, 23, 
25352
-                OPC_RecordChild0,
25353
-                OPC_MoveChild, 1,
25354
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25355
-                OPC_CheckPredicate, 44,
25356
-                OPC_MoveParent,
25357
-                OPC_MoveParent,
25358
-                OPC_CheckType, MVT::v2i64,
25359
-                OPC_CheckPatternPredicate, 0,
25360
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
25361
-                    1, MVT::v2i64, 2, 1, 0, 
25362
-              23, 
25363
-                OPC_MoveChild, 0,
25364
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25365
-                OPC_CheckPredicate, 44,
25366
-                OPC_MoveParent,
25367
-                OPC_RecordChild1,
25368
-                OPC_MoveParent,
25369
-                OPC_CheckType, MVT::v2i64,
25370
-                OPC_CheckPatternPredicate, 0,
25371
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
25372
-                    1, MVT::v2i64, 2, 1, 0, 
25373
-              0, 
25374
-            29, 
25375
-              OPC_MoveChild, 0,
25376
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25377
-              OPC_MoveChild, 0,
25378
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25379
-              OPC_CheckPredicate, 44,
25380
-              OPC_MoveParent,
25381
-              OPC_RecordChild1,
25382
-              OPC_MoveParent,
25383
-              OPC_RecordChild1,
25384
-              OPC_CheckType, MVT::v2i64,
25385
-              OPC_CheckPatternPredicate, 2,
25386
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25387
-                  1, MVT::v2i64, 2, 0, 1, 
25388
-            56, 
25389
-              OPC_RecordChild0,
25390
-              OPC_MoveChild, 1,
25391
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25392
-              OPC_Scope, 23, 
25393
-                OPC_RecordChild0,
25394
-                OPC_MoveChild, 1,
25395
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25396
-                OPC_CheckPredicate, 44,
25397
-                OPC_MoveParent,
25398
-                OPC_MoveParent,
25399
-                OPC_CheckType, MVT::v2i64,
25400
-                OPC_CheckPatternPredicate, 2,
25401
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25402
-                    1, MVT::v2i64, 2, 1, 0, 
25403
-              23, 
25404
-                OPC_MoveChild, 0,
25405
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25406
-                OPC_CheckPredicate, 44,
25407
-                OPC_MoveParent,
25408
-                OPC_RecordChild1,
25409
-                OPC_MoveParent,
25410
-                OPC_CheckType, MVT::v2i64,
25411
-                OPC_CheckPatternPredicate, 2,
25412
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
25413
-                    1, MVT::v2i64, 2, 1, 0, 
25414
-              0, 
25415
-            29, 
25416
-              OPC_MoveChild, 0,
25417
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25418
-              OPC_MoveChild, 0,
25419
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25420
-              OPC_CheckPredicate, 44,
25421
-              OPC_MoveParent,
25422
-              OPC_RecordChild1,
25423
-              OPC_MoveParent,
25424
-              OPC_RecordChild1,
25425
-              OPC_CheckType, MVT::v1i64,
25426
-              OPC_CheckPatternPredicate, 9,
25427
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25428
-                  1, MVT::v1i64, 2, 0, 1, 
25429
-            56, 
25430
-              OPC_RecordChild0,
25431
-              OPC_MoveChild, 1,
25432
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
25433
-              OPC_Scope, 23, 
25434
-                OPC_RecordChild0,
25435
-                OPC_MoveChild, 1,
25436
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25437
-                OPC_CheckPredicate, 44,
25438
-                OPC_MoveParent,
25439
-                OPC_MoveParent,
25440
-                OPC_CheckType, MVT::v1i64,
25441
-                OPC_CheckPatternPredicate, 9,
25442
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25443
-                    1, MVT::v1i64, 2, 1, 0, 
25444
-              23, 
25445
-                OPC_MoveChild, 0,
25446
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
25447
-                OPC_CheckPredicate, 44,
25448
-                OPC_MoveParent,
25449
-                OPC_RecordChild1,
25450
-                OPC_MoveParent,
25451
-                OPC_CheckType, MVT::v1i64,
25452
-                OPC_CheckPatternPredicate, 9,
25453
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
25454
-                    1, MVT::v1i64, 2, 1, 0, 
25455
-              0, 
25456
-            31, 
25457
-              OPC_MoveChild, 0,
25458
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25459
-              OPC_RecordChild0,
25460
-              OPC_CheckChild0Type, MVT::v2f64,
25461
-              OPC_MoveParent,
25462
-              OPC_MoveChild, 1,
25463
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
25464
-              OPC_RecordChild0,
25465
-              OPC_CheckChild0Type, MVT::v2f64,
25466
-              OPC_MoveParent,
25467
-              OPC_CheckType, MVT::v2i64,
25468
-              OPC_CheckPatternPredicate, 2,
25469
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrr), 0,
25470
-                  1, MVT::v2i64, 2, 0, 1, 
25471
-            57, 
25472
-              OPC_RecordChild0,
25473
-              OPC_RecordChild1,
25474
-              OPC_SwitchType , 38,  MVT::v2i64,
25475
-                OPC_Scope, 11, 
25476
-                  OPC_CheckPatternPredicate, 1,
25477
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrr), 0,
25478
-                      1, MVT::v2i64, 2, 0, 1, 
25479
-                11, 
25480
-                  OPC_CheckPatternPredicate, 0,
25481
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrr), 0,
25482
-                      1, MVT::v2i64, 2, 0, 1, 
25483
-                11, 
25484
-                  OPC_CheckPatternPredicate, 2,
25485
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrr), 0,
25486
-                      1, MVT::v2i64, 2, 0, 1, 
25487
-                0, 
25488
-              11,  MVT::v1i64,
25489
-                OPC_CheckPatternPredicate, 9,
25490
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrr), 0,
25491
-                    1, MVT::v1i64, 2, 0, 1, 
25492
-              0, 
25493
-            0, 
25494 23803
           91|128,2,  TARGET_OPCODE(ISD::FP_TO_SINT),
25495 23804
             OPC_Scope, 66|128,1, 
25496 23805
               OPC_MoveChild, 0,
... ...
@@ -25793,7 +28135,7 @@ SDNode *SelectCode(SDNode *N) {
25793 25793
                 OPC_RecordChild1,
25794 25794
                 OPC_CheckPredicate, 2,
25795 25795
                 OPC_CheckPredicate, 3,
25796
-                OPC_CheckPredicate, 21,
25796
+                OPC_CheckPredicate, 19,
25797 25797
                 OPC_MoveParent,
25798 25798
                 OPC_Scope, 19, 
25799 25799
                   OPC_CheckPatternPredicate, 0,
... ...
@@ -25831,7 +28173,7 @@ SDNode *SelectCode(SDNode *N) {
25831 25831
                 OPC_RecordChild1,
25832 25832
                 OPC_CheckPredicate, 2,
25833 25833
                 OPC_CheckPredicate, 3,
25834
-                OPC_CheckPredicate, 21,
25834
+                OPC_CheckPredicate, 19,
25835 25835
                 OPC_MoveParent,
25836 25836
                 OPC_CheckPatternPredicate, 0,
25837 25837
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -25858,7 +28200,7 @@ SDNode *SelectCode(SDNode *N) {
25858 25858
                 OPC_RecordChild1,
25859 25859
                 OPC_CheckPredicate, 2,
25860 25860
                 OPC_CheckPredicate, 3,
25861
-                OPC_CheckPredicate, 21,
25861
+                OPC_CheckPredicate, 19,
25862 25862
                 OPC_MoveParent,
25863 25863
                 OPC_CheckPatternPredicate, 0,
25864 25864
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -25882,7 +28224,7 @@ SDNode *SelectCode(SDNode *N) {
25882 25882
                 OPC_RecordChild1,
25883 25883
                 OPC_CheckPredicate, 2,
25884 25884
                 OPC_CheckPredicate, 3,
25885
-                OPC_CheckPredicate, 21,
25885
+                OPC_CheckPredicate, 19,
25886 25886
                 OPC_MoveParent,
25887 25887
                 OPC_CheckPatternPredicate, 0,
25888 25888
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -25906,7 +28248,7 @@ SDNode *SelectCode(SDNode *N) {
25906 25906
                 OPC_RecordChild1,
25907 25907
                 OPC_CheckPredicate, 2,
25908 25908
                 OPC_CheckPredicate, 3,
25909
-                OPC_CheckPredicate, 21,
25909
+                OPC_CheckPredicate, 19,
25910 25910
                 OPC_MoveParent,
25911 25911
                 OPC_CheckPatternPredicate, 0,
25912 25912
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -25930,7 +28272,7 @@ SDNode *SelectCode(SDNode *N) {
25930 25930
                 OPC_RecordChild1,
25931 25931
                 OPC_CheckPredicate, 2,
25932 25932
                 OPC_CheckPredicate, 3,
25933
-                OPC_CheckPredicate, 21,
25933
+                OPC_CheckPredicate, 19,
25934 25934
                 OPC_MoveParent,
25935 25935
                 OPC_CheckPatternPredicate, 0,
25936 25936
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -25950,25 +28292,25 @@ SDNode *SelectCode(SDNode *N) {
25950 25950
             OPC_RecordChild1,
25951 25951
             OPC_RecordChild2,
25952 25952
             OPC_SwitchType , 19,  MVT::i32,
25953
-              OPC_CheckPredicate, 45,
25953
+              OPC_CheckPredicate, 67,
25954 25954
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25955 25955
               OPC_EmitMergeInputChains1_0,
25956 25956
               OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG32rm), 0|OPFL_Chain|OPFL_MemRefs,
25957 25957
                   1, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
25958 25958
             19,  MVT::i16,
25959
-              OPC_CheckPredicate, 46,
25959
+              OPC_CheckPredicate, 68,
25960 25960
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25961 25961
               OPC_EmitMergeInputChains1_0,
25962 25962
               OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG16rm), 0|OPFL_Chain|OPFL_MemRefs,
25963 25963
                   1, MVT::i16, 6, 2, 3, 4, 5, 6, 7, 
25964 25964
             19,  MVT::i8,
25965
-              OPC_CheckPredicate, 47,
25965
+              OPC_CheckPredicate, 69,
25966 25966
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25967 25967
               OPC_EmitMergeInputChains1_0,
25968 25968
               OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG8rm), 0|OPFL_Chain|OPFL_MemRefs,
25969 25969
                   1, MVT::i8, 6, 2, 3, 4, 5, 6, 7, 
25970 25970
             19,  MVT::i64,
25971
-              OPC_CheckPredicate, 48,
25971
+              OPC_CheckPredicate, 70,
25972 25972
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25973 25973
               OPC_EmitMergeInputChains1_0,
25974 25974
               OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG64rm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -25980,25 +28322,25 @@ SDNode *SelectCode(SDNode *N) {
25980 25980
             OPC_RecordChild1,
25981 25981
             OPC_RecordChild2,
25982 25982
             OPC_SwitchType , 20,  MVT::i32,
25983
-              OPC_CheckPredicate, 49,
25983
+              OPC_CheckPredicate, 71,
25984 25984
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25985 25985
               OPC_EmitMergeInputChains1_0,
25986 25986
               OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD32), 0|OPFL_Chain|OPFL_MemRefs,
25987 25987
                   2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
25988 25988
             20,  MVT::i16,
25989
-              OPC_CheckPredicate, 50,
25989
+              OPC_CheckPredicate, 72,
25990 25990
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25991 25991
               OPC_EmitMergeInputChains1_0,
25992 25992
               OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD16), 0|OPFL_Chain|OPFL_MemRefs,
25993 25993
                   2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
25994 25994
             20,  MVT::i8,
25995
-              OPC_CheckPredicate, 51,
25995
+              OPC_CheckPredicate, 73,
25996 25996
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
25997 25997
               OPC_EmitMergeInputChains1_0,
25998 25998
               OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD8), 0|OPFL_Chain|OPFL_MemRefs,
25999 25999
                   2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
26000 26000
             20,  MVT::i64,
26001
-              OPC_CheckPredicate, 52,
26001
+              OPC_CheckPredicate, 74,
26002 26002
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26003 26003
               OPC_EmitMergeInputChains1_0,
26004 26004
               OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26010,25 +28352,25 @@ SDNode *SelectCode(SDNode *N) {
26010 26010
             OPC_RecordChild1,
26011 26011
             OPC_RecordChild2,
26012 26012
             OPC_SwitchType , 20,  MVT::i32,
26013
-              OPC_CheckPredicate, 53,
26013
+              OPC_CheckPredicate, 75,
26014 26014
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26015 26015
               OPC_EmitMergeInputChains1_0,
26016 26016
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND32), 0|OPFL_Chain|OPFL_MemRefs,
26017 26017
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26018 26018
             20,  MVT::i16,
26019
-              OPC_CheckPredicate, 54,
26019
+              OPC_CheckPredicate, 76,
26020 26020
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26021 26021
               OPC_EmitMergeInputChains1_0,
26022 26022
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND16), 0|OPFL_Chain|OPFL_MemRefs,
26023 26023
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26024 26024
             20,  MVT::i8,
26025
-              OPC_CheckPredicate, 55,
26025
+              OPC_CheckPredicate, 77,
26026 26026
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26027 26027
               OPC_EmitMergeInputChains1_0,
26028 26028
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND8), 0|OPFL_Chain|OPFL_MemRefs,
26029 26029
                   2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26030 26030
             20,  MVT::i64,
26031
-              OPC_CheckPredicate, 56,
26031
+              OPC_CheckPredicate, 78,
26032 26032
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26033 26033
               OPC_EmitMergeInputChains1_0,
26034 26034
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26040,25 +28382,25 @@ SDNode *SelectCode(SDNode *N) {
26040 26040
             OPC_RecordChild1,
26041 26041
             OPC_RecordChild2,
26042 26042
             OPC_SwitchType , 20,  MVT::i32,
26043
-              OPC_CheckPredicate, 57,
26043
+              OPC_CheckPredicate, 79,
26044 26044
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26045 26045
               OPC_EmitMergeInputChains1_0,
26046 26046
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR32), 0|OPFL_Chain|OPFL_MemRefs,
26047 26047
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26048 26048
             20,  MVT::i16,
26049
-              OPC_CheckPredicate, 58,
26049
+              OPC_CheckPredicate, 80,
26050 26050
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26051 26051
               OPC_EmitMergeInputChains1_0,
26052 26052
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR16), 0|OPFL_Chain|OPFL_MemRefs,
26053 26053
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26054 26054
             20,  MVT::i8,
26055
-              OPC_CheckPredicate, 59,
26055
+              OPC_CheckPredicate, 81,
26056 26056
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26057 26057
               OPC_EmitMergeInputChains1_0,
26058 26058
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR8), 0|OPFL_Chain|OPFL_MemRefs,
26059 26059
                   2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26060 26060
             20,  MVT::i64,
26061
-              OPC_CheckPredicate, 60,
26061
+              OPC_CheckPredicate, 82,
26062 26062
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26063 26063
               OPC_EmitMergeInputChains1_0,
26064 26064
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26070,25 +28412,25 @@ SDNode *SelectCode(SDNode *N) {
26070 26070
             OPC_RecordChild1,
26071 26071
             OPC_RecordChild2,
26072 26072
             OPC_SwitchType , 20,  MVT::i32,
26073
-              OPC_CheckPredicate, 61,
26073
+              OPC_CheckPredicate, 83,
26074 26074
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26075 26075
               OPC_EmitMergeInputChains1_0,
26076 26076
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR32), 0|OPFL_Chain|OPFL_MemRefs,
26077 26077
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26078 26078
             20,  MVT::i16,
26079
-              OPC_CheckPredicate, 62,
26079
+              OPC_CheckPredicate, 84,
26080 26080
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26081 26081
               OPC_EmitMergeInputChains1_0,
26082 26082
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR16), 0|OPFL_Chain|OPFL_MemRefs,
26083 26083
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26084 26084
             20,  MVT::i8,
26085
-              OPC_CheckPredicate, 63,
26085
+              OPC_CheckPredicate, 85,
26086 26086
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26087 26087
               OPC_EmitMergeInputChains1_0,
26088 26088
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR8), 0|OPFL_Chain|OPFL_MemRefs,
26089 26089
                   2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26090 26090
             20,  MVT::i64,
26091
-              OPC_CheckPredicate, 64,
26091
+              OPC_CheckPredicate, 86,
26092 26092
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26093 26093
               OPC_EmitMergeInputChains1_0,
26094 26094
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26100,25 +28442,25 @@ SDNode *SelectCode(SDNode *N) {
26100 26100
             OPC_RecordChild1,
26101 26101
             OPC_RecordChild2,
26102 26102
             OPC_SwitchType , 20,  MVT::i32,
26103
-              OPC_CheckPredicate, 65,
26103
+              OPC_CheckPredicate, 87,
26104 26104
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26105 26105
               OPC_EmitMergeInputChains1_0,
26106 26106
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND32), 0|OPFL_Chain|OPFL_MemRefs,
26107 26107
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26108 26108
             20,  MVT::i16,
26109
-              OPC_CheckPredicate, 66,
26109
+              OPC_CheckPredicate, 88,
26110 26110
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26111 26111
               OPC_EmitMergeInputChains1_0,
26112 26112
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND16), 0|OPFL_Chain|OPFL_MemRefs,
26113 26113
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26114 26114
             20,  MVT::i8,
26115
-              OPC_CheckPredicate, 67,
26115
+              OPC_CheckPredicate, 89,
26116 26116
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26117 26117
               OPC_EmitMergeInputChains1_0,
26118 26118
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND8), 0|OPFL_Chain|OPFL_MemRefs,
26119 26119
                   2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26120 26120
             20,  MVT::i64,
26121
-              OPC_CheckPredicate, 68,
26121
+              OPC_CheckPredicate, 90,
26122 26122
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26123 26123
               OPC_EmitMergeInputChains1_0,
26124 26124
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26130,19 +28472,19 @@ SDNode *SelectCode(SDNode *N) {
26130 26130
             OPC_RecordChild1,
26131 26131
             OPC_RecordChild2,
26132 26132
             OPC_SwitchType , 20,  MVT::i32,
26133
-              OPC_CheckPredicate, 69,
26133
+              OPC_CheckPredicate, 91,
26134 26134
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26135 26135
               OPC_EmitMergeInputChains1_0,
26136 26136
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMIN32), 0|OPFL_Chain|OPFL_MemRefs,
26137 26137
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26138 26138
             20,  MVT::i16,
26139
-              OPC_CheckPredicate, 70,
26139
+              OPC_CheckPredicate, 92,
26140 26140
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26141 26141
               OPC_EmitMergeInputChains1_0,
26142 26142
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMIN16), 0|OPFL_Chain|OPFL_MemRefs,
26143 26143
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26144 26144
             20,  MVT::i64,
26145
-              OPC_CheckPredicate, 71,
26145
+              OPC_CheckPredicate, 93,
26146 26146
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26147 26147
               OPC_EmitMergeInputChains1_0,
26148 26148
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMIN64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26154,19 +28496,19 @@ SDNode *SelectCode(SDNode *N) {
26154 26154
             OPC_RecordChild1,
26155 26155
             OPC_RecordChild2,
26156 26156
             OPC_SwitchType , 20,  MVT::i32,
26157
-              OPC_CheckPredicate, 72,
26157
+              OPC_CheckPredicate, 94,
26158 26158
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26159 26159
               OPC_EmitMergeInputChains1_0,
26160 26160
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMAX32), 0|OPFL_Chain|OPFL_MemRefs,
26161 26161
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26162 26162
             20,  MVT::i16,
26163
-              OPC_CheckPredicate, 73,
26163
+              OPC_CheckPredicate, 95,
26164 26164
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26165 26165
               OPC_EmitMergeInputChains1_0,
26166 26166
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMAX16), 0|OPFL_Chain|OPFL_MemRefs,
26167 26167
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26168 26168
             20,  MVT::i64,
26169
-              OPC_CheckPredicate, 74,
26169
+              OPC_CheckPredicate, 96,
26170 26170
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26171 26171
               OPC_EmitMergeInputChains1_0,
26172 26172
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMAX64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26178,19 +28520,19 @@ SDNode *SelectCode(SDNode *N) {
26178 26178
             OPC_RecordChild1,
26179 26179
             OPC_RecordChild2,
26180 26180
             OPC_SwitchType , 20,  MVT::i32,
26181
-              OPC_CheckPredicate, 75,
26181
+              OPC_CheckPredicate, 97,
26182 26182
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26183 26183
               OPC_EmitMergeInputChains1_0,
26184 26184
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMIN32), 0|OPFL_Chain|OPFL_MemRefs,
26185 26185
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26186 26186
             20,  MVT::i16,
26187
-              OPC_CheckPredicate, 76,
26187
+              OPC_CheckPredicate, 98,
26188 26188
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26189 26189
               OPC_EmitMergeInputChains1_0,
26190 26190
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMIN16), 0|OPFL_Chain|OPFL_MemRefs,
26191 26191
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26192 26192
             20,  MVT::i64,
26193
-              OPC_CheckPredicate, 77,
26193
+              OPC_CheckPredicate, 99,
26194 26194
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26195 26195
               OPC_EmitMergeInputChains1_0,
26196 26196
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMIN64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26202,19 +28544,19 @@ SDNode *SelectCode(SDNode *N) {
26202 26202
             OPC_RecordChild1,
26203 26203
             OPC_RecordChild2,
26204 26204
             OPC_SwitchType , 20,  MVT::i32,
26205
-              OPC_CheckPredicate, 78,
26205
+              OPC_CheckPredicate, 100,
26206 26206
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26207 26207
               OPC_EmitMergeInputChains1_0,
26208 26208
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMAX32), 0|OPFL_Chain|OPFL_MemRefs,
26209 26209
                   2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26210 26210
             20,  MVT::i16,
26211
-              OPC_CheckPredicate, 79,
26211
+              OPC_CheckPredicate, 101,
26212 26212
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26213 26213
               OPC_EmitMergeInputChains1_0,
26214 26214
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMAX16), 0|OPFL_Chain|OPFL_MemRefs,
26215 26215
                   2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
26216 26216
             20,  MVT::i64,
26217
-              OPC_CheckPredicate, 80,
26217
+              OPC_CheckPredicate, 102,
26218 26218
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
26219 26219
               OPC_EmitMergeInputChains1_0,
26220 26220
               OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMAX64), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -26385,7 +28727,7 @@ SDNode *SelectCode(SDNode *N) {
26385 26385
               OPC_MoveChild, 1,
26386 26386
               OPC_CheckInteger, 0|128,126|128,3, 
26387 26387
               OPC_MoveParent,
26388
-              OPC_CheckPredicate, 19,
26388
+              OPC_CheckPredicate, 42,
26389 26389
               OPC_MoveParent,
26390 26390
               OPC_MoveChild, 1,
26391 26391
               OPC_CheckInteger, 8, 
... ...
@@ -26678,7 +29020,7 @@ SDNode *SelectCode(SDNode *N) {
26678 26678
               OPC_RecordChild0,
26679 26679
               OPC_Scope, 25, 
26680 26680
                 OPC_MoveChild, 0,
26681
-                OPC_CheckPredicate, 81,
26681
+                OPC_CheckPredicate, 103,
26682 26682
                 OPC_CheckType, MVT::i32,
26683 26683
                 OPC_MoveParent,
26684 26684
                 OPC_CheckType, MVT::i64,
... ...
@@ -27378,15 +29720,15 @@ SDNode *SelectCode(SDNode *N) {
27378 27378
                     1, MVT::i32, 1, 0, 
27379 27379
               35,  MVT::i64,
27380 27380
                 OPC_Scope, 10, 
27381
-                  OPC_CheckPatternPredicate, 21,
27381
+                  OPC_CheckPatternPredicate, 22,
27382 27382
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
27383 27383
                       1, MVT::i64, 1, 0, 
27384 27384
                 10, 
27385
-                  OPC_CheckPatternPredicate, 22,
27385
+                  OPC_CheckPatternPredicate, 23,
27386 27386
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
27387 27387
                       1, MVT::i64, 1, 0, 
27388 27388
                 10, 
27389
-                  OPC_CheckPatternPredicate, 23,
27389
+                  OPC_CheckPatternPredicate, 24,
27390 27390
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
27391 27391
                       1, MVT::i64, 1, 0, 
27392 27392
                 0, 
... ...
@@ -27398,15 +29740,15 @@ SDNode *SelectCode(SDNode *N) {
27398 27398
                     1, MVT::i32, 1, 0, 
27399 27399
               35,  MVT::i64,
27400 27400
                 OPC_Scope, 10, 
27401
-                  OPC_CheckPatternPredicate, 21,
27401
+                  OPC_CheckPatternPredicate, 22,
27402 27402
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
27403 27403
                       1, MVT::i64, 1, 0, 
27404 27404
                 10, 
27405
-                  OPC_CheckPatternPredicate, 22,
27405
+                  OPC_CheckPatternPredicate, 23,
27406 27406
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
27407 27407
                       1, MVT::i64, 1, 0, 
27408 27408
                 10, 
27409
-                  OPC_CheckPatternPredicate, 23,
27409
+                  OPC_CheckPatternPredicate, 24,
27410 27410
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
27411 27411
                       1, MVT::i64, 1, 0, 
27412 27412
                 0, 
... ...
@@ -27427,15 +29769,15 @@ SDNode *SelectCode(SDNode *N) {
27427 27427
                     1, MVT::i32, 1, 0, 
27428 27428
               35,  MVT::i64,
27429 27429
                 OPC_Scope, 10, 
27430
-                  OPC_CheckPatternPredicate, 21,
27430
+                  OPC_CheckPatternPredicate, 22,
27431 27431
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
27432 27432
                       1, MVT::i64, 1, 0, 
27433 27433
                 10, 
27434
-                  OPC_CheckPatternPredicate, 22,
27434
+                  OPC_CheckPatternPredicate, 23,
27435 27435
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
27436 27436
                       1, MVT::i64, 1, 0, 
27437 27437
                 10, 
27438
-                  OPC_CheckPatternPredicate, 23,
27438
+                  OPC_CheckPatternPredicate, 24,
27439 27439
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
27440 27440
                       1, MVT::i64, 1, 0, 
27441 27441
                 0, 
... ...
@@ -27447,15 +29789,15 @@ SDNode *SelectCode(SDNode *N) {
27447 27447
                     1, MVT::i32, 1, 0, 
27448 27448
               35,  MVT::i64,
27449 27449
                 OPC_Scope, 10, 
27450
-                  OPC_CheckPatternPredicate, 21,
27450
+                  OPC_CheckPatternPredicate, 22,
27451 27451
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
27452 27452
                       1, MVT::i64, 1, 0, 
27453 27453
                 10, 
27454
-                  OPC_CheckPatternPredicate, 22,
27454
+                  OPC_CheckPatternPredicate, 23,
27455 27455
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
27456 27456
                       1, MVT::i64, 1, 0, 
27457 27457
                 10, 
27458
-                  OPC_CheckPatternPredicate, 23,
27458
+                  OPC_CheckPatternPredicate, 24,
27459 27459
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
27460 27460
                       1, MVT::i64, 1, 0, 
27461 27461
                 0, 
... ...
@@ -27467,15 +29809,15 @@ SDNode *SelectCode(SDNode *N) {
27467 27467
                     1, MVT::i32, 1, 0, 
27468 27468
               35,  MVT::i64,
27469 27469
                 OPC_Scope, 10, 
27470
-                  OPC_CheckPatternPredicate, 21,
27470
+                  OPC_CheckPatternPredicate, 22,
27471 27471
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
27472 27472
                       1, MVT::i64, 1, 0, 
27473 27473
                 10, 
27474
-                  OPC_CheckPatternPredicate, 22,
27474
+                  OPC_CheckPatternPredicate, 23,
27475 27475
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
27476 27476
                       1, MVT::i64, 1, 0, 
27477 27477
                 10, 
27478
-                  OPC_CheckPatternPredicate, 23,
27478
+                  OPC_CheckPatternPredicate, 24,
27479 27479
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
27480 27480
                       1, MVT::i64, 1, 0, 
27481 27481
                 0, 
... ...
@@ -27501,7 +29843,7 @@ SDNode *SelectCode(SDNode *N) {
27501 27501
               OPC_RecordNode,
27502 27502
               OPC_SwitchType , 39,  MVT::i64,
27503 27503
                 OPC_Scope, 12, 
27504
-                  OPC_CheckPredicate, 43,
27504
+                  OPC_CheckPredicate, 65,
27505 27505
                   OPC_EmitConvertToTarget, 0,
27506 27506
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
27507 27507
                       1, MVT::i64, 1, 1, 
... ...
@@ -27731,7 +30073,7 @@ SDNode *SelectCode(SDNode *N) {
27731 27731
                 OPC_CheckPredicate, 4,
27732 27732
                 OPC_MoveParent,
27733 27733
                 OPC_CheckType, MVT::f64,
27734
-                OPC_CheckPatternPredicate, 14,
27734
+                OPC_CheckPatternPredicate, 10,
27735 27735
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
27736 27736
                 OPC_EmitMergeInputChains1_0,
27737 27737
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64toSDrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -28140,9 +30482,9 @@ SDNode *SelectCode(SDNode *N) {
28140 28140
                       1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
28141 28141
                 0, 
28142 28142
               73, 
28143
-                OPC_CheckPredicate, 32,
28143
+                OPC_CheckPredicate, 54,
28144 28144
                 OPC_Scope, 45, 
28145
-                  OPC_CheckPredicate, 39,
28145
+                  OPC_CheckPredicate, 61,
28146 28146
                   OPC_MoveParent,
28147 28147
                   OPC_SwitchType , 19,  MVT::f64,
28148 28148
                     OPC_CheckPatternPredicate, 8,
... ...
@@ -28157,7 +30499,7 @@ SDNode *SelectCode(SDNode *N) {
28157 28157
                         1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
28158 28158
                   0, 
28159 28159
                 22, 
28160
-                  OPC_CheckPredicate, 40,
28160
+                  OPC_CheckPredicate, 62,
28161 28161
                   OPC_MoveParent,
28162 28162
                   OPC_CheckType, MVT::f80,
28163 28163
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -28193,9 +30535,9 @@ SDNode *SelectCode(SDNode *N) {
28193 28193
                       1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
28194 28194
                 0, 
28195 28195
               75, 
28196
-                OPC_CheckPredicate, 32,
28196
+                OPC_CheckPredicate, 54,
28197 28197
                 OPC_Scope, 46, 
28198
-                  OPC_CheckPredicate, 39,
28198
+                  OPC_CheckPredicate, 61,
28199 28199
                   OPC_MoveParent,
28200 28200
                   OPC_RecordChild1,
28201 28201
                   OPC_SwitchType , 19,  MVT::f64,
... ...
@@ -28211,7 +30553,7 @@ SDNode *SelectCode(SDNode *N) {
28211 28211
                         1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
28212 28212
                   0, 
28213 28213
                 23, 
28214
-                  OPC_CheckPredicate, 40,
28214
+                  OPC_CheckPredicate, 62,
28215 28215
                   OPC_MoveParent,
28216 28216
                   OPC_RecordChild1,
28217 28217
                   OPC_CheckType, MVT::f80,
... ...
@@ -28453,7 +30795,7 @@ SDNode *SelectCode(SDNode *N) {
28453 28453
                 OPC_RecordChild1,
28454 28454
                 OPC_CheckPredicate, 2,
28455 28455
                 OPC_CheckPredicate, 3,
28456
-                OPC_CheckPredicate, 21,
28456
+                OPC_CheckPredicate, 19,
28457 28457
                 OPC_MoveParent,
28458 28458
                 OPC_SwitchType , 42,  MVT::v4f32,
28459 28459
                   OPC_Scope, 19, 
... ...
@@ -28506,7 +30848,7 @@ SDNode *SelectCode(SDNode *N) {
28506 28506
               OPC_RecordChild1,
28507 28507
               OPC_CheckPredicate, 2,
28508 28508
               OPC_CheckPredicate, 3,
28509
-              OPC_CheckPredicate, 21,
28509
+              OPC_CheckPredicate, 19,
28510 28510
               OPC_MoveParent,
28511 28511
               OPC_RecordChild1,
28512 28512
               OPC_SwitchType , 42,  MVT::v4f32,
... ...
@@ -28611,9 +30953,9 @@ SDNode *SelectCode(SDNode *N) {
28611 28611
                         1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
28612 28612
                   0, 
28613 28613
                 73, 
28614
-                  OPC_CheckPredicate, 32,
28614
+                  OPC_CheckPredicate, 54,
28615 28615
                   OPC_Scope, 45, 
28616
-                    OPC_CheckPredicate, 39,
28616
+                    OPC_CheckPredicate, 61,
28617 28617
                     OPC_MoveParent,
28618 28618
                     OPC_SwitchType , 19,  MVT::f64,
28619 28619
                       OPC_CheckPatternPredicate, 8,
... ...
@@ -28628,7 +30970,7 @@ SDNode *SelectCode(SDNode *N) {
28628 28628
                           1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
28629 28629
                     0, 
28630 28630
                   22, 
28631
-                    OPC_CheckPredicate, 40,
28631
+                    OPC_CheckPredicate, 62,
28632 28632
                     OPC_MoveParent,
28633 28633
                     OPC_CheckType, MVT::f80,
28634 28634
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -28654,9 +30996,9 @@ SDNode *SelectCode(SDNode *N) {
28654 28654
                         1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
28655 28655
                   0, 
28656 28656
                 73, 
28657
-                  OPC_CheckPredicate, 32,
28657
+                  OPC_CheckPredicate, 54,
28658 28658
                   OPC_Scope, 45, 
28659
-                    OPC_CheckPredicate, 39,
28659
+                    OPC_CheckPredicate, 61,
28660 28660
                     OPC_MoveParent,
28661 28661
                     OPC_SwitchType , 19,  MVT::f64,
28662 28662
                       OPC_CheckPatternPredicate, 8,
... ...
@@ -28671,7 +31013,7 @@ SDNode *SelectCode(SDNode *N) {
28671 28671
                           1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
28672 28672
                     0, 
28673 28673
                   22, 
28674
-                    OPC_CheckPredicate, 40,
28674
+                    OPC_CheckPredicate, 62,
28675 28675
                     OPC_MoveParent,
28676 28676
                     OPC_CheckType, MVT::f80,
28677 28677
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -28836,7 +31178,7 @@ SDNode *SelectCode(SDNode *N) {
28836 28836
               OPC_RecordChild1,
28837 28837
               OPC_CheckPredicate, 2,
28838 28838
               OPC_CheckPredicate, 3,
28839
-              OPC_CheckPredicate, 21,
28839
+              OPC_CheckPredicate, 19,
28840 28840
               OPC_MoveParent,
28841 28841
               OPC_SwitchType , 42,  MVT::v4f32,
28842 28842
                 OPC_Scope, 19, 
... ...
@@ -28939,9 +31281,9 @@ SDNode *SelectCode(SDNode *N) {
28939 28939
                       1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
28940 28940
                 0, 
28941 28941
               73, 
28942
-                OPC_CheckPredicate, 32,
28942
+                OPC_CheckPredicate, 54,
28943 28943
                 OPC_Scope, 45, 
28944
-                  OPC_CheckPredicate, 39,
28944
+                  OPC_CheckPredicate, 61,
28945 28945
                   OPC_MoveParent,
28946 28946
                   OPC_SwitchType , 19,  MVT::f64,
28947 28947
                     OPC_CheckPatternPredicate, 8,
... ...
@@ -28956,7 +31298,7 @@ SDNode *SelectCode(SDNode *N) {
28956 28956
                         1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
28957 28957
                   0, 
28958 28958
                 22, 
28959
-                  OPC_CheckPredicate, 40,
28959
+                  OPC_CheckPredicate, 62,
28960 28960
                   OPC_MoveParent,
28961 28961
                   OPC_CheckType, MVT::f80,
28962 28962
                   OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -28992,9 +31334,9 @@ SDNode *SelectCode(SDNode *N) {
28992 28992
                       1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
28993 28993
                 0, 
28994 28994
               75, 
28995
-                OPC_CheckPredicate, 32,
28995
+                OPC_CheckPredicate, 54,
28996 28996
                 OPC_Scope, 46, 
28997
-                  OPC_CheckPredicate, 39,
28997
+                  OPC_CheckPredicate, 61,
28998 28998
                   OPC_MoveParent,
28999 28999
                   OPC_RecordChild1,
29000 29000
                   OPC_SwitchType , 19,  MVT::f64,
... ...
@@ -29010,7 +31352,7 @@ SDNode *SelectCode(SDNode *N) {
29010 29010
                         1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
29011 29011
                   0, 
29012 29012
                 23, 
29013
-                  OPC_CheckPredicate, 40,
29013
+                  OPC_CheckPredicate, 62,
29014 29014
                   OPC_MoveParent,
29015 29015
                   OPC_RecordChild1,
29016 29016
                   OPC_CheckType, MVT::f80,
... ...
@@ -29252,7 +31594,7 @@ SDNode *SelectCode(SDNode *N) {
29252 29252
                 OPC_RecordChild1,
29253 29253
                 OPC_CheckPredicate, 2,
29254 29254
                 OPC_CheckPredicate, 3,
29255
-                OPC_CheckPredicate, 21,
29255
+                OPC_CheckPredicate, 19,
29256 29256
                 OPC_MoveParent,
29257 29257
                 OPC_SwitchType , 42,  MVT::v4f32,
29258 29258
                   OPC_Scope, 19, 
... ...
@@ -29305,7 +31647,7 @@ SDNode *SelectCode(SDNode *N) {
29305 29305
               OPC_RecordChild1,
29306 29306
               OPC_CheckPredicate, 2,
29307 29307
               OPC_CheckPredicate, 3,
29308
-              OPC_CheckPredicate, 21,
29308
+              OPC_CheckPredicate, 19,
29309 29309
               OPC_MoveParent,
29310 29310
               OPC_RecordChild1,
29311 29311
               OPC_SwitchType , 42,  MVT::v4f32,
... ...
@@ -29410,9 +31752,9 @@ SDNode *SelectCode(SDNode *N) {
29410 29410
                         1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
29411 29411
                   0, 
29412 29412
                 73, 
29413
-                  OPC_CheckPredicate, 32,
29413
+                  OPC_CheckPredicate, 54,
29414 29414
                   OPC_Scope, 45, 
29415
-                    OPC_CheckPredicate, 39,
29415
+                    OPC_CheckPredicate, 61,
29416 29416
                     OPC_MoveParent,
29417 29417
                     OPC_SwitchType , 19,  MVT::f64,
29418 29418
                       OPC_CheckPatternPredicate, 8,
... ...
@@ -29427,7 +31769,7 @@ SDNode *SelectCode(SDNode *N) {
29427 29427
                           1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
29428 29428
                     0, 
29429 29429
                   22, 
29430
-                    OPC_CheckPredicate, 40,
29430
+                    OPC_CheckPredicate, 62,
29431 29431
                     OPC_MoveParent,
29432 29432
                     OPC_CheckType, MVT::f80,
29433 29433
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -29453,9 +31795,9 @@ SDNode *SelectCode(SDNode *N) {
29453 29453
                         1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
29454 29454
                   0, 
29455 29455
                 73, 
29456
-                  OPC_CheckPredicate, 32,
29456
+                  OPC_CheckPredicate, 54,
29457 29457
                   OPC_Scope, 45, 
29458
-                    OPC_CheckPredicate, 39,
29458
+                    OPC_CheckPredicate, 61,
29459 29459
                     OPC_MoveParent,
29460 29460
                     OPC_SwitchType , 19,  MVT::f64,
29461 29461
                       OPC_CheckPatternPredicate, 8,
... ...
@@ -29470,7 +31812,7 @@ SDNode *SelectCode(SDNode *N) {
29470 29470
                           1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
29471 29471
                     0, 
29472 29472
                   22, 
29473
-                    OPC_CheckPredicate, 40,
29473
+                    OPC_CheckPredicate, 62,
29474 29474
                     OPC_MoveParent,
29475 29475
                     OPC_CheckType, MVT::f80,
29476 29476
                     OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -29635,7 +31977,7 @@ SDNode *SelectCode(SDNode *N) {
29635 29635
               OPC_RecordChild1,
29636 29636
               OPC_CheckPredicate, 2,
29637 29637
               OPC_CheckPredicate, 3,
29638
-              OPC_CheckPredicate, 21,
29638
+              OPC_CheckPredicate, 19,
29639 29639
               OPC_MoveParent,
29640 29640
               OPC_SwitchType , 42,  MVT::v4f32,
29641 29641
                 OPC_Scope, 19, 
... ...
@@ -29812,7 +32154,7 @@ SDNode *SelectCode(SDNode *N) {
29812 29812
               OPC_CheckType, MVT::f64,
29813 29813
               OPC_MoveParent,
29814 29814
               OPC_CheckType, MVT::f32,
29815
-              OPC_CheckPatternPredicate, 19,
29815
+              OPC_CheckPatternPredicate, 20,
29816 29816
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
29817 29817
               OPC_EmitMergeInputChains1_0,
29818 29818
               OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -29856,7 +32198,7 @@ SDNode *SelectCode(SDNode *N) {
29856 29856
               OPC_RecordChild1,
29857 29857
               OPC_CheckPredicate, 2,
29858 29858
               OPC_CheckPredicate, 3,
29859
-              OPC_CheckPredicate, 21,
29859
+              OPC_CheckPredicate, 19,
29860 29860
               OPC_MoveParent,
29861 29861
               OPC_SwitchType , 42,  MVT::f32,
29862 29862
                 OPC_Scope, 19, 
... ...
@@ -29896,7 +32238,7 @@ SDNode *SelectCode(SDNode *N) {
29896 29896
               OPC_RecordChild1,
29897 29897
               OPC_CheckPredicate, 2,
29898 29898
               OPC_CheckPredicate, 3,
29899
-              OPC_CheckPredicate, 21,
29899
+              OPC_CheckPredicate, 19,
29900 29900
               OPC_MoveParent,
29901 29901
               OPC_RecordChild1,
29902 29902
               OPC_SwitchType , 42,  MVT::f32,
... ...
@@ -29964,7 +32306,7 @@ SDNode *SelectCode(SDNode *N) {
29964 29964
               OPC_RecordChild1,
29965 29965
               OPC_CheckPredicate, 2,
29966 29966
               OPC_CheckPredicate, 3,
29967
-              OPC_CheckPredicate, 21,
29967
+              OPC_CheckPredicate, 19,
29968 29968
               OPC_MoveParent,
29969 29969
               OPC_SwitchType , 42,  MVT::f32,
29970 29970
                 OPC_Scope, 19, 
... ...
@@ -30004,7 +32346,7 @@ SDNode *SelectCode(SDNode *N) {
30004 30004
               OPC_RecordChild1,
30005 30005
               OPC_CheckPredicate, 2,
30006 30006
               OPC_CheckPredicate, 3,
30007
-              OPC_CheckPredicate, 21,
30007
+              OPC_CheckPredicate, 19,
30008 30008
               OPC_MoveParent,
30009 30009
               OPC_RecordChild1,
30010 30010
               OPC_SwitchType , 42,  MVT::f32,
... ...
@@ -30072,7 +32414,7 @@ SDNode *SelectCode(SDNode *N) {
30072 30072
               OPC_RecordChild1,
30073 30073
               OPC_CheckPredicate, 2,
30074 30074
               OPC_CheckPredicate, 3,
30075
-              OPC_CheckPredicate, 21,
30075
+              OPC_CheckPredicate, 19,
30076 30076
               OPC_MoveParent,
30077 30077
               OPC_SwitchType , 42,  MVT::f32,
30078 30078
                 OPC_Scope, 19, 
... ...
@@ -30112,7 +32454,7 @@ SDNode *SelectCode(SDNode *N) {
30112 30112
               OPC_RecordChild1,
30113 30113
               OPC_CheckPredicate, 2,
30114 30114
               OPC_CheckPredicate, 3,
30115
-              OPC_CheckPredicate, 21,
30115
+              OPC_CheckPredicate, 19,
30116 30116
               OPC_MoveParent,
30117 30117
               OPC_RecordChild1,
30118 30118
               OPC_SwitchType , 42,  MVT::f32,
... ...
@@ -30242,7 +32584,7 @@ SDNode *SelectCode(SDNode *N) {
30242 30242
               OPC_RecordChild1,
30243 30243
               OPC_CheckPredicate, 2,
30244 30244
               OPC_CheckPredicate, 3,
30245
-              OPC_CheckPredicate, 21,
30245
+              OPC_CheckPredicate, 19,
30246 30246
               OPC_MoveParent,
30247 30247
               OPC_SwitchType , 42,  MVT::v4f32,
30248 30248
                 OPC_Scope, 19, 
... ...
@@ -30390,7 +32732,7 @@ SDNode *SelectCode(SDNode *N) {
30390 30390
               OPC_RecordChild1,
30391 30391
               OPC_CheckPredicate, 2,
30392 30392
               OPC_CheckPredicate, 3,
30393
-              OPC_CheckPredicate, 21,
30393
+              OPC_CheckPredicate, 19,
30394 30394
               OPC_MoveParent,
30395 30395
               OPC_SwitchType , 42,  MVT::v4f32,
30396 30396
                 OPC_Scope, 19, 
... ...
@@ -30476,13 +32818,13 @@ SDNode *SelectCode(SDNode *N) {
30476 30476
               OPC_CheckPredicate, 3,
30477 30477
               OPC_MoveParent,
30478 30478
               OPC_SwitchType , 18,  MVT::f32,
30479
-                OPC_CheckPatternPredicate, 24,
30479
+                OPC_CheckPatternPredicate, 25,
30480 30480
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
30481 30481
                 OPC_EmitMergeInputChains1_0,
30482 30482
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
30483 30483
                     1, MVT::f32, 5, 2, 3, 4, 5, 6, 
30484 30484
               18,  MVT::f64,
30485
-                OPC_CheckPatternPredicate, 19,
30485
+                OPC_CheckPatternPredicate, 20,
30486 30486
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
30487 30487
                 OPC_EmitMergeInputChains1_0,
30488 30488
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -30522,7 +32864,7 @@ SDNode *SelectCode(SDNode *N) {
30522 30522
               OPC_RecordChild1,
30523 30523
               OPC_CheckPredicate, 2,
30524 30524
               OPC_CheckPredicate, 3,
30525
-              OPC_CheckPredicate, 21,
30525
+              OPC_CheckPredicate, 19,
30526 30526
               OPC_MoveParent,
30527 30527
               OPC_SwitchType , 40,  MVT::v4f32,
30528 30528
                 OPC_Scope, 18, 
... ...
@@ -30608,7 +32950,7 @@ SDNode *SelectCode(SDNode *N) {
30608 30608
               OPC_CheckPredicate, 3,
30609 30609
               OPC_MoveParent,
30610 30610
               OPC_CheckType, MVT::f32,
30611
-              OPC_CheckPatternPredicate, 24,
30611
+              OPC_CheckPatternPredicate, 25,
30612 30612
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
30613 30613
               OPC_EmitMergeInputChains1_0,
30614 30614
               OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -30627,7 +32969,7 @@ SDNode *SelectCode(SDNode *N) {
30627 30627
               OPC_RecordChild1,
30628 30628
               OPC_CheckPredicate, 2,
30629 30629
               OPC_CheckPredicate, 3,
30630
-              OPC_CheckPredicate, 21,
30630
+              OPC_CheckPredicate, 19,
30631 30631
               OPC_MoveParent,
30632 30632
               OPC_SwitchType , 40,  MVT::v4f32,
30633 30633
                 OPC_Scope, 18, 
... ...
@@ -30679,7 +33021,7 @@ SDNode *SelectCode(SDNode *N) {
30679 30679
               OPC_CheckPredicate, 3,
30680 30680
               OPC_MoveParent,
30681 30681
               OPC_CheckType, MVT::f32,
30682
-              OPC_CheckPatternPredicate, 24,
30682
+              OPC_CheckPatternPredicate, 25,
30683 30683
               OPC_CheckComplexPat, /*CP*/0, /*#*/1,
30684 30684
               OPC_EmitMergeInputChains1_0,
30685 30685
               OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPSSm), 0|OPFL_Chain|OPFL_MemRefs,
... ...
@@ -30698,7 +33040,7 @@ SDNode *SelectCode(SDNode *N) {
30698 30698
               OPC_RecordChild1,
30699 30699
               OPC_CheckPredicate, 2,
30700 30700
               OPC_CheckPredicate, 3,
30701
-              OPC_CheckPredicate, 21,
30701
+              OPC_CheckPredicate, 19,
30702 30702
               OPC_MoveParent,
30703 30703
               OPC_SwitchType , 40,  MVT::v4f32,
30704 30704
                 OPC_Scope, 18, 
... ...
@@ -30898,29 +33240,29 @@ SDNode *SelectCode(SDNode *N) {
30898 30898
           94|128,1,  TARGET_OPCODE(ISD::ConstantFP),
30899 30899
             OPC_SwitchType , 78,  MVT::f32,
30900 30900
               OPC_Scope, 11, 
30901
-                OPC_CheckPredicate, 82,
30901
+                OPC_CheckPredicate, 104,
30902 30902
                 OPC_CheckPatternPredicate, 7,
30903 30903
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp032), 0,
30904 30904
                     1, MVT::f32, 0, 
30905 30905
               11, 
30906
-                OPC_CheckPredicate, 83,
30906
+                OPC_CheckPredicate, 105,
30907 30907
                 OPC_CheckPatternPredicate, 7,
30908 30908
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp132), 0,
30909 30909
                     1, MVT::f32, 0, 
30910 30910
               11, 
30911
-                OPC_CheckPredicate, 84,
30911
+                OPC_CheckPredicate, 106,
30912 30912
                 OPC_CheckPatternPredicate, 1,
30913 30913
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::FsFLD0SS), 0,
30914 30914
                     1, MVT::f32, 0, 
30915 30915
               19, 
30916
-                OPC_CheckPredicate, 85,
30916
+                OPC_CheckPredicate, 107,
30917 30917
                 OPC_CheckPatternPredicate, 7,
30918 30918
                 OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp032), 0,
30919 30919
                     1, MVT::f32, 0, 
30920 30920
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp32), 0,
30921 30921
                     1, MVT::f32, 1, 0, 
30922 30922
               19, 
30923
-                OPC_CheckPredicate, 86,
30923
+                OPC_CheckPredicate, 108,
30924 30924
                 OPC_CheckPatternPredicate, 7,
30925 30925
                 OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp132), 0,
30926 30926
                     1, MVT::f32, 0, 
... ...
@@ -30929,29 +33271,29 @@ SDNode *SelectCode(SDNode *N) {
30929 30929
               0, 
30930 30930
             78,  MVT::f64,
30931 30931
               OPC_Scope, 11, 
30932
-                OPC_CheckPredicate, 82,
30932
+                OPC_CheckPredicate, 104,
30933 30933
                 OPC_CheckPatternPredicate, 8,
30934 30934
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp064), 0,
30935 30935
                     1, MVT::f64, 0, 
30936 30936
               11, 
30937
-                OPC_CheckPredicate, 83,
30937
+                OPC_CheckPredicate, 105,
30938 30938
                 OPC_CheckPatternPredicate, 8,
30939 30939
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp164), 0,
30940 30940
                     1, MVT::f64, 0, 
30941 30941
               11, 
30942
-                OPC_CheckPredicate, 82,
30942
+                OPC_CheckPredicate, 104,
30943 30943
                 OPC_CheckPatternPredicate, 2,
30944 30944
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::FsFLD0SD), 0,
30945 30945
                     1, MVT::f64, 0, 
30946 30946
               19, 
30947
-                OPC_CheckPredicate, 85,
30947
+                OPC_CheckPredicate, 107,
30948 30948
                 OPC_CheckPatternPredicate, 8,
30949 30949
                 OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp064), 0,
30950 30950
                     1, MVT::f64, 0, 
30951 30951
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp64), 0,
30952 30952
                     1, MVT::f64, 1, 0, 
30953 30953
               19, 
30954
-                OPC_CheckPredicate, 86,
30954
+                OPC_CheckPredicate, 108,
30955 30955
                 OPC_CheckPatternPredicate, 8,
30956 30956
                 OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp164), 0,
30957 30957
                     1, MVT::f64, 0, 
... ...
@@ -30960,21 +33302,21 @@ SDNode *SelectCode(SDNode *N) {
30960 30960
               0, 
30961 30961
             58,  MVT::f80,
30962 30962
               OPC_Scope, 9, 
30963
-                OPC_CheckPredicate, 82,
30963
+                OPC_CheckPredicate, 104,
30964 30964
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp080), 0,
30965 30965
                     1, MVT::f80, 0, 
30966 30966
               9, 
30967
-                OPC_CheckPredicate, 83,
30967
+                OPC_CheckPredicate, 105,
30968 30968
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp180), 0,
30969 30969
                     1, MVT::f80, 0, 
30970 30970
               17, 
30971
-                OPC_CheckPredicate, 85,
30971
+                OPC_CheckPredicate, 107,
30972 30972
                 OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp080), 0,
30973 30973
                     1, MVT::f80, 0, 
30974 30974
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp80), 0,
30975 30975
                     1, MVT::f80, 1, 0, 
30976 30976
               17, 
30977
-                OPC_CheckPredicate, 86,
30977
+                OPC_CheckPredicate, 108,
30978 30978
                 OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp180), 0,
30979 30979
                     1, MVT::f80, 0, 
30980 30980
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp80), 0,
... ...
@@ -31037,2331 +33379,6 @@ SDNode *SelectCode(SDNode *N) {
31037 31037
               OPC_MorphNodeTo, TARGET_OPCODE(X86::COS_Fp80), 0,
31038 31038
                   1, MVT::f80, 1, 0, 
31039 31039
             0, 
31040
-          121|128,33,  TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
31041
-            OPC_Scope, 76, 
31042
-              OPC_MoveChild, 0,
31043
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31044
-              OPC_MoveChild, 0,
31045
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31046
-              OPC_RecordMemRef,
31047
-              OPC_RecordNode,
31048
-              OPC_CheckFoldableChainNode,
31049
-              OPC_RecordChild1,
31050
-              OPC_CheckPredicate, 2,
31051
-              OPC_CheckPredicate, 3,
31052
-              OPC_CheckPredicate, 21,
31053
-              OPC_CheckType, MVT::v2i64,
31054
-              OPC_MoveParent,
31055
-              OPC_MoveParent,
31056
-              OPC_MoveChild, 1,
31057
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31058
-              OPC_MoveParent,
31059
-              OPC_CheckType, MVT::v4i32,
31060
-              OPC_Scope, 20, 
31061
-                OPC_CheckPredicate, 87,
31062
-                OPC_CheckPatternPredicate, 14,
31063
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
31064
-                OPC_EmitMergeInputChains1_0,
31065
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
31066
-                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
31067
-              20, 
31068
-                OPC_CheckPredicate, 88,
31069
-                OPC_CheckPatternPredicate, 14,
31070
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
31071
-                OPC_EmitMergeInputChains1_0,
31072
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
31073
-                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
31074
-              0, 
31075
-            57, 
31076
-              OPC_RecordChild0,
31077
-              OPC_MoveChild, 1,
31078
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31079
-              OPC_RecordMemRef,
31080
-              OPC_RecordNode,
31081
-              OPC_CheckFoldableChainNode,
31082
-              OPC_RecordChild1,
31083
-              OPC_CheckPredicate, 2,
31084
-              OPC_CheckPredicate, 3,
31085
-              OPC_MoveParent,
31086
-              OPC_CheckPredicate, 11,
31087
-              OPC_SwitchType , 17,  MVT::v4i32,
31088
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31089
-                OPC_EmitMergeInputChains1_1,
31090
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31091
-                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
31092
-              17,  MVT::v2i64,
31093
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31094
-                OPC_EmitMergeInputChains1_1,
31095
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31096
-                    1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
31097
-              0, 
31098
-            83, 
31099
-              OPC_RecordNode,
31100
-              OPC_MoveChild, 0,
31101
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31102
-              OPC_MoveChild, 0,
31103
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31104
-              OPC_RecordMemRef,
31105
-              OPC_RecordNode,
31106
-              OPC_CheckFoldableChainNode,
31107
-              OPC_RecordChild1,
31108
-              OPC_CheckPredicate, 2,
31109
-              OPC_CheckPredicate, 3,
31110
-              OPC_CheckPredicate, 21,
31111
-              OPC_CheckType, MVT::v2i64,
31112
-              OPC_MoveParent,
31113
-              OPC_MoveParent,
31114
-              OPC_MoveChild, 1,
31115
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31116
-              OPC_MoveParent,
31117
-              OPC_CheckPredicate, 89,
31118
-              OPC_CheckType, MVT::v4i32,
31119
-              OPC_Scope, 22, 
31120
-                OPC_CheckPatternPredicate, 0,
31121
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31122
-                OPC_EmitMergeInputChains1_1,
31123
-                OPC_EmitNodeXForm, 2, 0,
31124
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
31125
-                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
31126
-              22, 
31127
-                OPC_CheckPatternPredicate, 2,
31128
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31129
-                OPC_EmitMergeInputChains1_1,
31130
-                OPC_EmitNodeXForm, 2, 0,
31131
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
31132
-                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
31133
-              0, 
31134
-            96, 
31135
-              OPC_MoveChild, 0,
31136
-              OPC_SwitchOpcode , 47,  TARGET_OPCODE(ISD::BIT_CONVERT),
31137
-                OPC_MoveChild, 0,
31138
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31139
-                OPC_RecordMemRef,
31140
-                OPC_RecordNode,
31141
-                OPC_CheckFoldableChainNode,
31142
-                OPC_RecordChild1,
31143
-                OPC_CheckPredicate, 2,
31144
-                OPC_CheckPredicate, 3,
31145
-                OPC_CheckPredicate, 21,
31146
-                OPC_CheckType, MVT::v2i64,
31147
-                OPC_MoveParent,
31148
-                OPC_MoveParent,
31149
-                OPC_MoveChild, 1,
31150
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31151
-                OPC_MoveParent,
31152
-                OPC_CheckPredicate, 90,
31153
-                OPC_CheckType, MVT::v4i32,
31154
-                OPC_CheckPatternPredicate, 14,
31155
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
31156
-                OPC_EmitMergeInputChains1_0,
31157
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
31158
-                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
31159
-              39,  TARGET_OPCODE(ISD::LOAD),
31160
-                OPC_RecordMemRef,
31161
-                OPC_RecordNode,
31162
-                OPC_CheckFoldableChainNode,
31163
-                OPC_RecordChild1,
31164
-                OPC_CheckPredicate, 2,
31165
-                OPC_CheckPredicate, 3,
31166
-                OPC_CheckPredicate, 21,
31167
-                OPC_MoveParent,
31168
-                OPC_MoveChild, 1,
31169
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31170
-                OPC_MoveParent,
31171
-                OPC_CheckPredicate, 90,
31172
-                OPC_CheckType, MVT::v2i64,
31173
-                OPC_CheckPatternPredicate, 14,
31174
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
31175
-                OPC_EmitMergeInputChains1_0,
31176
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
31177
-                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
31178
-              0, 
31179
-            86|128,1, 
31180
-              OPC_RecordNode,
31181
-              OPC_MoveChild, 0,
31182
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31183
-              OPC_MoveChild, 0,
31184
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31185
-              OPC_RecordMemRef,
31186
-              OPC_RecordNode,
31187
-              OPC_CheckFoldableChainNode,
31188
-              OPC_RecordChild1,
31189
-              OPC_CheckPredicate, 2,
31190
-              OPC_CheckPredicate, 3,
31191
-              OPC_Scope, 26|128,1, 
31192
-                OPC_CheckPredicate, 21,
31193
-                OPC_SwitchType , 112,  MVT::v2i64,
31194
-                  OPC_MoveParent,
31195
-                  OPC_MoveParent,
31196
-                  OPC_MoveChild, 1,
31197
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31198
-                  OPC_MoveParent,
31199
-                  OPC_CheckType, MVT::v8i16,
31200
-                  OPC_Scope, 24, 
31201
-                    OPC_CheckPredicate, 91,
31202
-                    OPC_CheckPatternPredicate, 0,
31203
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31204
-                    OPC_EmitMergeInputChains1_1,
31205
-                    OPC_EmitNodeXForm, 3, 0,
31206
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
31207
-                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
31208
-                  24, 
31209
-                    OPC_CheckPredicate, 92,
31210
-                    OPC_CheckPatternPredicate, 0,
31211
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31212
-                    OPC_EmitMergeInputChains1_1,
31213
-                    OPC_EmitNodeXForm, 4, 0,
31214
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
31215
-                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
31216
-                  24, 
31217
-                    OPC_CheckPredicate, 91,
31218
-                    OPC_CheckPatternPredicate, 2,
31219
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31220
-                    OPC_EmitMergeInputChains1_1,
31221
-                    OPC_EmitNodeXForm, 3, 0,
31222
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
31223
-                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
31224
-                  24, 
31225
-                    OPC_CheckPredicate, 92,
31226
-                    OPC_CheckPatternPredicate, 2,
31227
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31228
-                    OPC_EmitMergeInputChains1_1,
31229
-                    OPC_EmitNodeXForm, 4, 0,
31230
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
31231
-                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
31232
-                  0, 
31233
-                34,  MVT::v4f32,
31234
-                  OPC_MoveParent,
31235
-                  OPC_MoveParent,
31236
-                  OPC_MoveChild, 1,
31237
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31238
-                  OPC_MoveParent,
31239
-                  OPC_CheckPredicate, 89,
31240
-                  OPC_CheckType, MVT::v4i32,
31241
-                  OPC_CheckPatternPredicate, 2,
31242
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31243
-                  OPC_EmitMergeInputChains1_1,
31244
-                  OPC_EmitNodeXForm, 2, 0,
31245
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
31246
-                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
31247
-                0, 
31248
-              36, 
31249
-                OPC_CheckType, MVT::v1i64,
31250
-                OPC_MoveParent,
31251
-                OPC_MoveParent,
31252
-                OPC_MoveChild, 1,
31253
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31254
-                OPC_MoveParent,
31255
-                OPC_CheckPredicate, 93,
31256
-                OPC_CheckType, MVT::v4i16,
31257
-                OPC_CheckPatternPredicate, 9,
31258
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31259
-                OPC_EmitMergeInputChains1_1,
31260
-                OPC_EmitNodeXForm, 5, 0,
31261
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSHUFWmi), 0|OPFL_Chain|OPFL_MemRefs,
31262
-                    1, MVT::v4i16, 6, 3, 4, 5, 6, 7, 8, 
31263
-              0, 
31264
-            43|128,2, 
31265
-              OPC_RecordChild0,
31266
-              OPC_MoveChild, 1,
31267
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31268
-              OPC_MoveChild, 0,
31269
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31270
-              OPC_RecordMemRef,
31271
-              OPC_RecordNode,
31272
-              OPC_CheckFoldableChainNode,
31273
-              OPC_RecordChild1,
31274
-              OPC_CheckPredicate, 2,
31275
-              OPC_CheckPredicate, 3,
31276
-              OPC_CheckPredicate, 21,
31277
-              OPC_CheckType, MVT::v2i64,
31278
-              OPC_MoveParent,
31279
-              OPC_MoveParent,
31280
-              OPC_Scope, 67, 
31281
-                OPC_CheckPredicate, 94,
31282
-                OPC_SwitchType , 19,  MVT::v16i8,
31283
-                  OPC_CheckPatternPredicate, 0,
31284
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31285
-                  OPC_EmitMergeInputChains1_1,
31286
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
31287
-                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
31288
-                19,  MVT::v8i16,
31289
-                  OPC_CheckPatternPredicate, 0,
31290
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31291
-                  OPC_EmitMergeInputChains1_1,
31292
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
31293
-                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
31294
-                19,  MVT::v4i32,
31295
-                  OPC_CheckPatternPredicate, 0,
31296
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31297
-                  OPC_EmitMergeInputChains1_1,
31298
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31299
-                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
31300
-                0, 
31301
-              67, 
31302
-                OPC_CheckPredicate, 12,
31303
-                OPC_SwitchType , 19,  MVT::v16i8,
31304
-                  OPC_CheckPatternPredicate, 0,
31305
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31306
-                  OPC_EmitMergeInputChains1_1,
31307
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
31308
-                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
31309
-                19,  MVT::v8i16,
31310
-                  OPC_CheckPatternPredicate, 0,
31311
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31312
-                  OPC_EmitMergeInputChains1_1,
31313
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
31314
-                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
31315
-                19,  MVT::v4i32,
31316
-                  OPC_CheckPatternPredicate, 0,
31317
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31318
-                  OPC_EmitMergeInputChains1_1,
31319
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31320
-                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
31321
-                0, 
31322
-              67, 
31323
-                OPC_CheckPredicate, 94,
31324
-                OPC_SwitchType , 19,  MVT::v16i8,
31325
-                  OPC_CheckPatternPredicate, 2,
31326
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31327
-                  OPC_EmitMergeInputChains1_1,
31328
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
31329
-                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
31330
-                19,  MVT::v8i16,
31331
-                  OPC_CheckPatternPredicate, 2,
31332
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31333
-                  OPC_EmitMergeInputChains1_1,
31334
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
31335
-                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
31336
-                19,  MVT::v4i32,
31337
-                  OPC_CheckPatternPredicate, 2,
31338
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31339
-                  OPC_EmitMergeInputChains1_1,
31340
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31341
-                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
31342
-                0, 
31343
-              67, 
31344
-                OPC_CheckPredicate, 12,
31345
-                OPC_SwitchType , 19,  MVT::v16i8,
31346
-                  OPC_CheckPatternPredicate, 2,
31347
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31348
-                  OPC_EmitMergeInputChains1_1,
31349
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
31350
-                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
31351
-                19,  MVT::v8i16,
31352
-                  OPC_CheckPatternPredicate, 2,
31353
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31354
-                  OPC_EmitMergeInputChains1_1,
31355
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
31356
-                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
31357
-                19,  MVT::v4i32,
31358
-                  OPC_CheckPatternPredicate, 2,
31359
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31360
-                  OPC_EmitMergeInputChains1_1,
31361
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31362
-                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
31363
-                0, 
31364
-              0, 
31365
-            55, 
31366
-              OPC_RecordNode,
31367
-              OPC_RecordChild0,
31368
-              OPC_MoveChild, 1,
31369
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31370
-              OPC_MoveChild, 0,
31371
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31372
-              OPC_RecordMemRef,
31373
-              OPC_RecordNode,
31374
-              OPC_CheckFoldableChainNode,
31375
-              OPC_RecordChild1,
31376
-              OPC_CheckPredicate, 2,
31377
-              OPC_CheckPredicate, 3,
31378
-              OPC_CheckPredicate, 21,
31379
-              OPC_CheckType, MVT::v2i64,
31380
-              OPC_MoveParent,
31381
-              OPC_MoveParent,
31382
-              OPC_CheckPredicate, 95,
31383
-              OPC_CheckType, MVT::v4i32,
31384
-              OPC_CheckPatternPredicate, 2,
31385
-              OPC_CheckComplexPat, /*CP*/0, /*#*/3,
31386
-              OPC_EmitMergeInputChains, 1, 2, 
31387
-              OPC_EmitNodeXForm, 2, 0,
31388
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
31389
-                  1, MVT::v4i32, 7, 1, 4, 5, 6, 7, 8, 9, 
31390
-            23|128,3, 
31391
-              OPC_RecordChild0,
31392
-              OPC_Scope, 79|128,2, 
31393
-                OPC_MoveChild, 1,
31394
-                OPC_SwitchOpcode , 61|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
31395
-                  OPC_MoveChild, 0,
31396
-                  OPC_SwitchOpcode , 22|128,1,  TARGET_OPCODE(ISD::LOAD),
31397
-                    OPC_RecordMemRef,
31398
-                    OPC_RecordNode,
31399
-                    OPC_CheckFoldableChainNode,
31400
-                    OPC_RecordChild1,
31401
-                    OPC_CheckPredicate, 2,
31402
-                    OPC_CheckPredicate, 3,
31403
-                    OPC_CheckType, MVT::v1i64,
31404
-                    OPC_MoveParent,
31405
-                    OPC_MoveParent,
31406
-                    OPC_Scope, 67, 
31407
-                      OPC_CheckPredicate, 96,
31408
-                      OPC_SwitchType , 19,  MVT::v8i8,
31409
-                        OPC_CheckPatternPredicate, 9,
31410
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31411
-                        OPC_EmitMergeInputChains1_1,
31412
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
31413
-                            1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
31414
-                      19,  MVT::v4i16,
31415
-                        OPC_CheckPatternPredicate, 9,
31416
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31417
-                        OPC_EmitMergeInputChains1_1,
31418
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
31419
-                            1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
31420
-                      19,  MVT::v2i32,
31421
-                        OPC_CheckPatternPredicate, 9,
31422
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31423
-                        OPC_EmitMergeInputChains1_1,
31424
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31425
-                            1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
31426
-                      0, 
31427
-                    67, 
31428
-                      OPC_CheckPredicate, 97,
31429
-                      OPC_SwitchType , 19,  MVT::v8i8,
31430
-                        OPC_CheckPatternPredicate, 9,
31431
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31432
-                        OPC_EmitMergeInputChains1_1,
31433
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
31434
-                            1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
31435
-                      19,  MVT::v4i16,
31436
-                        OPC_CheckPatternPredicate, 9,
31437
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31438
-                        OPC_EmitMergeInputChains1_1,
31439
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
31440
-                            1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
31441
-                      19,  MVT::v2i32,
31442
-                        OPC_CheckPatternPredicate, 9,
31443
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31444
-                        OPC_EmitMergeInputChains1_1,
31445
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31446
-                            1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
31447
-                      0, 
31448
-                    0, 
31449
-                  28,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
31450
-                    OPC_RecordNode,
31451
-                    OPC_CheckFoldableChainNode,
31452
-                    OPC_RecordChild1,
31453
-                    OPC_CheckType, MVT::v2i64,
31454
-                    OPC_MoveParent,
31455
-                    OPC_MoveParent,
31456
-                    OPC_CheckPredicate, 98,
31457
-                    OPC_CheckType, MVT::v4i32,
31458
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31459
-                    OPC_EmitMergeInputChains1_1,
31460
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain,
31461
-                        1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
31462
-                  0, 
31463
-                29,  TARGET_OPCODE(ISD::UNDEF),
31464
-                  OPC_MoveParent,
31465
-                  OPC_SwitchType , 11,  MVT::v2i64,
31466
-                    OPC_CheckPredicate, 90,
31467
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
31468
-                        1, MVT::v2i64, 2, 0, 0, 
31469
-                  11,  MVT::v4i32,
31470
-                    OPC_CheckPredicate, 99,
31471
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
31472
-                        1, MVT::v4i32, 2, 0, 0, 
31473
-                  0, 
31474
-                103,  TARGET_OPCODE(ISD::LOAD),
31475
-                  OPC_RecordMemRef,
31476
-                  OPC_RecordNode,
31477
-                  OPC_CheckFoldableChainNode,
31478
-                  OPC_RecordChild1,
31479
-                  OPC_CheckPredicate, 2,
31480
-                  OPC_CheckPredicate, 3,
31481
-                  OPC_CheckPredicate, 21,
31482
-                  OPC_MoveParent,
31483
-                  OPC_CheckType, MVT::v2i64,
31484
-                  OPC_Scope, 21, 
31485
-                    OPC_CheckPredicate, 94,
31486
-                    OPC_CheckPatternPredicate, 0,
31487
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31488
-                    OPC_EmitMergeInputChains1_1,
31489
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31490
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
31491
-                  21, 
31492
-                    OPC_CheckPredicate, 12,
31493
-                    OPC_CheckPatternPredicate, 0,
31494
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31495
-                    OPC_EmitMergeInputChains1_1,
31496
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31497
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
31498
-                  21, 
31499
-                    OPC_CheckPredicate, 94,
31500
-                    OPC_CheckPatternPredicate, 2,
31501
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31502
-                    OPC_EmitMergeInputChains1_1,
31503
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31504
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
31505
-                  21, 
31506
-                    OPC_CheckPredicate, 12,
31507
-                    OPC_CheckPatternPredicate, 2,
31508
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31509
-                    OPC_EmitMergeInputChains1_1,
31510
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
31511
-                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
31512
-                  0, 
31513
-                0, 
31514
-              29, 
31515
-                OPC_RecordChild1,
31516
-                OPC_CheckType, MVT::v4i32,
31517
-                OPC_Scope, 11, 
31518
-                  OPC_CheckPredicate, 98,
31519
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
31520
-                      1, MVT::v4i32, 2, 0, 1, 
31521
-                11, 
31522
-                  OPC_CheckPredicate, 100,
31523
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
31524
-                      1, MVT::v4i32, 2, 0, 1, 
31525
-                0, 
31526
-              36, 
31527
-                OPC_MoveChild, 1,
31528
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31529
-                OPC_MoveParent,
31530
-                OPC_CheckType, MVT::v4i32,
31531
-                OPC_Scope, 12, 
31532
-                  OPC_CheckPredicate, 87,
31533
-                  OPC_CheckPatternPredicate, 14,
31534
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
31535
-                      1, MVT::v4i32, 1, 0, 
31536
-                12, 
31537
-                  OPC_CheckPredicate, 88,
31538
-                  OPC_CheckPatternPredicate, 14,
31539
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
31540
-                      1, MVT::v4i32, 1, 0, 
31541
-                0, 
31542
-              0, 
31543
-            46, 
31544
-              OPC_RecordNode,
31545
-              OPC_RecordChild0,
31546
-              OPC_MoveChild, 1,
31547
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31548
-              OPC_MoveParent,
31549
-              OPC_CheckType, MVT::v4i32,
31550
-              OPC_Scope, 16, 
31551
-                OPC_CheckPredicate, 101,
31552
-                OPC_CheckPatternPredicate, 25,
31553
-                OPC_EmitNodeXForm, 2, 0,
31554
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
31555
-                    1, MVT::v4i32, 2, 1, 2, 
31556
-              16, 
31557
-                OPC_CheckPredicate, 102,
31558
-                OPC_CheckPatternPredicate, 25,
31559
-                OPC_EmitNodeXForm, 2, 0,
31560
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
31561
-                    1, MVT::v4i32, 2, 1, 2, 
31562
-              0, 
31563
-            24|128,2, 
31564
-              OPC_RecordChild0,
31565
-              OPC_Scope, 82, 
31566
-                OPC_RecordChild1,
31567
-                OPC_Scope, 50, 
31568
-                  OPC_CheckPredicate, 103,
31569
-                  OPC_SwitchType , 21,  MVT::v4i32,
31570
-                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
31571
-                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
31572
-                        1, MVT::f32, 2, 1, 2, 
31573
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
31574
-                        1, MVT::v4i32, 2, 0, 3, 
31575
-                  21,  MVT::v2i64,
31576
-                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
31577
-                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
31578
-                        1, MVT::f64, 2, 1, 2, 
31579
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
31580
-                        1, MVT::v2i64, 2, 0, 3, 
31581
-                  0, 
31582
-                27, 
31583
-                  OPC_CheckPredicate, 11,
31584
-                  OPC_CheckType, MVT::v4i32,
31585
-                  OPC_CheckPatternPredicate, 2,
31586
-                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
31587
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
31588
-                      1, MVT::f64, 2, 1, 2, 
31589
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
31590
-                      1, MVT::v4i32, 2, 0, 3, 
31591
-                0, 
31592
-              64|128,1, 
31593
-                OPC_MoveChild, 1,
31594
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31595
-                OPC_MoveParent,
31596
-                OPC_Scope, 15, 
31597
-                  OPC_CheckPredicate, 104,
31598
-                  OPC_CheckType, MVT::v2i64,
31599
-                  OPC_CheckPatternPredicate, 2,
31600
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
31601
-                      1, MVT::v2i64, 2, 0, 0, 
31602
-                15, 
31603
-                  OPC_CheckPredicate, 12,
31604
-                  OPC_CheckType, MVT::v2i64,
31605
-                  OPC_CheckPatternPredicate, 2,
31606
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
31607
-                      1, MVT::v2i64, 2, 0, 0, 
31608
-                37, 
31609
-                  OPC_CheckPredicate, 101,
31610
-                  OPC_SwitchType , 9,  MVT::v16i8,
31611
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
31612
-                        1, MVT::v16i8, 2, 0, 0, 
31613
-                  9,  MVT::v8i16,
31614
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
31615
-                        1, MVT::v8i16, 2, 0, 0, 
31616
-                  9,  MVT::v4i32,
31617
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
31618
-                        1, MVT::v4i32, 2, 0, 0, 
31619
-                  0, 
31620
-                37, 
31621
-                  OPC_CheckPredicate, 102,
31622
-                  OPC_SwitchType , 9,  MVT::v16i8,
31623
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
31624
-                        1, MVT::v16i8, 2, 0, 0, 
31625
-                  9,  MVT::v8i16,
31626
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
31627
-                        1, MVT::v8i16, 2, 0, 0, 
31628
-                  9,  MVT::v4i32,
31629
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
31630
-                        1, MVT::v4i32, 2, 0, 0, 
31631
-                  0, 
31632
-                37, 
31633
-                  OPC_CheckPredicate, 105,
31634
-                  OPC_SwitchType , 9,  MVT::v8i8,
31635
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrr), 0,
31636
-                        1, MVT::v8i8, 2, 0, 0, 
31637
-                  9,  MVT::v4i16,
31638
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrr), 0,
31639
-                        1, MVT::v4i16, 2, 0, 0, 
31640
-                  9,  MVT::v2i32,
31641
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
31642
-                        1, MVT::v2i32, 2, 0, 0, 
31643
-                  0, 
31644
-                37, 
31645
-                  OPC_CheckPredicate, 106,
31646
-                  OPC_SwitchType , 9,  MVT::v8i8,
31647
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrr), 0,
31648
-                        1, MVT::v8i8, 2, 0, 0, 
31649
-                  9,  MVT::v4i16,
31650
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrr), 0,
31651
-                        1, MVT::v4i16, 2, 0, 0, 
31652
-                  9,  MVT::v2i32,
31653
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrr), 0,
31654
-                        1, MVT::v2i32, 2, 0, 0, 
31655
-                  0, 
31656
-                0, 
31657
-              0, 
31658
-            39, 
31659
-              OPC_MoveChild, 0,
31660
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
31661
-              OPC_CheckPredicate, 107,
31662
-              OPC_MoveParent,
31663
-              OPC_MoveChild, 1,
31664
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
31665
-              OPC_MoveChild, 0,
31666
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31667
-              OPC_RecordChild0,
31668
-              OPC_CheckChild0Type, MVT::v1i64,
31669
-              OPC_CheckType, MVT::i64,
31670
-              OPC_MoveParent,
31671
-              OPC_MoveParent,
31672
-              OPC_CheckPredicate, 103,
31673
-              OPC_CheckType, MVT::v2i64,
31674
-              OPC_CheckPatternPredicate, 2,
31675
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
31676
-                  1, MVT::v2i64, 1, 0, 
31677
-            44|128,1, 
31678
-              OPC_RecordNode,
31679
-              OPC_RecordChild0,
31680
-              OPC_Scope, 42, 
31681
-                OPC_MoveChild, 1,
31682
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31683
-                OPC_MoveParent,
31684
-                OPC_CheckPredicate, 89,
31685
-                OPC_CheckType, MVT::v4i32,
31686
-                OPC_Scope, 14, 
31687
-                  OPC_CheckPatternPredicate, 0,
31688
-                  OPC_EmitNodeXForm, 2, 0,
31689
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
31690
-                      1, MVT::v4i32, 2, 1, 2, 
31691
-                14, 
31692
-                  OPC_CheckPatternPredicate, 2,
31693
-                  OPC_EmitNodeXForm, 2, 0,
31694
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
31695
-                      1, MVT::v4i32, 2, 1, 2, 
31696
-                0, 
31697
-              124, 
31698
-                OPC_RecordChild1,
31699
-                OPC_CheckPredicate, 108,
31700
-                OPC_SwitchType , 15,  MVT::v1i64,
31701
-                  OPC_CheckPatternPredicate, 11,
31702
-                  OPC_EmitNodeXForm, 6, 0,
31703
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
31704
-                      1, MVT::v1i64, 3, 2, 1, 3, 
31705
-                15,  MVT::v2i32,
31706
-                  OPC_CheckPatternPredicate, 11,
31707
-                  OPC_EmitNodeXForm, 6, 0,
31708
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
31709
-                      1, MVT::v2i32, 3, 2, 1, 3, 
31710
-                15,  MVT::v4i16,
31711
-                  OPC_CheckPatternPredicate, 11,
31712
-                  OPC_EmitNodeXForm, 6, 0,
31713
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
31714
-                      1, MVT::v4i16, 3, 2, 1, 3, 
31715
-                15,  MVT::v8i8,
31716
-                  OPC_CheckPatternPredicate, 11,
31717
-                  OPC_EmitNodeXForm, 6, 0,
31718
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
31719
-                      1, MVT::v8i8, 3, 2, 1, 3, 
31720
-                15,  MVT::v4i32,
31721
-                  OPC_CheckPatternPredicate, 11,
31722
-                  OPC_EmitNodeXForm, 6, 0,
31723
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
31724
-                      1, MVT::v4i32, 3, 2, 1, 3, 
31725
-                15,  MVT::v8i16,
31726
-                  OPC_CheckPatternPredicate, 11,
31727
-                  OPC_EmitNodeXForm, 6, 0,
31728
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
31729
-                      1, MVT::v8i16, 3, 2, 1, 3, 
31730
-                15,  MVT::v16i8,
31731
-                  OPC_CheckPatternPredicate, 11,
31732
-                  OPC_EmitNodeXForm, 6, 0,
31733
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
31734
-                      1, MVT::v16i8, 3, 2, 1, 3, 
31735
-                0, 
31736
-              0, 
31737
-            39|128,2, 
31738
-              OPC_RecordChild0,
31739
-              OPC_MoveChild, 1,
31740
-              OPC_SwitchOpcode , 119,  TARGET_OPCODE(ISD::BIT_CONVERT),
31741
-                OPC_MoveChild, 0,
31742
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
31743
-                OPC_MoveChild, 0,
31744
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31745
-                OPC_RecordMemRef,
31746
-                OPC_RecordNode,
31747
-                OPC_CheckFoldableChainNode,
31748
-                OPC_RecordChild1,
31749
-                OPC_CheckPredicate, 2,
31750
-                OPC_CheckPredicate, 3,
31751
-                OPC_CheckPredicate, 4,
31752
-                OPC_CheckType, MVT::f64,
31753
-                OPC_MoveParent,
31754
-                OPC_CheckType, MVT::v2f64,
31755
-                OPC_MoveParent,
31756
-                OPC_MoveParent,
31757
-                OPC_CheckType, MVT::v4f32,
31758
-                OPC_Scope, 21, 
31759
-                  OPC_CheckPredicate, 11,
31760
-                  OPC_CheckPatternPredicate, 0,
31761
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31762
-                  OPC_EmitMergeInputChains1_1,
31763
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31764
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31765
-                21, 
31766
-                  OPC_CheckPredicate, 98,
31767
-                  OPC_CheckPatternPredicate, 0,
31768
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31769
-                  OPC_EmitMergeInputChains1_1,
31770
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31771
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31772
-                21, 
31773
-                  OPC_CheckPredicate, 11,
31774
-                  OPC_CheckPatternPredicate, 1,
31775
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31776
-                  OPC_EmitMergeInputChains1_1,
31777
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31778
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31779
-                21, 
31780
-                  OPC_CheckPredicate, 98,
31781
-                  OPC_CheckPatternPredicate, 1,
31782
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31783
-                  OPC_EmitMergeInputChains1_1,
31784
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31785
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31786
-                0, 
31787
-              111,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
31788
-                OPC_MoveChild, 0,
31789
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31790
-                OPC_RecordMemRef,
31791
-                OPC_RecordNode,
31792
-                OPC_CheckFoldableChainNode,
31793
-                OPC_RecordChild1,
31794
-                OPC_CheckPredicate, 2,
31795
-                OPC_CheckPredicate, 3,
31796
-                OPC_CheckPredicate, 4,
31797
-                OPC_CheckType, MVT::f64,
31798
-                OPC_MoveParent,
31799
-                OPC_MoveParent,
31800
-                OPC_CheckType, MVT::v2f64,
31801
-                OPC_Scope, 21, 
31802
-                  OPC_CheckPredicate, 11,
31803
-                  OPC_CheckPatternPredicate, 0,
31804
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31805
-                  OPC_EmitMergeInputChains1_1,
31806
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31807
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31808
-                21, 
31809
-                  OPC_CheckPredicate, 98,
31810
-                  OPC_CheckPatternPredicate, 0,
31811
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31812
-                  OPC_EmitMergeInputChains1_1,
31813
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31814
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31815
-                21, 
31816
-                  OPC_CheckPredicate, 11,
31817
-                  OPC_CheckPatternPredicate, 2,
31818
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31819
-                  OPC_EmitMergeInputChains1_1,
31820
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31821
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31822
-                21, 
31823
-                  OPC_CheckPredicate, 98,
31824
-                  OPC_CheckPatternPredicate, 2,
31825
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31826
-                  OPC_EmitMergeInputChains1_1,
31827
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31828
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31829
-                0, 
31830
-              51,  TARGET_OPCODE(ISD::LOAD),
31831
-                OPC_RecordMemRef,
31832
-                OPC_RecordNode,
31833
-                OPC_CheckFoldableChainNode,
31834
-                OPC_RecordChild1,
31835
-                OPC_CheckPredicate, 2,
31836
-                OPC_CheckPredicate, 3,
31837
-                OPC_MoveParent,
31838
-                OPC_CheckPredicate, 11,
31839
-                OPC_SwitchType , 17,  MVT::v4f32,
31840
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31841
-                  OPC_EmitMergeInputChains1_1,
31842
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31843
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31844
-                17,  MVT::v2f64,
31845
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31846
-                  OPC_EmitMergeInputChains1_1,
31847
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31848
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31849
-                0, 
31850
-              0, 
31851
-            52, 
31852
-              OPC_MoveChild, 0,
31853
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
31854
-              OPC_MoveChild, 0,
31855
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31856
-              OPC_RecordMemRef,
31857
-              OPC_RecordNode,
31858
-              OPC_CheckFoldableChainNode,
31859
-              OPC_RecordChild1,
31860
-              OPC_CheckPredicate, 2,
31861
-              OPC_CheckPredicate, 3,
31862
-              OPC_CheckPredicate, 21,
31863
-              OPC_CheckType, MVT::v2f64,
31864
-              OPC_MoveParent,
31865
-              OPC_MoveParent,
31866
-              OPC_MoveChild, 1,
31867
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
31868
-              OPC_MoveParent,
31869
-              OPC_CheckPredicate, 90,
31870
-              OPC_CheckType, MVT::v4f32,
31871
-              OPC_CheckPatternPredicate, 14,
31872
-              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
31873
-              OPC_EmitMergeInputChains1_0,
31874
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
31875
-                  1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
31876
-            45|128,2, 
31877
-              OPC_RecordChild0,
31878
-              OPC_MoveChild, 1,
31879
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31880
-              OPC_RecordMemRef,
31881
-              OPC_RecordNode,
31882
-              OPC_CheckFoldableChainNode,
31883
-              OPC_RecordChild1,
31884
-              OPC_CheckPredicate, 2,
31885
-              OPC_CheckPredicate, 3,
31886
-              OPC_CheckPredicate, 21,
31887
-              OPC_MoveParent,
31888
-              OPC_Scope, 46, 
31889
-                OPC_CheckPredicate, 12,
31890
-                OPC_SwitchType , 19,  MVT::v4f32,
31891
-                  OPC_CheckPatternPredicate, 0,
31892
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31893
-                  OPC_EmitMergeInputChains1_1,
31894
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31895
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31896
-                19,  MVT::v2f64,
31897
-                  OPC_CheckPatternPredicate, 0,
31898
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31899
-                  OPC_EmitMergeInputChains1_1,
31900
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31901
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31902
-                0, 
31903
-              46, 
31904
-                OPC_CheckPredicate, 94,
31905
-                OPC_SwitchType , 19,  MVT::v4f32,
31906
-                  OPC_CheckPatternPredicate, 0,
31907
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31908
-                  OPC_EmitMergeInputChains1_1,
31909
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31910
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31911
-                19,  MVT::v2f64,
31912
-                  OPC_CheckPatternPredicate, 0,
31913
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31914
-                  OPC_EmitMergeInputChains1_1,
31915
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31916
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31917
-                0, 
31918
-              46, 
31919
-                OPC_CheckPredicate, 12,
31920
-                OPC_SwitchType , 19,  MVT::v8f32,
31921
-                  OPC_CheckPatternPredicate, 0,
31922
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31923
-                  OPC_EmitMergeInputChains1_1,
31924
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
31925
-                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
31926
-                19,  MVT::v4f64,
31927
-                  OPC_CheckPatternPredicate, 0,
31928
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31929
-                  OPC_EmitMergeInputChains1_1,
31930
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
31931
-                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
31932
-                0, 
31933
-              46, 
31934
-                OPC_CheckPredicate, 94,
31935
-                OPC_SwitchType , 19,  MVT::v8f32,
31936
-                  OPC_CheckPatternPredicate, 0,
31937
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31938
-                  OPC_EmitMergeInputChains1_1,
31939
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
31940
-                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
31941
-                19,  MVT::v4f64,
31942
-                  OPC_CheckPatternPredicate, 0,
31943
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31944
-                  OPC_EmitMergeInputChains1_1,
31945
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
31946
-                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
31947
-                0, 
31948
-              46, 
31949
-                OPC_CheckPredicate, 12,
31950
-                OPC_SwitchType , 19,  MVT::v4f32,
31951
-                  OPC_CheckPatternPredicate, 1,
31952
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31953
-                  OPC_EmitMergeInputChains1_1,
31954
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31955
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31956
-                19,  MVT::v2f64,
31957
-                  OPC_CheckPatternPredicate, 2,
31958
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31959
-                  OPC_EmitMergeInputChains1_1,
31960
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31961
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31962
-                0, 
31963
-              46, 
31964
-                OPC_CheckPredicate, 94,
31965
-                OPC_SwitchType , 19,  MVT::v4f32,
31966
-                  OPC_CheckPatternPredicate, 1,
31967
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31968
-                  OPC_EmitMergeInputChains1_1,
31969
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
31970
-                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
31971
-                19,  MVT::v2f64,
31972
-                  OPC_CheckPatternPredicate, 2,
31973
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
31974
-                  OPC_EmitMergeInputChains1_1,
31975
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
31976
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
31977
-                0, 
31978
-              0, 
31979
-            11|128,2, 
31980
-              OPC_MoveChild, 0,
31981
-              OPC_SwitchOpcode , 55,  TARGET_OPCODE(ISD::BIT_CONVERT),
31982
-                OPC_MoveChild, 0,
31983
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
31984
-                OPC_MoveChild, 0,
31985
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
31986
-                OPC_RecordMemRef,
31987
-                OPC_RecordNode,
31988
-                OPC_CheckFoldableChainNode,
31989
-                OPC_RecordChild1,
31990
-                OPC_CheckPredicate, 2,
31991
-                OPC_CheckPredicate, 3,
31992
-                OPC_CheckPredicate, 4,
31993
-                OPC_CheckType, MVT::i64,
31994
-                OPC_MoveParent,
31995
-                OPC_CheckType, MVT::v2i64,
31996
-                OPC_MoveParent,
31997
-                OPC_MoveParent,
31998
-                OPC_MoveChild, 1,
31999
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32000
-                OPC_MoveParent,
32001
-                OPC_CheckPredicate, 90,
32002
-                OPC_CheckType, MVT::v2f64,
32003
-                OPC_CheckPatternPredicate, 14,
32004
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32005
-                OPC_EmitMergeInputChains1_0,
32006
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32007
-                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
32008
-              1|128,1,  TARGET_OPCODE(ISD::LOAD),
32009
-                OPC_RecordMemRef,
32010
-                OPC_RecordNode,
32011
-                OPC_CheckFoldableChainNode,
32012
-                OPC_RecordChild1,
32013
-                OPC_CheckPredicate, 2,
32014
-                OPC_CheckPredicate, 3,
32015
-                OPC_CheckPredicate, 21,
32016
-                OPC_MoveParent,
32017
-                OPC_MoveChild, 1,
32018
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32019
-                OPC_MoveParent,
32020
-                OPC_SwitchType , 20,  MVT::v2f64,
32021
-                  OPC_CheckPredicate, 90,
32022
-                  OPC_CheckPatternPredicate, 14,
32023
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32024
-                  OPC_EmitMergeInputChains1_0,
32025
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32026
-                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
32027
-                86,  MVT::v4f32,
32028
-                  OPC_Scope, 20, 
32029
-                    OPC_CheckPredicate, 87,
32030
-                    OPC_CheckPatternPredicate, 0,
32031
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32032
-                    OPC_EmitMergeInputChains1_0,
32033
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32034
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
32035
-                  20, 
32036
-                    OPC_CheckPredicate, 88,
32037
-                    OPC_CheckPatternPredicate, 0,
32038
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32039
-                    OPC_EmitMergeInputChains1_0,
32040
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32041
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
32042
-                  20, 
32043
-                    OPC_CheckPredicate, 87,
32044
-                    OPC_CheckPatternPredicate, 14,
32045
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32046
-                    OPC_EmitMergeInputChains1_0,
32047
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32048
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
32049
-                  20, 
32050
-                    OPC_CheckPredicate, 88,
32051
-                    OPC_CheckPatternPredicate, 14,
32052
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32053
-                    OPC_EmitMergeInputChains1_0,
32054
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32055
-                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
32056
-                  0, 
32057
-                0, 
32058
-              69,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
32059
-                OPC_MoveChild, 0,
32060
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
32061
-                OPC_RecordMemRef,
32062
-                OPC_RecordNode,
32063
-                OPC_CheckFoldableChainNode,
32064
-                OPC_RecordChild1,
32065
-                OPC_CheckPredicate, 2,
32066
-                OPC_CheckPredicate, 3,
32067
-                OPC_CheckPredicate, 4,
32068
-                OPC_CheckType, MVT::f64,
32069
-                OPC_MoveParent,
32070
-                OPC_MoveParent,
32071
-                OPC_MoveChild, 1,
32072
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32073
-                OPC_MoveParent,
32074
-                OPC_CheckPredicate, 90,
32075
-                OPC_CheckType, MVT::v2f64,
32076
-                OPC_Scope, 18, 
32077
-                  OPC_CheckPatternPredicate, 0,
32078
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32079
-                  OPC_EmitMergeInputChains1_0,
32080
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32081
-                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
32082
-                18, 
32083
-                  OPC_CheckPatternPredicate, 14,
32084
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32085
-                  OPC_EmitMergeInputChains1_0,
32086
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
32087
-                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
32088
-                0, 
32089
-              0, 
32090
-            35, 
32091
-              OPC_RecordChild0,
32092
-              OPC_MoveChild, 1,
32093
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32094
-              OPC_MoveParent,
32095
-              OPC_CheckType, MVT::v4f32,
32096
-              OPC_Scope, 11, 
32097
-                OPC_CheckPredicate, 90,
32098
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
32099
-                    1, MVT::v4f32, 2, 0, 0, 
32100
-              11, 
32101
-                OPC_CheckPredicate, 99,
32102
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
32103
-                    1, MVT::v4f32, 2, 0, 0, 
32104
-              0, 
32105
-            60|128,1, 
32106
-              OPC_RecordNode,
32107
-              OPC_RecordChild0,
32108
-              OPC_MoveChild, 1,
32109
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
32110
-              OPC_RecordMemRef,
32111
-              OPC_RecordNode,
32112
-              OPC_CheckFoldableChainNode,
32113
-              OPC_RecordChild1,
32114
-              OPC_CheckPredicate, 2,
32115
-              OPC_CheckPredicate, 3,
32116
-              OPC_CheckPredicate, 21,
32117
-              OPC_MoveParent,
32118
-              OPC_CheckPredicate, 95,
32119
-              OPC_SwitchType , 54,  MVT::v4f32,
32120
-                OPC_Scope, 25, 
32121
-                  OPC_CheckPatternPredicate, 0,
32122
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
32123
-                  OPC_EmitMergeInputChains, 1, 2, 
32124
-                  OPC_EmitNodeXForm, 2, 0,
32125
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
32126
-                      1, MVT::v4f32, 7, 1, 4, 5, 6, 7, 8, 9, 
32127
-                25, 
32128
-                  OPC_CheckPatternPredicate, 1,
32129
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
32130
-                  OPC_EmitMergeInputChains, 1, 2, 
32131
-                  OPC_EmitNodeXForm, 2, 0,
32132
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
32133
-                      1, MVT::v4f32, 7, 1, 4, 5, 6, 7, 8, 9, 
32134
-                0, 
32135
-              25,  MVT::v8f32,
32136
-                OPC_CheckPatternPredicate, 0,
32137
-                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
32138
-                OPC_EmitMergeInputChains, 1, 2, 
32139
-                OPC_EmitNodeXForm, 2, 0,
32140
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
32141
-                    1, MVT::v8f32, 7, 1, 4, 5, 6, 7, 8, 9, 
32142
-              54,  MVT::v2f64,
32143
-                OPC_Scope, 25, 
32144
-                  OPC_CheckPatternPredicate, 0,
32145
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
32146
-                  OPC_EmitMergeInputChains, 1, 2, 
32147
-                  OPC_EmitNodeXForm, 2, 0,
32148
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
32149
-                      1, MVT::v2f64, 7, 1, 4, 5, 6, 7, 8, 9, 
32150
-                25, 
32151
-                  OPC_CheckPatternPredicate, 2,
32152
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
32153
-                  OPC_EmitMergeInputChains, 1, 2, 
32154
-                  OPC_EmitNodeXForm, 2, 0,
32155
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
32156
-                      1, MVT::v2f64, 7, 1, 4, 5, 6, 7, 8, 9, 
32157
-                0, 
32158
-              25,  MVT::v4f64,
32159
-                OPC_CheckPatternPredicate, 0,
32160
-                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
32161
-                OPC_EmitMergeInputChains, 1, 2, 
32162
-                OPC_EmitNodeXForm, 2, 0,
32163
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
32164
-                    1, MVT::v4f64, 7, 1, 4, 5, 6, 7, 8, 9, 
32165
-              0, 
32166
-            62, 
32167
-              OPC_RecordChild0,
32168
-              OPC_RecordChild1,
32169
-              OPC_CheckType, MVT::v4f32,
32170
-              OPC_Scope, 13, 
32171
-                OPC_CheckPredicate, 98,
32172
-                OPC_CheckPatternPredicate, 0,
32173
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLHPSrr), 0,
32174
-                    1, MVT::v4f32, 2, 0, 1, 
32175
-              13, 
32176
-                OPC_CheckPredicate, 100,
32177
-                OPC_CheckPatternPredicate, 0,
32178
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHLPSrr), 0,
32179
-                    1, MVT::v4f32, 2, 0, 1, 
32180
-              13, 
32181
-                OPC_CheckPredicate, 98,
32182
-                OPC_CheckPatternPredicate, 1,
32183
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
32184
-                    1, MVT::v4f32, 2, 0, 1, 
32185
-              13, 
32186
-                OPC_CheckPredicate, 100,
32187
-                OPC_CheckPatternPredicate, 1,
32188
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
32189
-                    1, MVT::v4f32, 2, 0, 1, 
32190
-              0, 
32191
-            46, 
32192
-              OPC_RecordNode,
32193
-              OPC_RecordChild0,
32194
-              OPC_MoveChild, 1,
32195
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32196
-              OPC_MoveParent,
32197
-              OPC_CheckType, MVT::v4f32,
32198
-              OPC_Scope, 16, 
32199
-                OPC_CheckPredicate, 101,
32200
-                OPC_CheckPatternPredicate, 25,
32201
-                OPC_EmitNodeXForm, 2, 0,
32202
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
32203
-                    1, MVT::v4f32, 2, 1, 2, 
32204
-              16, 
32205
-                OPC_CheckPredicate, 102,
32206
-                OPC_CheckPatternPredicate, 25,
32207
-                OPC_EmitNodeXForm, 2, 0,
32208
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
32209
-                    1, MVT::v4f32, 2, 1, 2, 
32210
-              0, 
32211
-            90|128,2, 
32212
-              OPC_RecordChild0,
32213
-              OPC_Scope, 82, 
32214
-                OPC_RecordChild1,
32215
-                OPC_Scope, 50, 
32216
-                  OPC_CheckPredicate, 103,
32217
-                  OPC_SwitchType , 21,  MVT::v4f32,
32218
-                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
32219
-                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
32220
-                        1, MVT::f32, 2, 1, 2, 
32221
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
32222
-                        1, MVT::v4f32, 2, 0, 3, 
32223
-                  21,  MVT::v2f64,
32224
-                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
32225
-                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
32226
-                        1, MVT::f64, 2, 1, 2, 
32227
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
32228
-                        1, MVT::v2f64, 2, 0, 3, 
32229
-                  0, 
32230
-                27, 
32231
-                  OPC_CheckPredicate, 11,
32232
-                  OPC_CheckType, MVT::v4f32,
32233
-                  OPC_CheckPatternPredicate, 2,
32234
-                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
32235
-                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
32236
-                      1, MVT::f64, 2, 1, 2, 
32237
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
32238
-                      1, MVT::v4f32, 2, 0, 3, 
32239
-                0, 
32240
-              68, 
32241
-                OPC_MoveChild, 1,
32242
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32243
-                OPC_MoveParent,
32244
-                OPC_SwitchType , 30,  MVT::v2f64,
32245
-                  OPC_Scope, 13, 
32246
-                    OPC_CheckPredicate, 104,
32247
-                    OPC_CheckPatternPredicate, 2,
32248
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
32249
-                        1, MVT::v2f64, 2, 0, 0, 
32250
-                  13, 
32251
-                    OPC_CheckPredicate, 12,
32252
-                    OPC_CheckPatternPredicate, 2,
32253
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
32254
-                        1, MVT::v2f64, 2, 0, 0, 
32255
-                  0, 
32256
-                26,  MVT::v4f32,
32257
-                  OPC_Scope, 11, 
32258
-                    OPC_CheckPredicate, 101,
32259
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
32260
-                        1, MVT::v4f32, 2, 0, 0, 
32261
-                  11, 
32262
-                    OPC_CheckPredicate, 102,
32263
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
32264
-                        1, MVT::v4f32, 2, 0, 0, 
32265
-                  0, 
32266
-                0, 
32267
-              61|128,1, 
32268
-                OPC_RecordChild1,
32269
-                OPC_Scope, 30, 
32270
-                  OPC_CheckPredicate, 12,
32271
-                  OPC_SwitchType , 11,  MVT::v4f32,
32272
-                    OPC_CheckPatternPredicate, 0,
32273
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrr), 0,
32274
-                        1, MVT::v4f32, 2, 0, 1, 
32275
-                  11,  MVT::v2f64,
32276
-                    OPC_CheckPatternPredicate, 0,
32277
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrr), 0,
32278
-                        1, MVT::v2f64, 2, 0, 1, 
32279
-                  0, 
32280
-                30, 
32281
-                  OPC_CheckPredicate, 94,
32282
-                  OPC_SwitchType , 11,  MVT::v4f32,
32283
-                    OPC_CheckPatternPredicate, 0,
32284
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrr), 0,
32285
-                        1, MVT::v4f32, 2, 0, 1, 
32286
-                  11,  MVT::v2f64,
32287
-                    OPC_CheckPatternPredicate, 0,
32288
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrr), 0,
32289
-                        1, MVT::v2f64, 2, 0, 1, 
32290
-                  0, 
32291
-                30, 
32292
-                  OPC_CheckPredicate, 12,
32293
-                  OPC_SwitchType , 11,  MVT::v8f32,
32294
-                    OPC_CheckPatternPredicate, 0,
32295
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSYrr), 0,
32296
-                        1, MVT::v8f32, 2, 0, 1, 
32297
-                  11,  MVT::v4f64,
32298
-                    OPC_CheckPatternPredicate, 0,
32299
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDYrr), 0,
32300
-                        1, MVT::v4f64, 2, 0, 1, 
32301
-                  0, 
32302
-                30, 
32303
-                  OPC_CheckPredicate, 94,
32304
-                  OPC_SwitchType , 11,  MVT::v8f32,
32305
-                    OPC_CheckPatternPredicate, 0,
32306
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSYrr), 0,
32307
-                        1, MVT::v8f32, 2, 0, 1, 
32308
-                  11,  MVT::v4f64,
32309
-                    OPC_CheckPatternPredicate, 0,
32310
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDYrr), 0,
32311
-                        1, MVT::v4f64, 2, 0, 1, 
32312
-                  0, 
32313
-                30, 
32314
-                  OPC_CheckPredicate, 12,
32315
-                  OPC_SwitchType , 11,  MVT::v4f32,
32316
-                    OPC_CheckPatternPredicate, 1,
32317
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
32318
-                        1, MVT::v4f32, 2, 0, 1, 
32319
-                  11,  MVT::v2f64,
32320
-                    OPC_CheckPatternPredicate, 2,
32321
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
32322
-                        1, MVT::v2f64, 2, 0, 1, 
32323
-                  0, 
32324
-                30, 
32325
-                  OPC_CheckPredicate, 94,
32326
-                  OPC_SwitchType , 11,  MVT::v4f32,
32327
-                    OPC_CheckPatternPredicate, 1,
32328
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
32329
-                        1, MVT::v4f32, 2, 0, 1, 
32330
-                  11,  MVT::v2f64,
32331
-                    OPC_CheckPatternPredicate, 2,
32332
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
32333
-                        1, MVT::v2f64, 2, 0, 1, 
32334
-                  0, 
32335
-                0, 
32336
-              0, 
32337
-            40|128,1, 
32338
-              OPC_RecordNode,
32339
-              OPC_RecordChild0,
32340
-              OPC_Scope, 24, 
32341
-                OPC_MoveChild, 1,
32342
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32343
-                OPC_MoveParent,
32344
-                OPC_CheckPredicate, 89,
32345
-                OPC_CheckType, MVT::v4f32,
32346
-                OPC_CheckPatternPredicate, 2,
32347
-                OPC_EmitNodeXForm, 2, 0,
32348
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
32349
-                    1, MVT::v4f32, 2, 1, 2, 
32350
-              20, 
32351
-                OPC_RecordChild1,
32352
-                OPC_CheckPredicate, 108,
32353
-                OPC_CheckType, MVT::v4f32,
32354
-                OPC_CheckPatternPredicate, 11,
32355
-                OPC_EmitNodeXForm, 6, 0,
32356
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
32357
-                    1, MVT::v4f32, 3, 2, 1, 3, 
32358
-              117, 
32359
-                OPC_MoveChild, 1,
32360
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32361
-                OPC_MoveParent,
32362
-                OPC_SwitchType , 70,  MVT::v8i16,
32363
-                  OPC_Scope, 16, 
32364
-                    OPC_CheckPredicate, 91,
32365
-                    OPC_CheckPatternPredicate, 0,
32366
-                    OPC_EmitNodeXForm, 3, 0,
32367
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWri), 0,
32368
-                        1, MVT::v8i16, 2, 1, 2, 
32369
-                  16, 
32370
-                    OPC_CheckPredicate, 92,
32371
-                    OPC_CheckPatternPredicate, 0,
32372
-                    OPC_EmitNodeXForm, 4, 0,
32373
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWri), 0,
32374
-                        1, MVT::v8i16, 2, 1, 2, 
32375
-                  16, 
32376
-                    OPC_CheckPredicate, 91,
32377
-                    OPC_CheckPatternPredicate, 2,
32378
-                    OPC_EmitNodeXForm, 3, 0,
32379
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
32380
-                        1, MVT::v8i16, 2, 1, 2, 
32381
-                  16, 
32382
-                    OPC_CheckPredicate, 92,
32383
-                    OPC_CheckPatternPredicate, 2,
32384
-                    OPC_EmitNodeXForm, 4, 0,
32385
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
32386
-                        1, MVT::v8i16, 2, 1, 2, 
32387
-                  0, 
32388
-                17,  MVT::v2i64,
32389
-                  OPC_CheckPredicate, 89,
32390
-                  OPC_CheckPatternPredicate, 2,
32391
-                  OPC_EmitNodeXForm, 2, 0,
32392
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
32393
-                      1, MVT::v2i64, 3, 1, 1, 2, 
32394
-                16,  MVT::v4i16,
32395
-                  OPC_CheckPredicate, 93,
32396
-                  OPC_CheckPatternPredicate, 9,
32397
-                  OPC_EmitNodeXForm, 5, 0,
32398
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSHUFWri), 0,
32399
-                      1, MVT::v4i16, 2, 1, 2, 
32400
-                0, 
32401
-              0, 
32402
-            104|128,1, 
32403
-              OPC_RecordChild0,
32404
-              OPC_RecordChild1,
32405
-              OPC_Scope, 56, 
32406
-                OPC_CheckPredicate, 94,
32407
-                OPC_SwitchType , 11,  MVT::v16i8,
32408
-                  OPC_CheckPatternPredicate, 0,
32409
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLBWrr), 0,
32410
-                      1, MVT::v16i8, 2, 0, 1, 
32411
-                11,  MVT::v8i16,
32412
-                  OPC_CheckPatternPredicate, 0,
32413
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLWDrr), 0,
32414
-                      1, MVT::v8i16, 2, 0, 1, 
32415
-                11,  MVT::v4i32,
32416
-                  OPC_CheckPatternPredicate, 0,
32417
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLDQrr), 0,
32418
-                      1, MVT::v4i32, 2, 0, 1, 
32419
-                11,  MVT::v2i64,
32420
-                  OPC_CheckPatternPredicate, 0,
32421
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLQDQrr), 0,
32422
-                      1, MVT::v2i64, 2, 0, 1, 
32423
-                0, 
32424
-              56, 
32425
-                OPC_CheckPredicate, 12,
32426
-                OPC_SwitchType , 11,  MVT::v16i8,
32427
-                  OPC_CheckPatternPredicate, 0,
32428
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHBWrr), 0,
32429
-                      1, MVT::v16i8, 2, 0, 1, 
32430
-                11,  MVT::v8i16,
32431
-                  OPC_CheckPatternPredicate, 0,
32432
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHWDrr), 0,
32433
-                      1, MVT::v8i16, 2, 0, 1, 
32434
-                11,  MVT::v4i32,
32435
-                  OPC_CheckPatternPredicate, 0,
32436
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHDQrr), 0,
32437
-                      1, MVT::v4i32, 2, 0, 1, 
32438
-                11,  MVT::v2i64,
32439
-                  OPC_CheckPatternPredicate, 0,
32440
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHQDQrr), 0,
32441
-                      1, MVT::v2i64, 2, 0, 1, 
32442
-                0, 
32443
-              56, 
32444
-                OPC_CheckPredicate, 94,
32445
-                OPC_SwitchType , 11,  MVT::v16i8,
32446
-                  OPC_CheckPatternPredicate, 2,
32447
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
32448
-                      1, MVT::v16i8, 2, 0, 1, 
32449
-                11,  MVT::v8i16,
32450
-                  OPC_CheckPatternPredicate, 2,
32451
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
32452
-                      1, MVT::v8i16, 2, 0, 1, 
32453
-                11,  MVT::v4i32,
32454
-                  OPC_CheckPatternPredicate, 2,
32455
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
32456
-                      1, MVT::v4i32, 2, 0, 1, 
32457
-                11,  MVT::v2i64,
32458
-                  OPC_CheckPatternPredicate, 2,
32459
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
32460
-                      1, MVT::v2i64, 2, 0, 1, 
32461
-                0, 
32462
-              56, 
32463
-                OPC_CheckPredicate, 12,
32464
-                OPC_SwitchType , 11,  MVT::v16i8,
32465
-                  OPC_CheckPatternPredicate, 2,
32466
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
32467
-                      1, MVT::v16i8, 2, 0, 1, 
32468
-                11,  MVT::v8i16,
32469
-                  OPC_CheckPatternPredicate, 2,
32470
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
32471
-                      1, MVT::v8i16, 2, 0, 1, 
32472
-                11,  MVT::v4i32,
32473
-                  OPC_CheckPatternPredicate, 2,
32474
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
32475
-                      1, MVT::v4i32, 2, 0, 1, 
32476
-                11,  MVT::v2i64,
32477
-                  OPC_CheckPatternPredicate, 2,
32478
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
32479
-                      1, MVT::v2i64, 2, 0, 1, 
32480
-                0, 
32481
-              0, 
32482
-            41, 
32483
-              OPC_RecordNode,
32484
-              OPC_RecordChild0,
32485
-              OPC_RecordChild1,
32486
-              OPC_CheckPredicate, 95,
32487
-              OPC_SwitchType , 15,  MVT::v4i32,
32488
-                OPC_CheckPatternPredicate, 2,
32489
-                OPC_EmitNodeXForm, 2, 0,
32490
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
32491
-                    1, MVT::v4i32, 3, 1, 2, 3, 
32492
-              15,  MVT::v2i64,
32493
-                OPC_CheckPatternPredicate, 2,
32494
-                OPC_EmitNodeXForm, 2, 0,
32495
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
32496
-                    1, MVT::v2i64, 3, 1, 2, 3, 
32497
-              0, 
32498
-            9|128,2, 
32499
-              OPC_RecordChild0,
32500
-              OPC_Scope, 91, 
32501
-                OPC_RecordChild1,
32502
-                OPC_Scope, 43, 
32503
-                  OPC_CheckPredicate, 96,
32504
-                  OPC_SwitchType , 11,  MVT::v8i8,
32505
-                    OPC_CheckPatternPredicate, 9,
32506
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrr), 0,
32507
-                        1, MVT::v8i8, 2, 0, 1, 
32508
-                  11,  MVT::v4i16,
32509
-                    OPC_CheckPatternPredicate, 9,
32510
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrr), 0,
32511
-                        1, MVT::v4i16, 2, 0, 1, 
32512
-                  11,  MVT::v2i32,
32513
-                    OPC_CheckPatternPredicate, 9,
32514
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrr), 0,
32515
-                        1, MVT::v2i32, 2, 0, 1, 
32516
-                  0, 
32517
-                43, 
32518
-                  OPC_CheckPredicate, 97,
32519
-                  OPC_SwitchType , 11,  MVT::v8i8,
32520
-                    OPC_CheckPatternPredicate, 9,
32521
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrr), 0,
32522
-                        1, MVT::v8i8, 2, 0, 1, 
32523
-                  11,  MVT::v4i16,
32524
-                    OPC_CheckPatternPredicate, 9,
32525
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrr), 0,
32526
-                        1, MVT::v4i16, 2, 0, 1, 
32527
-                  11,  MVT::v2i32,
32528
-                    OPC_CheckPatternPredicate, 9,
32529
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
32530
-                        1, MVT::v2i32, 2, 0, 1, 
32531
-                  0, 
32532
-                0, 
32533
-              40|128,1, 
32534
-                OPC_MoveChild, 1,
32535
-                OPC_SwitchOpcode , 71,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
32536
-                  OPC_RecordChild0,
32537
-                  OPC_Scope, 33, 
32538
-                    OPC_CheckChild0Type, MVT::f32,
32539
-                    OPC_MoveParent,
32540
-                    OPC_CheckPredicate, 103,
32541
-                    OPC_CheckType, MVT::v4f32,
32542
-                    OPC_Scope, 11, 
32543
-                      OPC_CheckPatternPredicate, 0,
32544
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSrr), 0,
32545
-                          1, MVT::v4f32, 2, 0, 1, 
32546
-                    11, 
32547
-                      OPC_CheckPatternPredicate, 1,
32548
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
32549
-                          1, MVT::v4f32, 2, 0, 1, 
32550
-                    0, 
32551
-                  33, 
32552
-                    OPC_CheckChild0Type, MVT::f64,
32553
-                    OPC_MoveParent,
32554
-                    OPC_CheckPredicate, 103,
32555
-                    OPC_CheckType, MVT::v2f64,
32556
-                    OPC_Scope, 11, 
32557
-                      OPC_CheckPatternPredicate, 0,
32558
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDrr), 0,
32559
-                          1, MVT::v2f64, 2, 0, 1, 
32560
-                    11, 
32561
-                      OPC_CheckPatternPredicate, 2,
32562
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
32563
-                          1, MVT::v2f64, 2, 0, 1, 
32564
-                    0, 
32565
-                  0, 
32566
-                87,  TARGET_OPCODE(ISD::UNDEF),
32567
-                  OPC_MoveParent,
32568
-                  OPC_SwitchType , 54,  MVT::v4f32,
32569
-                    OPC_Scope, 12, 
32570
-                      OPC_CheckPredicate, 87,
32571
-                      OPC_CheckPatternPredicate, 0,
32572
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrr), 0,
32573
-                          1, MVT::v4f32, 1, 0, 
32574
-                    12, 
32575
-                      OPC_CheckPredicate, 88,
32576
-                      OPC_CheckPatternPredicate, 0,
32577
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrr), 0,
32578
-                          1, MVT::v4f32, 1, 0, 
32579
-                    12, 
32580
-                      OPC_CheckPredicate, 87,
32581
-                      OPC_CheckPatternPredicate, 14,
32582
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
32583
-                          1, MVT::v4f32, 1, 0, 
32584
-                    12, 
32585
-                      OPC_CheckPredicate, 88,
32586
-                      OPC_CheckPatternPredicate, 14,
32587
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
32588
-                          1, MVT::v4f32, 1, 0, 
32589
-                    0, 
32590
-                  26,  MVT::v2f64,
32591
-                    OPC_CheckPredicate, 90,
32592
-                    OPC_Scope, 10, 
32593
-                      OPC_CheckPatternPredicate, 0,
32594
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrr), 0,
32595
-                          1, MVT::v2f64, 1, 0, 
32596
-                    10, 
32597
-                      OPC_CheckPatternPredicate, 14,
32598
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrr), 0,
32599
-                          1, MVT::v2f64, 1, 0, 
32600
-                    0, 
32601
-                  0, 
32602
-                0, 
32603
-              0, 
32604
-            53|128,1, 
32605
-              OPC_RecordNode,
32606
-              OPC_RecordChild0,
32607
-              OPC_Scope, 42, 
32608
-                OPC_MoveChild, 1,
32609
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
32610
-                OPC_MoveParent,
32611
-                OPC_CheckPredicate, 89,
32612
-                OPC_SwitchType , 13,  MVT::v4f32,
32613
-                  OPC_EmitNodeXForm, 2, 0,
32614
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
32615
-                      1, MVT::v4f32, 3, 1, 1, 2, 
32616
-                15,  MVT::v2f64,
32617
-                  OPC_CheckPatternPredicate, 2,
32618
-                  OPC_EmitNodeXForm, 2, 0,
32619
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
32620
-                      1, MVT::v2f64, 3, 1, 1, 2, 
32621
-                0, 
32622
-              4|128,1, 
32623
-                OPC_RecordChild1,
32624
-                OPC_Scope, 110, 
32625
-                  OPC_CheckPredicate, 95,
32626
-                  OPC_SwitchType , 34,  MVT::v4f32,
32627
-                    OPC_Scope, 15, 
32628
-                      OPC_CheckPatternPredicate, 0,
32629
-                      OPC_EmitNodeXForm, 2, 0,
32630
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
32631
-                          1, MVT::v4f32, 3, 1, 2, 3, 
32632
-                    15, 
32633
-                      OPC_CheckPatternPredicate, 1,
32634
-                      OPC_EmitNodeXForm, 2, 0,
32635
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
32636
-                          1, MVT::v4f32, 3, 1, 2, 3, 
32637
-                    0, 
32638
-                  15,  MVT::v8f32,
32639
-                    OPC_CheckPatternPredicate, 0,
32640
-                    OPC_EmitNodeXForm, 2, 0,
32641
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSYrri), 0,
32642
-                        1, MVT::v8f32, 3, 1, 2, 3, 
32643
-                  34,  MVT::v2f64,
32644
-                    OPC_Scope, 15, 
32645
-                      OPC_CheckPatternPredicate, 0,
32646
-                      OPC_EmitNodeXForm, 2, 0,
32647
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrri), 0,
32648
-                          1, MVT::v2f64, 3, 1, 2, 3, 
32649
-                    15, 
32650
-                      OPC_CheckPatternPredicate, 2,
32651
-                      OPC_EmitNodeXForm, 2, 0,
32652
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
32653
-                          1, MVT::v2f64, 3, 1, 2, 3, 
32654
-                    0, 
32655
-                  15,  MVT::v4f64,
32656
-                    OPC_CheckPatternPredicate, 0,
32657
-                    OPC_EmitNodeXForm, 2, 0,
32658
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDYrri), 0,
32659
-                        1, MVT::v4f64, 3, 1, 2, 3, 
32660
-                  0, 
32661
-                17, 
32662
-                  OPC_CheckPredicate, 11,
32663
-                  OPC_CheckType, MVT::v4f32,
32664
-                  OPC_EmitNodeXForm, 2, 0,
32665
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
32666
-                      1, MVT::v4f32, 3, 2, 1, 3, 
32667
-                0, 
32668
-              0, 
32669
-            0, 
32670
-          94|128,6,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
32671
-            OPC_Scope, 61|128,3, 
32672
-              OPC_MoveChild, 0,
32673
-              OPC_SwitchOpcode , 93|128,1,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
32674
-                OPC_Scope, 11|128,1, 
32675
-                  OPC_MoveChild, 0,
32676
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
32677
-                  OPC_RecordMemRef,
32678
-                  OPC_RecordNode,
32679
-                  OPC_CheckFoldableChainNode,
32680
-                  OPC_RecordChild1,
32681
-                  OPC_CheckPredicate, 2,
32682
-                  OPC_SwitchType , 74,  MVT::i32,
32683
-                    OPC_Scope, 46, 
32684
-                      OPC_CheckPredicate, 8,
32685
-                      OPC_MoveParent,
32686
-                      OPC_MoveParent,
32687
-                      OPC_CheckType, MVT::v4i32,
32688
-                      OPC_Scope, 18, 
32689
-                        OPC_CheckPatternPredicate, 0,
32690
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32691
-                        OPC_EmitMergeInputChains1_0,
32692
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32693
-                            1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
32694
-                      18, 
32695
-                        OPC_CheckPatternPredicate, 2,
32696
-                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32697
-                        OPC_EmitMergeInputChains1_0,
32698
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32699
-                            1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
32700
-                      0, 
32701
-                    24, 
32702
-                      OPC_CheckPredicate, 8,
32703
-                      OPC_MoveParent,
32704
-                      OPC_MoveParent,
32705
-                      OPC_CheckType, MVT::v2i32,
32706
-                      OPC_CheckPatternPredicate, 9,
32707
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32708
-                      OPC_EmitMergeInputChains1_0,
32709
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32710
-                          1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
32711
-                    0, 
32712
-                  48,  MVT::i64,
32713
-                    OPC_CheckPredicate, 3,
32714
-                    OPC_CheckPredicate, 4,
32715
-                    OPC_MoveParent,
32716
-                    OPC_MoveParent,
32717
-                    OPC_CheckType, MVT::v2i64,
32718
-                    OPC_Scope, 18, 
32719
-                      OPC_CheckPatternPredicate, 0,
32720
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32721
-                      OPC_EmitMergeInputChains1_0,
32722
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32723
-                          1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32724
-                    18, 
32725
-                      OPC_CheckPatternPredicate, 2,
32726
-                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32727
-                      OPC_EmitMergeInputChains1_0,
32728
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32729
-                          1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32730
-                    0, 
32731
-                  0, 
32732
-                77, 
32733
-                  OPC_RecordChild0,
32734
-                  OPC_Scope, 43, 
32735
-                    OPC_CheckChild0Type, MVT::i32,
32736
-                    OPC_MoveParent,
32737
-                    OPC_SwitchType , 24,  MVT::v4i32,
32738
-                      OPC_Scope, 10, 
32739
-                        OPC_CheckPatternPredicate, 0,
32740
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZDI2PDIrr), 0,
32741
-                            1, MVT::v4i32, 1, 0, 
32742
-                      10, 
32743
-                        OPC_CheckPatternPredicate, 2,
32744
-                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrr), 0,
32745
-                            1, MVT::v4i32, 1, 0, 
32746
-                      0, 
32747
-                    10,  MVT::v2i32,
32748
-                      OPC_CheckPatternPredicate, 9,
32749
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrr), 0,
32750
-                          1, MVT::v2i32, 1, 0, 
32751
-                    0, 
32752
-                  29, 
32753
-                    OPC_CheckChild0Type, MVT::i64,
32754
-                    OPC_MoveParent,
32755
-                    OPC_CheckType, MVT::v2i64,
32756
-                    OPC_Scope, 10, 
32757
-                      OPC_CheckPatternPredicate, 0,
32758
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZQI2PQIrr), 0,
32759
-                          1, MVT::v2i64, 1, 0, 
32760
-                    10, 
32761
-                      OPC_CheckPatternPredicate, 2,
32762
-                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrr), 0,
32763
-                          1, MVT::v2i64, 1, 0, 
32764
-                    0, 
32765
-                  0, 
32766
-                0, 
32767
-              123,  TARGET_OPCODE(ISD::BIT_CONVERT),
32768
-                OPC_MoveChild, 0,
32769
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
32770
-                OPC_RecordMemRef,
32771
-                OPC_RecordNode,
32772
-                OPC_CheckFoldableChainNode,
32773
-                OPC_RecordChild1,
32774
-                OPC_CheckPredicate, 2,
32775
-                OPC_CheckPredicate, 3,
32776
-                OPC_SwitchType , 40,  MVT::v4f32,
32777
-                  OPC_MoveParent,
32778
-                  OPC_MoveParent,
32779
-                  OPC_SwitchType , 16,  MVT::v4i32,
32780
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32781
-                    OPC_EmitMergeInputChains1_0,
32782
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32783
-                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
32784
-                  16,  MVT::v2i64,
32785
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32786
-                    OPC_EmitMergeInputChains1_0,
32787
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32788
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32789
-                  0, 
32790
-                20,  MVT::v2i64,
32791
-                  OPC_MoveParent,
32792
-                  OPC_MoveParent,
32793
-                  OPC_CheckType, MVT::v4i32,
32794
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32795
-                  OPC_EmitMergeInputChains1_0,
32796
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32797
-                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
32798
-                20,  MVT::v4i32,
32799
-                  OPC_MoveParent,
32800
-                  OPC_MoveParent,
32801
-                  OPC_CheckType, MVT::v2i64,
32802
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32803
-                  OPC_EmitMergeInputChains1_0,
32804
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32805
-                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32806
-                20,  MVT::v1i64,
32807
-                  OPC_MoveParent,
32808
-                  OPC_MoveParent,
32809
-                  OPC_CheckType, MVT::v2i32,
32810
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32811
-                  OPC_EmitMergeInputChains1_0,
32812
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32813
-                      1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
32814
-                0, 
32815
-              87,  TARGET_OPCODE(ISD::LOAD),
32816
-                OPC_RecordMemRef,
32817
-                OPC_RecordNode,
32818
-                OPC_RecordChild1,
32819
-                OPC_CheckPredicate, 2,
32820
-                OPC_CheckPredicate, 3,
32821
-                OPC_MoveParent,
32822
-                OPC_SwitchType , 16,  MVT::v4i32,
32823
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32824
-                  OPC_EmitMergeInputChains1_0,
32825
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
32826
-                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
32827
-                57,  MVT::v2i64,
32828
-                  OPC_Scope, 16, 
32829
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32830
-                    OPC_EmitMergeInputChains1_0,
32831
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32832
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32833
-                  18, 
32834
-                    OPC_CheckPatternPredicate, 0,
32835
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32836
-                    OPC_EmitMergeInputChains1_0,
32837
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32838
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32839
-                  18, 
32840
-                    OPC_CheckPatternPredicate, 2,
32841
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32842
-                    OPC_EmitMergeInputChains1_0,
32843
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
32844
-                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
32845
-                  0, 
32846
-                0, 
32847
-              0, 
32848
-            77, 
32849
-              OPC_RecordChild0,
32850
-              OPC_SwitchType , 24,  MVT::v2i64,
32851
-                OPC_Scope, 10, 
32852
-                  OPC_CheckPatternPredicate, 0,
32853
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZPQILo2PQIrr), 0,
32854
-                      1, MVT::v2i64, 1, 0, 
32855
-                10, 
32856
-                  OPC_CheckPatternPredicate, 2,
32857
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrr), 0,
32858
-                      1, MVT::v2i64, 1, 0, 
32859
-                0, 
32860
-              16,  MVT::v2i32,
32861
-                OPC_EmitNode, TARGET_OPCODE(X86::MMX_V_SET0), 0,
32862
-                    1, MVT::v2i32, 0, 
32863
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
32864
-                    1, MVT::v2i32, 2, 0, 1, 
32865
-              28,  MVT::v4i32,
32866
-                OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PI), 0,
32867
-                    1, MVT::v4i32, 0, 
32868
-                OPC_EmitInteger, MVT::i32, X86::sub_ss,
32869
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
32870
-                    1, MVT::f32, 2, 0, 2, 
32871
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
32872
-                    1, MVT::v4i32, 2, 1, 3, 
32873
-              0, 
32874
-            31|128,2, 
32875
-              OPC_MoveChild, 0,
32876
-              OPC_SwitchOpcode , 16|128,1,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
32877
-                OPC_Scope, 93, 
32878
-                  OPC_MoveChild, 0,
32879
-                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
32880
-                  OPC_RecordMemRef,
32881
-                  OPC_RecordNode,
32882
-                  OPC_CheckFoldableChainNode,
32883
-                  OPC_RecordChild1,
32884
-                  OPC_CheckPredicate, 2,
32885
-                  OPC_CheckPredicate, 3,
32886
-                  OPC_CheckPredicate, 4,
32887
-                  OPC_SwitchType , 36,  MVT::f32,
32888
-                    OPC_MoveParent,
32889
-                    OPC_MoveParent,
32890
-                    OPC_CheckType, MVT::v4f32,
32891
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32892
-                    OPC_EmitMergeInputChains1_0,
32893
-                    OPC_EmitInteger, MVT::i32, 0, 
32894
-                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
32895
-                        1, MVT::f32, 5, 2, 3, 4, 5, 6, 
32896
-                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
32897
-                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
32898
-                        1, MVT::v4f32, 3, 7, 8, 9, 
32899
-                  36,  MVT::f64,
32900
-                    OPC_MoveParent,
32901
-                    OPC_MoveParent,
32902
-                    OPC_CheckType, MVT::v2f64,
32903
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32904
-                    OPC_EmitMergeInputChains1_0,
32905
-                    OPC_EmitInteger, MVT::i64, 0, 
32906
-                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
32907
-                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
32908
-                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
32909
-                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
32910
-                        1, MVT::v2f64, 3, 7, 8, 9, 
32911
-                  0, 
32912
-                47, 
32913
-                  OPC_RecordChild0,
32914
-                  OPC_Scope, 21, 
32915
-                    OPC_CheckChild0Type, MVT::f64,
32916
-                    OPC_MoveParent,
32917
-                    OPC_CheckType, MVT::v2f64,
32918
-                    OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
32919
-                        1, MVT::v2f64, 0, 
32920
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
32921
-                        1, MVT::v2f64, 2, 1, 0, 
32922
-                  21, 
32923
-                    OPC_CheckChild0Type, MVT::f32,
32924
-                    OPC_MoveParent,
32925
-                    OPC_CheckType, MVT::v4f32,
32926
-                    OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
32927
-                        1, MVT::v4f32, 0, 
32928
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
32929
-                        1, MVT::v4f32, 2, 1, 0, 
32930
-                  0, 
32931
-                0, 
32932
-              51,  TARGET_OPCODE(ISD::BIT_CONVERT),
32933
-                OPC_MoveChild, 0,
32934
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
32935
-                OPC_RecordMemRef,
32936
-                OPC_RecordNode,
32937
-                OPC_CheckFoldableChainNode,
32938
-                OPC_RecordChild1,
32939
-                OPC_CheckPredicate, 2,
32940
-                OPC_CheckPredicate, 3,
32941
-                OPC_CheckType, MVT::v4f32,
32942
-                OPC_MoveParent,
32943
-                OPC_MoveParent,
32944
-                OPC_CheckType, MVT::v2f64,
32945
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32946
-                OPC_EmitMergeInputChains1_0,
32947
-                OPC_EmitInteger, MVT::i64, 0, 
32948
-                OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
32949
-                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
32950
-                OPC_EmitInteger, MVT::i32, X86::sub_sd,
32951
-                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
32952
-                    1, MVT::v2f64, 3, 7, 8, 9, 
32953
-              78,  TARGET_OPCODE(ISD::LOAD),
32954
-                OPC_RecordMemRef,
32955
-                OPC_RecordNode,
32956
-                OPC_RecordChild1,
32957
-                OPC_CheckPredicate, 2,
32958
-                OPC_CheckPredicate, 3,
32959
-                OPC_MoveParent,
32960
-                OPC_SwitchType , 32,  MVT::v4f32,
32961
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32962
-                  OPC_EmitMergeInputChains1_0,
32963
-                  OPC_EmitInteger, MVT::i32, 0, 
32964
-                  OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
32965
-                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
32966
-                  OPC_EmitInteger, MVT::i32, X86::sub_ss,
32967
-                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
32968
-                      1, MVT::v4f32, 3, 7, 8, 9, 
32969
-                32,  MVT::v2f64,
32970
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
32971
-                  OPC_EmitMergeInputChains1_0,
32972
-                  OPC_EmitInteger, MVT::i64, 0, 
32973
-                  OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
32974
-                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
32975
-                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
32976
-                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
32977
-                      1, MVT::v2f64, 3, 7, 8, 9, 
32978
-                0, 
32979
-              0, 
32980
-            45, 
32981
-              OPC_RecordChild0,
32982
-              OPC_SwitchType , 28,  MVT::v4f32,
32983
-                OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
32984
-                    1, MVT::v4f32, 0, 
32985
-                OPC_EmitInteger, MVT::i32, X86::sub_ss,
32986
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
32987
-                    1, MVT::f32, 2, 0, 2, 
32988
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
32989
-                    1, MVT::v4f32, 2, 1, 3, 
32990
-              10,  MVT::v2f64,
32991
-                OPC_CheckPatternPredicate, 2,
32992
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrr), 0,
32993
-                    1, MVT::v2f64, 1, 0, 
32994
-              0, 
32995
-            0, 
32996
-          56,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
32997
-            OPC_RecordNode,
32998
-            OPC_RecordChild1,
32999
-            OPC_SwitchType , 16,  MVT::v2i64,
33000
-              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33001
-              OPC_EmitMergeInputChains1_0,
33002
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain,
33003
-                  1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
33004
-            32,  MVT::v2f64,
33005
-              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33006
-              OPC_EmitMergeInputChains1_0,
33007
-              OPC_EmitInteger, MVT::i64, 0, 
33008
-              OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
33009
-                  1, MVT::f64, 5, 2, 3, 4, 5, 6, 
33010
-              OPC_EmitInteger, MVT::i32, X86::sub_sd,
33011
-              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
33012
-                  1, MVT::v2f64, 3, 7, 8, 9, 
33013
-            0, 
33014
-          63|128,1,  TARGET_OPCODE(X86ISD::PSHUFD),
33015
-            OPC_Scope, 115, 
33016
-              OPC_MoveChild, 0,
33017
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
33018
-              OPC_MoveChild, 0,
33019
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
33020
-              OPC_RecordMemRef,
33021
-              OPC_RecordNode,
33022
-              OPC_CheckFoldableChainNode,
33023
-              OPC_RecordChild1,
33024
-              OPC_CheckPredicate, 2,
33025
-              OPC_CheckPredicate, 3,
33026
-              OPC_CheckPredicate, 21,
33027
-              OPC_SwitchType , 57,  MVT::v2i64,
33028
-                OPC_MoveParent,
33029
-                OPC_MoveParent,
33030
-                OPC_RecordChild1,
33031
-                OPC_MoveChild, 1,
33032
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33033
-                OPC_CheckType, MVT::i8,
33034
-                OPC_MoveParent,
33035
-                OPC_CheckType, MVT::v4i32,
33036
-                OPC_Scope, 21, 
33037
-                  OPC_CheckPatternPredicate, 0,
33038
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33039
-                  OPC_EmitMergeInputChains1_0,
33040
-                  OPC_EmitConvertToTarget, 2,
33041
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
33042
-                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
33043
-                19, 
33044
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33045
-                  OPC_EmitMergeInputChains1_0,
33046
-                  OPC_EmitConvertToTarget, 2,
33047
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
33048
-                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
33049
-                0, 
33050
-              32,  MVT::v4f32,
33051
-                OPC_MoveParent,
33052
-                OPC_MoveParent,
33053
-                OPC_RecordChild1,
33054
-                OPC_MoveChild, 1,
33055
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33056
-                OPC_CheckType, MVT::i8,
33057
-                OPC_MoveParent,
33058
-                OPC_CheckType, MVT::v4i32,
33059
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33060
-                OPC_EmitMergeInputChains1_0,
33061
-                OPC_EmitConvertToTarget, 2,
33062
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
33063
-                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
33064
-              0, 
33065
-            72, 
33066
-              OPC_RecordChild0,
33067
-              OPC_RecordChild1,
33068
-              OPC_MoveChild, 1,
33069
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33070
-              OPC_CheckType, MVT::i8,
33071
-              OPC_MoveParent,
33072
-              OPC_SwitchType , 28,  MVT::v4i32,
33073
-                OPC_Scope, 13, 
33074
-                  OPC_CheckPatternPredicate, 0,
33075
-                  OPC_EmitConvertToTarget, 1,
33076
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
33077
-                      1, MVT::v4i32, 2, 0, 2, 
33078
-                11, 
33079
-                  OPC_EmitConvertToTarget, 1,
33080
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
33081
-                      1, MVT::v4i32, 2, 0, 2, 
33082
-                0, 
33083
-              28,  MVT::v4f32,
33084
-                OPC_Scope, 13, 
33085
-                  OPC_CheckPatternPredicate, 0,
33086
-                  OPC_EmitConvertToTarget, 1,
33087
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
33088
-                      1, MVT::v4f32, 2, 0, 2, 
33089
-                11, 
33090
-                  OPC_EmitConvertToTarget, 1,
33091
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
33092
-                      1, MVT::v4f32, 2, 0, 2, 
33093
-                0, 
33094
-              0, 
33095
-            0, 
33096
-          30|128,2,  TARGET_OPCODE(X86ISD::SHUFPS),
33097
-            OPC_RecordChild0,
33098
-            OPC_Scope, 76|128,1, 
33099
-              OPC_MoveChild, 1,
33100
-              OPC_SwitchOpcode , 76,  TARGET_OPCODE(ISD::BIT_CONVERT),
33101
-                OPC_MoveChild, 0,
33102
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
33103
-                OPC_RecordMemRef,
33104
-                OPC_RecordNode,
33105
-                OPC_CheckFoldableChainNode,
33106
-                OPC_RecordChild1,
33107
-                OPC_CheckPredicate, 2,
33108
-                OPC_CheckPredicate, 3,
33109
-                OPC_CheckPredicate, 21,
33110
-                OPC_CheckType, MVT::v2i64,
33111
-                OPC_MoveParent,
33112
-                OPC_MoveParent,
33113
-                OPC_RecordChild2,
33114
-                OPC_MoveChild, 2,
33115
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33116
-                OPC_CheckType, MVT::i8,
33117
-                OPC_MoveParent,
33118
-                OPC_CheckType, MVT::v4i32,
33119
-                OPC_Scope, 22, 
33120
-                  OPC_CheckPatternPredicate, 0,
33121
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33122
-                  OPC_EmitMergeInputChains1_1,
33123
-                  OPC_EmitConvertToTarget, 3,
33124
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
33125
-                      1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
33126
-                20, 
33127
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33128
-                  OPC_EmitMergeInputChains1_1,
33129
-                  OPC_EmitConvertToTarget, 3,
33130
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
33131
-                      1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
33132
-                0, 
33133
-              118,  TARGET_OPCODE(ISD::LOAD),
33134
-                OPC_RecordMemRef,
33135
-                OPC_RecordNode,
33136
-                OPC_CheckFoldableChainNode,
33137
-                OPC_RecordChild1,
33138
-                OPC_CheckPredicate, 2,
33139
-                OPC_CheckPredicate, 3,
33140
-                OPC_CheckPredicate, 21,
33141
-                OPC_MoveParent,
33142
-                OPC_RecordChild2,
33143
-                OPC_MoveChild, 2,
33144
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33145
-                OPC_CheckType, MVT::i8,
33146
-                OPC_MoveParent,
33147
-                OPC_SwitchType , 46,  MVT::v2f64,
33148
-                  OPC_Scope, 22, 
33149
-                    OPC_CheckPatternPredicate, 0,
33150
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33151
-                    OPC_EmitMergeInputChains1_1,
33152
-                    OPC_EmitConvertToTarget, 3,
33153
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
33154
-                        1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
33155
-                  20, 
33156
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33157
-                    OPC_EmitMergeInputChains1_1,
33158
-                    OPC_EmitConvertToTarget, 3,
33159
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
33160
-                        1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
33161
-                  0, 
33162
-                46,  MVT::v4f32,
33163
-                  OPC_Scope, 22, 
33164
-                    OPC_CheckPatternPredicate, 0,
33165
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33166
-                    OPC_EmitMergeInputChains1_1,
33167
-                    OPC_EmitConvertToTarget, 3,
33168
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
33169
-                        1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
33170
-                  20, 
33171
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33172
-                    OPC_EmitMergeInputChains1_1,
33173
-                    OPC_EmitConvertToTarget, 3,
33174
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
33175
-                        1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
33176
-                  0, 
33177
-                0, 
33178
-              0, 
33179
-            76, 
33180
-              OPC_RecordChild1,
33181
-              OPC_RecordChild2,
33182
-              OPC_MoveChild, 2,
33183
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33184
-              OPC_CheckType, MVT::i8,
33185
-              OPC_MoveParent,
33186
-              OPC_SwitchType , 30,  MVT::v4i32,
33187
-                OPC_Scope, 14, 
33188
-                  OPC_CheckPatternPredicate, 0,
33189
-                  OPC_EmitConvertToTarget, 2,
33190
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
33191
-                      1, MVT::v4i32, 3, 0, 1, 3, 
33192
-                12, 
33193
-                  OPC_EmitConvertToTarget, 2,
33194
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
33195
-                      1, MVT::v4i32, 3, 0, 1, 3, 
33196
-                0, 
33197
-              30,  MVT::v4f32,
33198
-                OPC_Scope, 14, 
33199
-                  OPC_CheckPatternPredicate, 0,
33200
-                  OPC_EmitConvertToTarget, 2,
33201
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
33202
-                      1, MVT::v4f32, 3, 0, 1, 3, 
33203
-                12, 
33204
-                  OPC_EmitConvertToTarget, 2,
33205
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
33206
-                      1, MVT::v4f32, 3, 0, 1, 3, 
33207
-                0, 
33208
-              0, 
33209
-            0, 
33210
-          81,  TARGET_OPCODE(X86ISD::PSHUFHW),
33211
-            OPC_Scope, 54, 
33212
-              OPC_MoveChild, 0,
33213
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
33214
-              OPC_MoveChild, 0,
33215
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
33216
-              OPC_RecordMemRef,
33217
-              OPC_RecordNode,
33218
-              OPC_CheckFoldableChainNode,
33219
-              OPC_RecordChild1,
33220
-              OPC_CheckPredicate, 2,
33221
-              OPC_CheckPredicate, 3,
33222
-              OPC_CheckPredicate, 21,
33223
-              OPC_CheckType, MVT::v2i64,
33224
-              OPC_MoveParent,
33225
-              OPC_MoveParent,
33226
-              OPC_RecordChild1,
33227
-              OPC_MoveChild, 1,
33228
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33229
-              OPC_CheckType, MVT::i8,
33230
-              OPC_MoveParent,
33231
-              OPC_CheckType, MVT::v8i16,
33232
-              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33233
-              OPC_EmitMergeInputChains1_0,
33234
-              OPC_EmitConvertToTarget, 2,
33235
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
33236
-                  1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
33237
-            23, 
33238
-              OPC_RecordChild0,
33239
-              OPC_RecordChild1,
33240
-              OPC_MoveChild, 1,
33241
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33242
-              OPC_CheckType, MVT::i8,
33243
-              OPC_MoveParent,
33244
-              OPC_CheckType, MVT::v8i16,
33245
-              OPC_EmitConvertToTarget, 1,
33246
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
33247
-                  1, MVT::v8i16, 2, 0, 2, 
33248
-            0, 
33249
-          81,  TARGET_OPCODE(X86ISD::PSHUFLW),
33250
-            OPC_Scope, 54, 
33251
-              OPC_MoveChild, 0,
33252
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
33253
-              OPC_MoveChild, 0,
33254
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
33255
-              OPC_RecordMemRef,
33256
-              OPC_RecordNode,
33257
-              OPC_CheckFoldableChainNode,
33258
-              OPC_RecordChild1,
33259
-              OPC_CheckPredicate, 2,
33260
-              OPC_CheckPredicate, 3,
33261
-              OPC_CheckPredicate, 21,
33262
-              OPC_CheckType, MVT::v2i64,
33263
-              OPC_MoveParent,
33264
-              OPC_MoveParent,
33265
-              OPC_RecordChild1,
33266
-              OPC_MoveChild, 1,
33267
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33268
-              OPC_CheckType, MVT::i8,
33269
-              OPC_MoveParent,
33270
-              OPC_CheckType, MVT::v8i16,
33271
-              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33272
-              OPC_EmitMergeInputChains1_0,
33273
-              OPC_EmitConvertToTarget, 2,
33274
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
33275
-                  1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
33276
-            23, 
33277
-              OPC_RecordChild0,
33278
-              OPC_RecordChild1,
33279
-              OPC_MoveChild, 1,
33280
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33281
-              OPC_CheckType, MVT::i8,
33282
-              OPC_MoveParent,
33283
-              OPC_CheckType, MVT::v8i16,
33284
-              OPC_EmitConvertToTarget, 1,
33285
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
33286
-                  1, MVT::v8i16, 2, 0, 2, 
33287
-            0, 
33288
-          78,  TARGET_OPCODE(X86ISD::MMX_PINSRW),
33289
-            OPC_RecordChild0,
33290
-            OPC_Scope, 51, 
33291
-              OPC_MoveChild, 1,
33292
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::ANY_EXTEND),
33293
-              OPC_MoveChild, 0,
33294
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
33295
-              OPC_RecordMemRef,
33296
-              OPC_RecordNode,
33297
-              OPC_CheckFoldableChainNode,
33298
-              OPC_RecordChild1,
33299
-              OPC_CheckPredicate, 2,
33300
-              OPC_CheckPredicate, 7,
33301
-              OPC_CheckType, MVT::i16,
33302
-              OPC_MoveParent,
33303
-              OPC_MoveParent,
33304
-              OPC_RecordChild2,
33305
-              OPC_MoveChild, 2,
33306
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33307
-              OPC_MoveParent,
33308
-              OPC_CheckPatternPredicate, 9,
33309
-              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33310
-              OPC_EmitMergeInputChains1_1,
33311
-              OPC_EmitConvertToTarget, 3,
33312
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
33313
-                  1, MVT::v4i16, 7, 0, 4, 5, 6, 7, 8, 9, 
33314
-            22, 
33315
-              OPC_RecordChild1,
33316
-              OPC_RecordChild2,
33317
-              OPC_MoveChild, 2,
33318
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
33319
-              OPC_MoveParent,
33320
-              OPC_CheckPatternPredicate, 9,
33321
-              OPC_EmitConvertToTarget, 2,
33322
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PINSRWrri), 0,
33323
-                  1, MVT::v4i16, 3, 0, 1, 3, 
33324
-            0, 
33325
-          88,  TARGET_OPCODE(X86ISD::MOVQ2DQ),
33326
-            OPC_Scope, 75, 
33327
-              OPC_MoveChild, 0,
33328
-              OPC_SwitchOpcode , 41,  TARGET_OPCODE(ISD::BIT_CONVERT),
33329
-                OPC_MoveChild, 0,
33330
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
33331
-                OPC_MoveChild, 0,
33332
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
33333
-                OPC_RecordMemRef,
33334
-                OPC_RecordNode,
33335
-                OPC_CheckFoldableChainNode,
33336
-                OPC_RecordChild1,
33337
-                OPC_CheckPredicate, 2,
33338
-                OPC_CheckPredicate, 8,
33339
-                OPC_CheckType, MVT::i32,
33340
-                OPC_MoveParent,
33341
-                OPC_CheckType, MVT::v2i32,
33342
-                OPC_MoveParent,
33343
-                OPC_MoveParent,
33344
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33345
-                OPC_EmitMergeInputChains1_0,
33346
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
33347
-                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
33348
-              24,  TARGET_OPCODE(ISD::LOAD),
33349
-                OPC_RecordMemRef,
33350
-                OPC_RecordNode,
33351
-                OPC_RecordChild1,
33352
-                OPC_CheckPredicate, 2,
33353
-                OPC_CheckPredicate, 3,
33354
-                OPC_MoveParent,
33355
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
33356
-                OPC_EmitMergeInputChains1_0,
33357
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
33358
-                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
33359
-              0, 
33360
-            9, 
33361
-              OPC_RecordChild0,
33362
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
33363
-                  1, MVT::v2i64, 1, 0, 
33364
-            0, 
33365 31040
           98,  TARGET_OPCODE(ISD::PREFETCH),
33366 31041
             OPC_RecordNode,
33367 31042
             OPC_RecordChild1,
... ...
@@ -33524,7 +33541,7 @@ SDNode *SelectCode(SDNode *N) {
33524 33524
               OPC_RecordChild1,
33525 33525
               OPC_CheckPredicate, 2,
33526 33526
               OPC_CheckPredicate, 3,
33527
-              OPC_CheckPredicate, 21,
33527
+              OPC_CheckPredicate, 19,
33528 33528
               OPC_MoveParent,
33529 33529
               OPC_RecordChild2,
33530 33530
               OPC_MoveChild, 2,
... ...
@@ -33559,7 +33576,7 @@ SDNode *SelectCode(SDNode *N) {
33559 33559
               OPC_RecordChild1,
33560 33560
               OPC_CheckPredicate, 2,
33561 33561
               OPC_CheckPredicate, 3,
33562
-              OPC_CheckPredicate, 21,
33562
+              OPC_CheckPredicate, 19,
33563 33563
               OPC_MoveParent,
33564 33564
               OPC_RecordChild2,
33565 33565
               OPC_MoveChild, 2,
... ...
@@ -33592,8 +33609,8 @@ SDNode *SelectCode(SDNode *N) {
33592 33592
               OPC_CheckFoldableChainNode,
33593 33593
               OPC_RecordChild1,
33594 33594
               OPC_CheckPredicate, 2,
33595
-              OPC_CheckPredicate, 32,
33596
-              OPC_CheckPredicate, 35,
33595
+              OPC_CheckPredicate, 54,
33596
+              OPC_CheckPredicate, 57,
33597 33597
               OPC_MoveParent,
33598 33598
               OPC_RecordChild2,
33599 33599
               OPC_MoveChild, 2,
... ...
@@ -33645,18 +33662,18 @@ SDNode *SelectCode(SDNode *N) {
33645 33645
               OPC_RecordChild1,
33646 33646
               OPC_CheckPredicate, 2,
33647 33647
               OPC_CheckPredicate, 3,
33648
-              OPC_CheckPredicate, 21,
33648
+              OPC_CheckPredicate, 19,
33649 33649
               OPC_CheckType, MVT::v2i64,
33650 33650
               OPC_MoveParent,
33651 33651
               OPC_MoveParent,
33652
-              OPC_CheckPatternPredicate, 11,
33652
+              OPC_CheckPatternPredicate, 12,
33653 33653
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
33654 33654
               OPC_EmitMergeInputChains1_1,
33655 33655
               OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
33656 33656
                   1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
33657 33657
             12, 
33658 33658
               OPC_RecordChild1,
33659
-              OPC_CheckPatternPredicate, 11,
33659
+              OPC_CheckPatternPredicate, 12,
33660 33660
               OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrr128), 0,
33661 33661
                   1, MVT::v16i8, 2, 0, 1, 
33662 33662
             0, 
... ...
@@ -33670,8 +33687,8 @@ SDNode *SelectCode(SDNode *N) {
33670 33670
               OPC_CheckFoldableChainNode,
33671 33671
               OPC_RecordChild1,
33672 33672
               OPC_CheckPredicate, 2,
33673
-              OPC_CheckPredicate, 32,
33674
-              OPC_CheckPredicate, 34,
33673
+              OPC_CheckPredicate, 54,
33674
+              OPC_CheckPredicate, 56,
33675 33675
               OPC_MoveParent,
33676 33676
               OPC_RecordChild2,
33677 33677
               OPC_MoveChild, 2,
... ...
@@ -33811,7 +33828,7 @@ SDNode *SelectCode(SDNode *N) {
33811 33811
                 OPC_RecordChild1,
33812 33812
                 OPC_CheckPredicate, 2,
33813 33813
                 OPC_CheckPredicate, 3,
33814
-                OPC_CheckPredicate, 21,
33814
+                OPC_CheckPredicate, 19,
33815 33815
                 OPC_SwitchType , 42,  MVT::v2i64,
33816 33816
                   OPC_MoveParent,
33817 33817
                   OPC_MoveParent,
... ...
@@ -33880,7 +33897,7 @@ SDNode *SelectCode(SDNode *N) {
33880 33880
               OPC_RecordChild1,
33881 33881
               OPC_CheckPredicate, 2,
33882 33882
               OPC_CheckPredicate, 3,
33883
-              OPC_CheckPredicate, 21,
33883
+              OPC_CheckPredicate, 19,
33884 33884
               OPC_MoveParent,
33885 33885
               OPC_SwitchType , 38,  MVT::v2i64,
33886 33886
                 OPC_Scope, 18, 
... ...
@@ -33949,7 +33966,7 @@ SDNode *SelectCode(SDNode *N) {
33949 33949
               OPC_RecordChild1,
33950 33950
               OPC_CheckPredicate, 2,
33951 33951
               OPC_CheckPredicate, 3,
33952
-              OPC_CheckPredicate, 21,
33952
+              OPC_CheckPredicate, 19,
33953 33953
               OPC_CheckType, MVT::v2i64,
33954 33954
               OPC_MoveParent,
33955 33955
               OPC_MoveParent,
... ...
@@ -33977,7 +33994,7 @@ SDNode *SelectCode(SDNode *N) {
33977 33977
               OPC_RecordChild1,
33978 33978
               OPC_CheckPredicate, 2,
33979 33979
               OPC_CheckPredicate, 3,
33980
-              OPC_CheckPredicate, 21,
33980
+              OPC_CheckPredicate, 19,
33981 33981
               OPC_CheckType, MVT::v2i64,
33982 33982
               OPC_MoveParent,
33983 33983
               OPC_MoveParent,
... ...
@@ -34005,7 +34022,7 @@ SDNode *SelectCode(SDNode *N) {
34005 34005
               OPC_RecordChild1,
34006 34006
               OPC_CheckPredicate, 2,
34007 34007
               OPC_CheckPredicate, 3,
34008
-              OPC_CheckPredicate, 21,
34008
+              OPC_CheckPredicate, 19,
34009 34009
               OPC_CheckType, MVT::v2i64,
34010 34010
               OPC_MoveParent,
34011 34011
               OPC_MoveParent,
... ...
@@ -34033,7 +34050,7 @@ SDNode *SelectCode(SDNode *N) {
34033 34033
               OPC_RecordChild1,
34034 34034
               OPC_CheckPredicate, 2,
34035 34035
               OPC_CheckPredicate, 3,
34036
-              OPC_CheckPredicate, 21,
34036
+              OPC_CheckPredicate, 19,
34037 34037
               OPC_CheckType, MVT::v2i64,
34038 34038
               OPC_MoveParent,
34039 34039
               OPC_MoveParent,
... ...
@@ -34061,7 +34078,7 @@ SDNode *SelectCode(SDNode *N) {
34061 34061
               OPC_RecordChild1,
34062 34062
               OPC_CheckPredicate, 2,
34063 34063
               OPC_CheckPredicate, 3,
34064
-              OPC_CheckPredicate, 21,
34064
+              OPC_CheckPredicate, 19,
34065 34065
               OPC_CheckType, MVT::v2i64,
34066 34066
               OPC_MoveParent,
34067 34067
               OPC_MoveParent,
... ...
@@ -34089,7 +34106,7 @@ SDNode *SelectCode(SDNode *N) {
34089 34089
               OPC_RecordChild1,
34090 34090
               OPC_CheckPredicate, 2,
34091 34091
               OPC_CheckPredicate, 3,
34092
-              OPC_CheckPredicate, 21,
34092
+              OPC_CheckPredicate, 19,
34093 34093
               OPC_CheckType, MVT::v2i64,
34094 34094
               OPC_MoveParent,
34095 34095
               OPC_MoveParent,
... ...
@@ -34104,140 +34121,146 @@ SDNode *SelectCode(SDNode *N) {
34104 34104
               OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
34105 34105
                   1, MVT::v4i32, 2, 0, 1, 
34106 34106
             0, 
34107
-          115,  TARGET_OPCODE(X86ISD::MOVSS),
34107
+          116,  TARGET_OPCODE(X86ISD::MOVSS),
34108 34108
             OPC_RecordChild0,
34109
-            OPC_Scope, 61, 
34109
+            OPC_Scope, 41, 
34110 34110
               OPC_MoveChild, 1,
34111
-              OPC_SwitchOpcode , 36,  TARGET_OPCODE(ISD::BIT_CONVERT),
34112
-                OPC_MoveChild, 0,
34113
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34114
-                OPC_RecordMemRef,
34115
-                OPC_RecordNode,
34116
-                OPC_CheckFoldableChainNode,
34117
-                OPC_RecordChild1,
34118
-                OPC_CheckPredicate, 2,
34119
-                OPC_CheckPredicate, 3,
34120
-                OPC_CheckType, MVT::v2i64,
34121
-                OPC_MoveParent,
34122
-                OPC_MoveParent,
34123
-                OPC_CheckType, MVT::v4i32,
34124
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
34125
-                OPC_EmitMergeInputChains1_1,
34126
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
34127
-                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
34128
-              15,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
34129
-                OPC_RecordChild0,
34130
-                OPC_CheckChild0Type, MVT::f32,
34131
-                OPC_MoveParent,
34132
-                OPC_CheckType, MVT::v4f32,
34133
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
34134
-                    1, MVT::v4f32, 2, 0, 1, 
34135
-              0, 
34136
-            49, 
34111
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
34112
+              OPC_MoveChild, 0,
34113
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34114
+              OPC_RecordMemRef,
34115
+              OPC_RecordNode,
34116
+              OPC_CheckFoldableChainNode,
34137 34117
               OPC_RecordChild1,
34138
-              OPC_SwitchType , 21,  MVT::v4i32,
34139
-                OPC_EmitInteger, MVT::i32, X86::sub_ss,
34140
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
34141
-                    1, MVT::f32, 2, 1, 2, 
34142
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
34143
-                    1, MVT::v4i32, 2, 0, 3, 
34144
-              21,  MVT::v4f32,
34145
-                OPC_EmitInteger, MVT::i32, X86::sub_ss,
34146
-                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
34147
-                    1, MVT::f32, 2, 1, 2, 
34148
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
34149
-                    1, MVT::v4f32, 2, 0, 3, 
34150
-              0, 
34118
+              OPC_CheckPredicate, 2,
34119
+              OPC_CheckPredicate, 3,
34120
+              OPC_CheckType, MVT::v2i64,
34121
+              OPC_MoveParent,
34122
+              OPC_MoveParent,
34123
+              OPC_CheckType, MVT::v4i32,
34124
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
34125
+              OPC_EmitMergeInputChains1_1,
34126
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
34127
+                  1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
34128
+            24, 
34129
+              OPC_RecordChild1,
34130
+              OPC_CheckType, MVT::v4i32,
34131
+              OPC_EmitInteger, MVT::i32, X86::sub_ss,
34132
+              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
34133
+                  1, MVT::f32, 2, 1, 2, 
34134
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
34135
+                  1, MVT::v4i32, 2, 0, 3, 
34136
+            20, 
34137
+              OPC_MoveChild, 1,
34138
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
34139
+              OPC_RecordChild0,
34140
+              OPC_CheckChild0Type, MVT::f32,
34141
+              OPC_MoveParent,
34142
+              OPC_CheckType, MVT::v4f32,
34143
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
34144
+                  1, MVT::v4f32, 2, 0, 1, 
34145
+            24, 
34146
+              OPC_RecordChild1,
34147
+              OPC_CheckType, MVT::v4f32,
34148
+              OPC_EmitInteger, MVT::i32, X86::sub_ss,
34149
+              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
34150
+                  1, MVT::f32, 2, 1, 2, 
34151
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
34152
+                  1, MVT::v4f32, 2, 0, 3, 
34151 34153
             0, 
34152
-          102,  TARGET_OPCODE(X86ISD::MOVSHDUP),
34153
-            OPC_Scope, 75, 
34154
+          103,  TARGET_OPCODE(X86ISD::MOVSHDUP),
34155
+            OPC_Scope, 42, 
34154 34156
               OPC_MoveChild, 0,
34155
-              OPC_SwitchOpcode , 37,  TARGET_OPCODE(ISD::BIT_CONVERT),
34156
-                OPC_MoveChild, 0,
34157
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34158
-                OPC_RecordMemRef,
34159
-                OPC_RecordNode,
34160
-                OPC_CheckFoldableChainNode,
34161
-                OPC_RecordChild1,
34162
-                OPC_CheckPredicate, 2,
34163
-                OPC_CheckPredicate, 3,
34164
-                OPC_CheckPredicate, 21,
34165
-                OPC_CheckType, MVT::v2i64,
34166
-                OPC_MoveParent,
34167
-                OPC_MoveParent,
34168
-                OPC_CheckType, MVT::v4i32,
34169
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34170
-                OPC_EmitMergeInputChains1_0,
34171
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34172
-                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
34173
-              28,  TARGET_OPCODE(ISD::LOAD),
34174
-                OPC_RecordMemRef,
34175
-                OPC_RecordNode,
34176
-                OPC_RecordChild1,
34177
-                OPC_CheckPredicate, 2,
34178
-                OPC_CheckPredicate, 3,
34179
-                OPC_CheckPredicate, 21,
34180
-                OPC_MoveParent,
34181
-                OPC_CheckType, MVT::v4f32,
34182
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34183
-                OPC_EmitMergeInputChains1_0,
34184
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34185
-                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
34186
-              0, 
34187
-            23, 
34157
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
34158
+              OPC_MoveChild, 0,
34159
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34160
+              OPC_RecordMemRef,
34161
+              OPC_RecordNode,
34162
+              OPC_CheckFoldableChainNode,
34163
+              OPC_RecordChild1,
34164
+              OPC_CheckPredicate, 2,
34165
+              OPC_CheckPredicate, 3,
34166
+              OPC_CheckPredicate, 19,
34167
+              OPC_CheckType, MVT::v2i64,
34168
+              OPC_MoveParent,
34169
+              OPC_MoveParent,
34170
+              OPC_CheckType, MVT::v4i32,
34171
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34172
+              OPC_EmitMergeInputChains1_0,
34173
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34174
+                  1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
34175
+            11, 
34188 34176
               OPC_RecordChild0,
34189
-              OPC_SwitchType , 8,  MVT::v4i32,
34190
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
34191
-                    1, MVT::v4i32, 1, 0, 
34192
-              8,  MVT::v4f32,
34193
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
34194
-                    1, MVT::v4f32, 1, 0, 
34195
-              0, 
34177
+              OPC_CheckType, MVT::v4i32,
34178
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
34179
+                  1, MVT::v4i32, 1, 0, 
34180
+            33, 
34181
+              OPC_MoveChild, 0,
34182
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34183
+              OPC_RecordMemRef,
34184
+              OPC_RecordNode,
34185
+              OPC_RecordChild1,
34186
+              OPC_CheckPredicate, 2,
34187
+              OPC_CheckPredicate, 3,
34188
+              OPC_CheckPredicate, 19,
34189
+              OPC_MoveParent,
34190
+              OPC_CheckType, MVT::v4f32,
34191
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34192
+              OPC_EmitMergeInputChains1_0,
34193
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34194
+                  1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
34195
+            11, 
34196
+              OPC_RecordChild0,
34197
+              OPC_CheckType, MVT::v4f32,
34198
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
34199
+                  1, MVT::v4f32, 1, 0, 
34196 34200
             0, 
34197
-          102,  TARGET_OPCODE(X86ISD::MOVSLDUP),
34198
-            OPC_Scope, 75, 
34201
+          103,  TARGET_OPCODE(X86ISD::MOVSLDUP),
34202
+            OPC_Scope, 42, 
34199 34203
               OPC_MoveChild, 0,
34200
-              OPC_SwitchOpcode , 37,  TARGET_OPCODE(ISD::BIT_CONVERT),
34201
-                OPC_MoveChild, 0,
34202
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34203
-                OPC_RecordMemRef,
34204
-                OPC_RecordNode,
34205
-                OPC_CheckFoldableChainNode,
34206
-                OPC_RecordChild1,
34207
-                OPC_CheckPredicate, 2,
34208
-                OPC_CheckPredicate, 3,
34209
-                OPC_CheckPredicate, 21,
34210
-                OPC_CheckType, MVT::v2i64,
34211
-                OPC_MoveParent,
34212
-                OPC_MoveParent,
34213
-                OPC_CheckType, MVT::v4i32,
34214
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34215
-                OPC_EmitMergeInputChains1_0,
34216
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34217
-                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
34218
-              28,  TARGET_OPCODE(ISD::LOAD),
34219
-                OPC_RecordMemRef,
34220
-                OPC_RecordNode,
34221
-                OPC_RecordChild1,
34222
-                OPC_CheckPredicate, 2,
34223
-                OPC_CheckPredicate, 3,
34224
-                OPC_CheckPredicate, 21,
34225
-                OPC_MoveParent,
34226
-                OPC_CheckType, MVT::v4f32,
34227
-                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34228
-                OPC_EmitMergeInputChains1_0,
34229
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34230
-                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
34231
-              0, 
34232
-            23, 
34204
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
34205
+              OPC_MoveChild, 0,
34206
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34207
+              OPC_RecordMemRef,
34208
+              OPC_RecordNode,
34209
+              OPC_CheckFoldableChainNode,
34210
+              OPC_RecordChild1,
34211
+              OPC_CheckPredicate, 2,
34212
+              OPC_CheckPredicate, 3,
34213
+              OPC_CheckPredicate, 19,
34214
+              OPC_CheckType, MVT::v2i64,
34215
+              OPC_MoveParent,
34216
+              OPC_MoveParent,
34217
+              OPC_CheckType, MVT::v4i32,
34218
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34219
+              OPC_EmitMergeInputChains1_0,
34220
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34221
+                  1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
34222
+            11, 
34233 34223
               OPC_RecordChild0,
34234
-              OPC_SwitchType , 8,  MVT::v4i32,
34235
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
34236
-                    1, MVT::v4i32, 1, 0, 
34237
-              8,  MVT::v4f32,
34238
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
34239
-                    1, MVT::v4f32, 1, 0, 
34240
-              0, 
34224
+              OPC_CheckType, MVT::v4i32,
34225
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
34226
+                  1, MVT::v4i32, 1, 0, 
34227
+            33, 
34228
+              OPC_MoveChild, 0,
34229
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34230
+              OPC_RecordMemRef,
34231
+              OPC_RecordNode,
34232
+              OPC_RecordChild1,
34233
+              OPC_CheckPredicate, 2,
34234
+              OPC_CheckPredicate, 3,
34235
+              OPC_CheckPredicate, 19,
34236
+              OPC_MoveParent,
34237
+              OPC_CheckType, MVT::v4f32,
34238
+              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
34239
+              OPC_EmitMergeInputChains1_0,
34240
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
34241
+                  1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
34242
+            11, 
34243
+              OPC_RecordChild0,
34244
+              OPC_CheckType, MVT::v4f32,
34245
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
34246
+                  1, MVT::v4f32, 1, 0, 
34241 34247
             0, 
34242 34248
           61|128,1,  TARGET_OPCODE(X86ISD::PCMPEQB),
34243 34249
             OPC_Scope, 42, 
... ...
@@ -34290,7 +34313,7 @@ SDNode *SelectCode(SDNode *N) {
34290 34290
               OPC_RecordChild1,
34291 34291
               OPC_CheckPredicate, 2,
34292 34292
               OPC_CheckPredicate, 3,
34293
-              OPC_CheckPredicate, 21,
34293
+              OPC_CheckPredicate, 19,
34294 34294
               OPC_MoveParent,
34295 34295
               OPC_CheckType, MVT::v16i8,
34296 34296
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -34306,7 +34329,7 @@ SDNode *SelectCode(SDNode *N) {
34306 34306
               OPC_RecordChild1,
34307 34307
               OPC_CheckPredicate, 2,
34308 34308
               OPC_CheckPredicate, 3,
34309
-              OPC_CheckPredicate, 21,
34309
+              OPC_CheckPredicate, 19,
34310 34310
               OPC_MoveParent,
34311 34311
               OPC_RecordChild1,
34312 34312
               OPC_CheckType, MVT::v16i8,
... ...
@@ -34376,7 +34399,7 @@ SDNode *SelectCode(SDNode *N) {
34376 34376
               OPC_RecordChild1,
34377 34377
               OPC_CheckPredicate, 2,
34378 34378
               OPC_CheckPredicate, 3,
34379
-              OPC_CheckPredicate, 21,
34379
+              OPC_CheckPredicate, 19,
34380 34380
               OPC_MoveParent,
34381 34381
               OPC_CheckType, MVT::v8i16,
34382 34382
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -34392,7 +34415,7 @@ SDNode *SelectCode(SDNode *N) {
34392 34392
               OPC_RecordChild1,
34393 34393
               OPC_CheckPredicate, 2,
34394 34394
               OPC_CheckPredicate, 3,
34395
-              OPC_CheckPredicate, 21,
34395
+              OPC_CheckPredicate, 19,
34396 34396
               OPC_MoveParent,
34397 34397
               OPC_RecordChild1,
34398 34398
               OPC_CheckType, MVT::v8i16,
... ...
@@ -34462,7 +34485,7 @@ SDNode *SelectCode(SDNode *N) {
34462 34462
               OPC_RecordChild1,
34463 34463
               OPC_CheckPredicate, 2,
34464 34464
               OPC_CheckPredicate, 3,
34465
-              OPC_CheckPredicate, 21,
34465
+              OPC_CheckPredicate, 19,
34466 34466
               OPC_MoveParent,
34467 34467
               OPC_CheckType, MVT::v4i32,
34468 34468
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -34478,7 +34501,7 @@ SDNode *SelectCode(SDNode *N) {
34478 34478
               OPC_RecordChild1,
34479 34479
               OPC_CheckPredicate, 2,
34480 34480
               OPC_CheckPredicate, 3,
34481
-              OPC_CheckPredicate, 21,
34481
+              OPC_CheckPredicate, 19,
34482 34482
               OPC_MoveParent,
34483 34483
               OPC_RecordChild1,
34484 34484
               OPC_CheckType, MVT::v4i32,
... ...
@@ -34525,7 +34548,7 @@ SDNode *SelectCode(SDNode *N) {
34525 34525
                 OPC_RecordChild1,
34526 34526
                 OPC_CheckPredicate, 2,
34527 34527
                 OPC_CheckPredicate, 3,
34528
-                OPC_CheckPredicate, 21,
34528
+                OPC_CheckPredicate, 19,
34529 34529
                 OPC_MoveParent,
34530 34530
                 OPC_CheckType, MVT::v16i8,
34531 34531
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -34571,7 +34594,7 @@ SDNode *SelectCode(SDNode *N) {
34571 34571
                 OPC_RecordChild1,
34572 34572
                 OPC_CheckPredicate, 2,
34573 34573
                 OPC_CheckPredicate, 3,
34574
-                OPC_CheckPredicate, 21,
34574
+                OPC_CheckPredicate, 19,
34575 34575
                 OPC_MoveParent,
34576 34576
                 OPC_CheckType, MVT::v8i16,
34577 34577
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -34617,7 +34640,7 @@ SDNode *SelectCode(SDNode *N) {
34617 34617
                 OPC_RecordChild1,
34618 34618
                 OPC_CheckPredicate, 2,
34619 34619
                 OPC_CheckPredicate, 3,
34620
-                OPC_CheckPredicate, 21,
34620
+                OPC_CheckPredicate, 19,
34621 34621
                 OPC_MoveParent,
34622 34622
                 OPC_CheckType, MVT::v4i32,
34623 34623
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -34635,46 +34658,25 @@ SDNode *SelectCode(SDNode *N) {
34635 34635
                     1, MVT::v2i32, 2, 0, 1, 
34636 34636
               0, 
34637 34637
             0, 
34638
-          123,  TARGET_OPCODE(X86ISD::MOVLHPS),
34638
+          3|128,1,  TARGET_OPCODE(X86ISD::MOVLHPS),
34639 34639
             OPC_RecordChild0,
34640
-            OPC_Scope, 82, 
34640
+            OPC_Scope, 36, 
34641 34641
               OPC_MoveChild, 1,
34642 34642
               OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
34643 34643
               OPC_MoveChild, 0,
34644
-              OPC_SwitchOpcode , 26,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
34645
-                OPC_RecordNode,
34646
-                OPC_CheckFoldableChainNode,
34647
-                OPC_RecordChild1,
34648
-                OPC_CheckType, MVT::v2i64,
34649
-                OPC_MoveParent,
34650
-                OPC_MoveParent,
34651
-                OPC_CheckType, MVT::v4i32,
34652
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
34653
-                OPC_EmitMergeInputChains1_1,
34654
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain,
34655
-                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
34656
-              41,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
34657
-                OPC_MoveChild, 0,
34658
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34659
-                OPC_RecordMemRef,
34660
-                OPC_RecordNode,
34661
-                OPC_CheckFoldableChainNode,
34662
-                OPC_RecordChild1,
34663
-                OPC_CheckPredicate, 2,
34664
-                OPC_CheckPredicate, 3,
34665
-                OPC_CheckPredicate, 4,
34666
-                OPC_CheckType, MVT::f64,
34667
-                OPC_MoveParent,
34668
-                OPC_CheckType, MVT::v2f64,
34669
-                OPC_MoveParent,
34670
-                OPC_MoveParent,
34671
-                OPC_CheckType, MVT::v4f32,
34672
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
34673
-                OPC_EmitMergeInputChains1_1,
34674
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
34675
-                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
34676
-              0, 
34677
-            36, 
34644
+              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::VZEXT_LOAD),
34645
+              OPC_RecordNode,
34646
+              OPC_CheckFoldableChainNode,
34647
+              OPC_RecordChild1,
34648
+              OPC_CheckType, MVT::v2i64,
34649
+              OPC_MoveParent,
34650
+              OPC_MoveParent,
34651
+              OPC_CheckType, MVT::v4i32,
34652
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
34653
+              OPC_EmitMergeInputChains1_1,
34654
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain,
34655
+                  1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
34656
+            25, 
34678 34657
               OPC_RecordChild1,
34679 34658
               OPC_SwitchType , 9,  MVT::v4i32,
34680 34659
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
... ...
@@ -34682,10 +34684,36 @@ SDNode *SelectCode(SDNode *N) {
34682 34682
               9,  MVT::v2i64,
34683 34683
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
34684 34684
                     1, MVT::v2i64, 2, 0, 1, 
34685
-              9,  MVT::v4f32,
34686
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
34687
-                    1, MVT::v4f32, 2, 0, 1, 
34688 34685
               0, 
34686
+            51, 
34687
+              OPC_MoveChild, 1,
34688
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
34689
+              OPC_MoveChild, 0,
34690
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
34691
+              OPC_MoveChild, 0,
34692
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
34693
+              OPC_RecordMemRef,
34694
+              OPC_RecordNode,
34695
+              OPC_CheckFoldableChainNode,
34696
+              OPC_RecordChild1,
34697
+              OPC_CheckPredicate, 2,
34698
+              OPC_CheckPredicate, 3,
34699
+              OPC_CheckPredicate, 4,
34700
+              OPC_CheckType, MVT::f64,
34701
+              OPC_MoveParent,
34702
+              OPC_CheckType, MVT::v2f64,
34703
+              OPC_MoveParent,
34704
+              OPC_MoveParent,
34705
+              OPC_CheckType, MVT::v4f32,
34706
+              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
34707
+              OPC_EmitMergeInputChains1_1,
34708
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
34709
+                  1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
34710
+            12, 
34711
+              OPC_RecordChild1,
34712
+              OPC_CheckType, MVT::v4f32,
34713
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
34714
+                  1, MVT::v4f32, 2, 0, 1, 
34689 34715
             0, 
34690 34716
           106,  TARGET_OPCODE(X86ISD::LCMPXCHG_DAG),
34691 34717
             OPC_RecordNode,
... ...
@@ -35104,7 +35132,7 @@ SDNode *SelectCode(SDNode *N) {
35104 35104
               OPC_CheckChild2Type, MVT::i32,
35105 35105
               OPC_RecordChild3,
35106 35106
               OPC_RecordChild4,
35107
-              OPC_CheckPatternPredicate, 14,
35107
+              OPC_CheckPatternPredicate, 10,
35108 35108
               OPC_EmitMergeInputChains1_0,
35109 35109
               OPC_EmitCopyToReg, 1, X86::EAX,
35110 35110
               OPC_EmitCopyToReg, 2, X86::ECX,
... ...
@@ -35116,7 +35144,7 @@ SDNode *SelectCode(SDNode *N) {
35116 35116
               OPC_MoveParent,
35117 35117
               OPC_RecordChild2,
35118 35118
               OPC_RecordChild3,
35119
-              OPC_CheckPatternPredicate, 14,
35119
+              OPC_CheckPatternPredicate, 10,
35120 35120
               OPC_EmitMergeInputChains1_0,
35121 35121
               OPC_EmitCopyToReg, 1, X86::ECX,
35122 35122
               OPC_EmitCopyToReg, 2, X86::EAX,
... ...
@@ -35211,7 +35239,7 @@ SDNode *SelectCode(SDNode *N) {
35211 35211
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::VLDDQUrm), 0|OPFL_Chain,
35212 35212
                     1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
35213 35213
               18, 
35214
-                OPC_CheckPatternPredicate, 14,
35214
+                OPC_CheckPatternPredicate, 10,
35215 35215
                 OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35216 35216
                 OPC_EmitMergeInputChains1_0,
35217 35217
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::LDDQUrm), 0|OPFL_Chain,
... ...
@@ -35531,36 +35559,45 @@ SDNode *SelectCode(SDNode *N) {
35531 35531
                 0, 
35532 35532
               0, 
35533 35533
             0, 
35534
-          30|128,3,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
35535
-            OPC_Scope, 28|128,2, 
35534
+          41|128,3,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
35535
+            OPC_Scope, 74|128,1, 
35536 35536
               OPC_MoveChild, 0,
35537
-              OPC_SwitchOpcode , 84|128,1,  TARGET_OPCODE(ISD::LOAD),
35537
+              OPC_SwitchOpcode , 2|128,1,  TARGET_OPCODE(ISD::LOAD),
35538 35538
                 OPC_RecordMemRef,
35539 35539
                 OPC_RecordNode,
35540 35540
                 OPC_RecordChild1,
35541 35541
                 OPC_CheckPredicate, 2,
35542
-                OPC_Scope, 47, 
35543
-                  OPC_CheckPredicate, 8,
35544
-                  OPC_CheckType, MVT::i32,
35545
-                  OPC_MoveParent,
35546
-                  OPC_CheckType, MVT::v4i32,
35547
-                  OPC_Scope, 18, 
35548
-                    OPC_CheckPatternPredicate, 0,
35549
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35550
-                    OPC_EmitMergeInputChains1_0,
35551
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
35552
-                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
35553
-                  18, 
35554
-                    OPC_CheckPatternPredicate, 2,
35542
+                OPC_SwitchType , 72,  MVT::i32,
35543
+                  OPC_Scope, 45, 
35544
+                    OPC_CheckPredicate, 8,
35545
+                    OPC_MoveParent,
35546
+                    OPC_CheckType, MVT::v4i32,
35547
+                    OPC_Scope, 18, 
35548
+                      OPC_CheckPatternPredicate, 0,
35549
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35550
+                      OPC_EmitMergeInputChains1_0,
35551
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
35552
+                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
35553
+                    18, 
35554
+                      OPC_CheckPatternPredicate, 2,
35555
+                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35556
+                      OPC_EmitMergeInputChains1_0,
35557
+                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
35558
+                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
35559
+                    0, 
35560
+                  23, 
35561
+                    OPC_CheckPredicate, 8,
35562
+                    OPC_MoveParent,
35563
+                    OPC_CheckType, MVT::v2i32,
35564
+                    OPC_CheckPatternPredicate, 9,
35555 35565
                     OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35556 35566
                     OPC_EmitMergeInputChains1_0,
35557
-                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
35558
-                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
35567
+                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
35568
+                        1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
35559 35569
                   0, 
35560
-                49, 
35570
+                47,  MVT::i64,
35561 35571
                   OPC_CheckPredicate, 3,
35562 35572
                   OPC_CheckPredicate, 4,
35563
-                  OPC_CheckType, MVT::i64,
35564 35573
                   OPC_MoveParent,
35565 35574
                   OPC_CheckType, MVT::v2i64,
35566 35575
                   OPC_Scope, 18, 
... ...
@@ -35576,42 +35613,6 @@ SDNode *SelectCode(SDNode *N) {
35576 35576
                     OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
35577 35577
                         1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
35578 35578
                   0, 
35579
-                25, 
35580
-                  OPC_CheckPredicate, 8,
35581
-                  OPC_CheckType, MVT::i32,
35582
-                  OPC_MoveParent,
35583
-                  OPC_CheckType, MVT::v2i32,
35584
-                  OPC_CheckPatternPredicate, 9,
35585
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35586
-                  OPC_EmitMergeInputChains1_0,
35587
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
35588
-                      1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
35589
-                80, 
35590
-                  OPC_CheckPredicate, 3,
35591
-                  OPC_CheckPredicate, 4,
35592
-                  OPC_SwitchType , 35,  MVT::f32,
35593
-                    OPC_MoveParent,
35594
-                    OPC_CheckType, MVT::v4f32,
35595
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35596
-                    OPC_EmitMergeInputChains1_0,
35597
-                    OPC_EmitInteger, MVT::i32, 0, 
35598
-                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
35599
-                        1, MVT::f32, 5, 2, 3, 4, 5, 6, 
35600
-                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
35601
-                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
35602
-                        1, MVT::v4f32, 3, 7, 8, 9, 
35603
-                  35,  MVT::f64,
35604
-                    OPC_MoveParent,
35605
-                    OPC_CheckType, MVT::v2f64,
35606
-                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35607
-                    OPC_EmitMergeInputChains1_0,
35608
-                    OPC_EmitInteger, MVT::i64, 0, 
35609
-                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
35610
-                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
35611
-                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
35612
-                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
35613
-                        1, MVT::v2f64, 3, 7, 8, 9, 
35614
-                  0, 
35615 35579
                 0, 
35616 35580
               61,  TARGET_OPCODE(ISD::BIT_CONVERT),
35617 35581
                 OPC_RecordChild0,
... ...
@@ -35642,7 +35643,7 @@ SDNode *SelectCode(SDNode *N) {
35642 35642
                       1, MVT::v2i64, 1, 0, 
35643 35643
                 0, 
35644 35644
               0, 
35645
-            125, 
35645
+            75, 
35646 35646
               OPC_RecordChild0,
35647 35647
               OPC_Scope, 28, 
35648 35648
                 OPC_CheckChild0Type, MVT::i64,
... ...
@@ -35672,17 +35673,50 @@ SDNode *SelectCode(SDNode *N) {
35672 35672
                   OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64rr), 0,
35673 35673
                       1, MVT::v2i32, 1, 0, 
35674 35674
                 0, 
35675
-              24, 
35676
-                OPC_CheckChild0Type, MVT::f32,
35675
+              0, 
35676
+            90, 
35677
+              OPC_MoveChild, 0,
35678
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
35679
+              OPC_RecordMemRef,
35680
+              OPC_RecordNode,
35681
+              OPC_RecordChild1,
35682
+              OPC_CheckPredicate, 2,
35683
+              OPC_CheckPredicate, 3,
35684
+              OPC_CheckPredicate, 4,
35685
+              OPC_SwitchType , 35,  MVT::f32,
35686
+                OPC_MoveParent,
35677 35687
                 OPC_CheckType, MVT::v4f32,
35688
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35689
+                OPC_EmitMergeInputChains1_0,
35690
+                OPC_EmitInteger, MVT::i32, 0, 
35691
+                OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
35692
+                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
35693
+                OPC_EmitInteger, MVT::i32, X86::sub_ss,
35694
+                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
35695
+                    1, MVT::v4f32, 3, 7, 8, 9, 
35696
+              35,  MVT::f64,
35697
+                OPC_MoveParent,
35698
+                OPC_CheckType, MVT::v2f64,
35699
+                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
35700
+                OPC_EmitMergeInputChains1_0,
35701
+                OPC_EmitInteger, MVT::i64, 0, 
35702
+                OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
35703
+                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
35704
+                OPC_EmitInteger, MVT::i32, X86::sub_sd,
35705
+                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
35706
+                    1, MVT::v2f64, 3, 7, 8, 9, 
35707
+              0, 
35708
+            51, 
35709
+              OPC_RecordChild0,
35710
+              OPC_SwitchType , 22,  MVT::v4f32,
35711
+                OPC_CheckChild0Type, MVT::f32,
35678 35712
                 OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
35679 35713
                     1, MVT::v4f32, 0, 
35680 35714
                 OPC_EmitInteger, MVT::i32, X86::sub_ss,
35681 35715
                 OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
35682 35716
                     1, MVT::v4f32, 3, 1, 0, 2, 
35683
-              24, 
35717
+              22,  MVT::v2f64,
35684 35718
                 OPC_CheckChild0Type, MVT::f64,
35685
-                OPC_CheckType, MVT::v2f64,
35686 35719
                 OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
35687 35720
                     1, MVT::v2f64, 0, 
35688 35721
                 OPC_EmitInteger, MVT::i32, X86::sub_sd,
... ...
@@ -35701,7 +35735,7 @@ SDNode *SelectCode(SDNode *N) {
35701 35701
               OPC_RecordChild1,
35702 35702
               OPC_CheckPredicate, 2,
35703 35703
               OPC_CheckPredicate, 3,
35704
-              OPC_CheckPredicate, 21,
35704
+              OPC_CheckPredicate, 19,
35705 35705
               OPC_MoveParent,
35706 35706
               OPC_CheckType, MVT::v2i64,
35707 35707
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -35717,7 +35751,7 @@ SDNode *SelectCode(SDNode *N) {
35717 35717
               OPC_RecordChild1,
35718 35718
               OPC_CheckPredicate, 2,
35719 35719
               OPC_CheckPredicate, 3,
35720
-              OPC_CheckPredicate, 21,
35720
+              OPC_CheckPredicate, 19,
35721 35721
               OPC_MoveParent,
35722 35722
               OPC_RecordChild1,
35723 35723
               OPC_CheckType, MVT::v2i64,
... ...
@@ -35743,7 +35777,7 @@ SDNode *SelectCode(SDNode *N) {
35743 35743
               OPC_RecordChild1,
35744 35744
               OPC_CheckPredicate, 2,
35745 35745
               OPC_CheckPredicate, 3,
35746
-              OPC_CheckPredicate, 21,
35746
+              OPC_CheckPredicate, 19,
35747 35747
               OPC_MoveParent,
35748 35748
               OPC_CheckType, MVT::v2i64,
35749 35749
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -35767,7 +35801,7 @@ SDNode *SelectCode(SDNode *N) {
35767 35767
               OPC_RecordChild1,
35768 35768
               OPC_CheckPredicate, 2,
35769 35769
               OPC_CheckPredicate, 3,
35770
-              OPC_CheckPredicate, 21,
35770
+              OPC_CheckPredicate, 19,
35771 35771
               OPC_MoveParent,
35772 35772
               OPC_CheckType, MVT::v2i64,
35773 35773
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -35791,7 +35825,7 @@ SDNode *SelectCode(SDNode *N) {
35791 35791
               OPC_RecordChild1,
35792 35792
               OPC_CheckPredicate, 2,
35793 35793
               OPC_CheckPredicate, 3,
35794
-              OPC_CheckPredicate, 21,
35794
+              OPC_CheckPredicate, 19,
35795 35795
               OPC_MoveParent,
35796 35796
               OPC_CheckType, MVT::v2i64,
35797 35797
               OPC_CheckComplexPat, /*CP*/0, /*#*/2,
... ...
@@ -35921,7 +35955,7 @@ SDNode *SelectCode(SDNode *N) {
35921 35921
               OPC_CheckChild1Type, MVT::f32,
35922 35922
               OPC_RecordChild2,
35923 35923
               OPC_Scope, 18, 
35924
-                OPC_CheckPatternPredicate, 14,
35924
+                OPC_CheckPatternPredicate, 10,
35925 35925
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
35926 35926
                 OPC_EmitMergeInputChains1_0,
35927 35927
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp16m32), 0|OPFL_Chain,
... ...
@@ -35936,7 +35970,7 @@ SDNode *SelectCode(SDNode *N) {
35936 35936
               OPC_CheckChild1Type, MVT::f64,
35937 35937
               OPC_RecordChild2,
35938 35938
               OPC_Scope, 18, 
35939
-                OPC_CheckPatternPredicate, 14,
35939
+                OPC_CheckPatternPredicate, 10,
35940 35940
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
35941 35941
                 OPC_EmitMergeInputChains1_0,
35942 35942
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp16m64), 0|OPFL_Chain,
... ...
@@ -35951,7 +35985,7 @@ SDNode *SelectCode(SDNode *N) {
35951 35951
               OPC_CheckChild1Type, MVT::f80,
35952 35952
               OPC_RecordChild2,
35953 35953
               OPC_Scope, 18, 
35954
-                OPC_CheckPatternPredicate, 14,
35954
+                OPC_CheckPatternPredicate, 10,
35955 35955
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
35956 35956
                 OPC_EmitMergeInputChains1_0,
35957 35957
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp16m80), 0|OPFL_Chain,
... ...
@@ -35970,7 +36004,7 @@ SDNode *SelectCode(SDNode *N) {
35970 35970
               OPC_CheckChild1Type, MVT::f32,
35971 35971
               OPC_RecordChild2,
35972 35972
               OPC_Scope, 18, 
35973
-                OPC_CheckPatternPredicate, 14,
35973
+                OPC_CheckPatternPredicate, 10,
35974 35974
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
35975 35975
                 OPC_EmitMergeInputChains1_0,
35976 35976
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp32m32), 0|OPFL_Chain,
... ...
@@ -35985,7 +36019,7 @@ SDNode *SelectCode(SDNode *N) {
35985 35985
               OPC_CheckChild1Type, MVT::f64,
35986 35986
               OPC_RecordChild2,
35987 35987
               OPC_Scope, 18, 
35988
-                OPC_CheckPatternPredicate, 14,
35988
+                OPC_CheckPatternPredicate, 10,
35989 35989
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
35990 35990
                 OPC_EmitMergeInputChains1_0,
35991 35991
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp32m64), 0|OPFL_Chain,
... ...
@@ -36000,7 +36034,7 @@ SDNode *SelectCode(SDNode *N) {
36000 36000
               OPC_CheckChild1Type, MVT::f80,
36001 36001
               OPC_RecordChild2,
36002 36002
               OPC_Scope, 18, 
36003
-                OPC_CheckPatternPredicate, 14,
36003
+                OPC_CheckPatternPredicate, 10,
36004 36004
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36005 36005
                 OPC_EmitMergeInputChains1_0,
36006 36006
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp32m80), 0|OPFL_Chain,
... ...
@@ -36019,7 +36053,7 @@ SDNode *SelectCode(SDNode *N) {
36019 36019
               OPC_CheckChild1Type, MVT::f32,
36020 36020
               OPC_RecordChild2,
36021 36021
               OPC_Scope, 18, 
36022
-                OPC_CheckPatternPredicate, 14,
36022
+                OPC_CheckPatternPredicate, 10,
36023 36023
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36024 36024
                 OPC_EmitMergeInputChains1_0,
36025 36025
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp64m32), 0|OPFL_Chain,
... ...
@@ -36034,7 +36068,7 @@ SDNode *SelectCode(SDNode *N) {
36034 36034
               OPC_CheckChild1Type, MVT::f64,
36035 36035
               OPC_RecordChild2,
36036 36036
               OPC_Scope, 18, 
36037
-                OPC_CheckPatternPredicate, 14,
36037
+                OPC_CheckPatternPredicate, 10,
36038 36038
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36039 36039
                 OPC_EmitMergeInputChains1_0,
36040 36040
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp64m64), 0|OPFL_Chain,
... ...
@@ -36049,7 +36083,7 @@ SDNode *SelectCode(SDNode *N) {
36049 36049
               OPC_CheckChild1Type, MVT::f80,
36050 36050
               OPC_RecordChild2,
36051 36051
               OPC_Scope, 18, 
36052
-                OPC_CheckPatternPredicate, 14,
36052
+                OPC_CheckPatternPredicate, 10,
36053 36053
                 OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36054 36054
                 OPC_EmitMergeInputChains1_0,
36055 36055
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp64m80), 0|OPFL_Chain,
... ...
@@ -36168,252 +36202,6 @@ SDNode *SelectCode(SDNode *N) {
36168 36168
               OPC_MorphNodeTo, TARGET_OPCODE(X86::TLSCall_64), 0,
36169 36169
                   1, MVT::i64, 5, 1, 2, 3, 4, 5, 
36170 36170
             0, 
36171
-          124,  TARGET_OPCODE(X86ISD::INSERTPS),
36172
-            OPC_RecordChild0,
36173
-            OPC_Scope, 79, 
36174
-              OPC_MoveChild, 1,
36175
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
36176
-              OPC_MoveChild, 0,
36177
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
36178
-              OPC_RecordMemRef,
36179
-              OPC_RecordNode,
36180
-              OPC_CheckFoldableChainNode,
36181
-              OPC_RecordChild1,
36182
-              OPC_CheckPredicate, 2,
36183
-              OPC_CheckPredicate, 3,
36184
-              OPC_CheckPredicate, 4,
36185
-              OPC_CheckType, MVT::f32,
36186
-              OPC_MoveParent,
36187
-              OPC_MoveParent,
36188
-              OPC_RecordChild2,
36189
-              OPC_MoveChild, 2,
36190
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
36191
-              OPC_MoveParent,
36192
-              OPC_Scope, 22, 
36193
-                OPC_CheckPatternPredicate, 5,
36194
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36195
-                OPC_EmitMergeInputChains1_1,
36196
-                OPC_EmitConvertToTarget, 3,
36197
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36198
-                    1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
36199
-              22, 
36200
-                OPC_CheckPatternPredicate, 0,
36201
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36202
-                OPC_EmitMergeInputChains1_1,
36203
-                OPC_EmitConvertToTarget, 3,
36204
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36205
-                    1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
36206
-              0, 
36207
-            40, 
36208
-              OPC_RecordChild1,
36209
-              OPC_RecordChild2,
36210
-              OPC_MoveChild, 2,
36211
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
36212
-              OPC_MoveParent,
36213
-              OPC_Scope, 14, 
36214
-                OPC_CheckPatternPredicate, 5,
36215
-                OPC_EmitConvertToTarget, 2,
36216
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrr), 0,
36217
-                    1, MVT::v4f32, 3, 0, 1, 3, 
36218
-              14, 
36219
-                OPC_CheckPatternPredicate, 0,
36220
-                OPC_EmitConvertToTarget, 2,
36221
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrr), 0,
36222
-                    1, MVT::v4f32, 3, 0, 1, 3, 
36223
-              0, 
36224
-            0, 
36225
-          44,  TARGET_OPCODE(X86ISD::MOVLHPD),
36226
-            OPC_RecordChild0,
36227
-            OPC_MoveChild, 1,
36228
-            OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
36229
-            OPC_MoveChild, 0,
36230
-            OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
36231
-            OPC_RecordMemRef,
36232
-            OPC_RecordNode,
36233
-            OPC_CheckFoldableChainNode,
36234
-            OPC_RecordChild1,
36235
-            OPC_CheckPredicate, 2,
36236
-            OPC_CheckPredicate, 3,
36237
-            OPC_CheckPredicate, 4,
36238
-            OPC_CheckType, MVT::f64,
36239
-            OPC_MoveParent,
36240
-            OPC_MoveParent,
36241
-            OPC_CheckType, MVT::v2f64,
36242
-            OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36243
-            OPC_EmitMergeInputChains1_1,
36244
-            OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
36245
-                1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
36246
-          5|128,1,  TARGET_OPCODE(X86ISD::UNPCKLPD),
36247
-            OPC_RecordChild0,
36248
-            OPC_Scope, 101, 
36249
-              OPC_MoveChild, 1,
36250
-              OPC_SwitchOpcode , 38,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
36251
-                OPC_MoveChild, 0,
36252
-                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
36253
-                OPC_RecordMemRef,
36254
-                OPC_RecordNode,
36255
-                OPC_CheckFoldableChainNode,
36256
-                OPC_RecordChild1,
36257
-                OPC_CheckPredicate, 2,
36258
-                OPC_CheckPredicate, 3,
36259
-                OPC_CheckPredicate, 4,
36260
-                OPC_CheckType, MVT::f64,
36261
-                OPC_MoveParent,
36262
-                OPC_MoveParent,
36263
-                OPC_CheckType, MVT::v2f64,
36264
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36265
-                OPC_EmitMergeInputChains1_1,
36266
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
36267
-                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
36268
-              53,  TARGET_OPCODE(ISD::LOAD),
36269
-                OPC_RecordMemRef,
36270
-                OPC_RecordNode,
36271
-                OPC_CheckFoldableChainNode,
36272
-                OPC_RecordChild1,
36273
-                OPC_CheckPredicate, 2,
36274
-                OPC_CheckPredicate, 3,
36275
-                OPC_CheckPredicate, 21,
36276
-                OPC_MoveParent,
36277
-                OPC_CheckType, MVT::v2f64,
36278
-                OPC_Scope, 19, 
36279
-                  OPC_CheckPatternPredicate, 0,
36280
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36281
-                  OPC_EmitMergeInputChains1_1,
36282
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36283
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
36284
-                17, 
36285
-                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36286
-                  OPC_EmitMergeInputChains1_1,
36287
-                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36288
-                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
36289
-                0, 
36290
-              0, 
36291
-            27, 
36292
-              OPC_RecordChild1,
36293
-              OPC_CheckType, MVT::v2f64,
36294
-              OPC_Scope, 11, 
36295
-                OPC_CheckPatternPredicate, 0,
36296
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrr), 0,
36297
-                    1, MVT::v2f64, 2, 0, 1, 
36298
-              9, 
36299
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
36300
-                    1, MVT::v2f64, 2, 0, 1, 
36301
-              0, 
36302
-            0, 
36303
-          90,  TARGET_OPCODE(X86ISD::UNPCKLPS),
36304
-            OPC_RecordChild0,
36305
-            OPC_Scope, 58, 
36306
-              OPC_MoveChild, 1,
36307
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
36308
-              OPC_RecordMemRef,
36309
-              OPC_RecordNode,
36310
-              OPC_CheckFoldableChainNode,
36311
-              OPC_RecordChild1,
36312
-              OPC_CheckPredicate, 2,
36313
-              OPC_CheckPredicate, 3,
36314
-              OPC_CheckPredicate, 21,
36315
-              OPC_MoveParent,
36316
-              OPC_CheckType, MVT::v4f32,
36317
-              OPC_Scope, 19, 
36318
-                OPC_CheckPatternPredicate, 0,
36319
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36320
-                OPC_EmitMergeInputChains1_1,
36321
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36322
-                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
36323
-              17, 
36324
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36325
-                OPC_EmitMergeInputChains1_1,
36326
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36327
-                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
36328
-              0, 
36329
-            27, 
36330
-              OPC_RecordChild1,
36331
-              OPC_CheckType, MVT::v4f32,
36332
-              OPC_Scope, 11, 
36333
-                OPC_CheckPatternPredicate, 0,
36334
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrr), 0,
36335
-                    1, MVT::v4f32, 2, 0, 1, 
36336
-              9, 
36337
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
36338
-                    1, MVT::v4f32, 2, 0, 1, 
36339
-              0, 
36340
-            0, 
36341
-          90,  TARGET_OPCODE(X86ISD::UNPCKHPS),
36342
-            OPC_RecordChild0,
36343
-            OPC_Scope, 58, 
36344
-              OPC_MoveChild, 1,
36345
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
36346
-              OPC_RecordMemRef,
36347
-              OPC_RecordNode,
36348
-              OPC_CheckFoldableChainNode,
36349
-              OPC_RecordChild1,
36350
-              OPC_CheckPredicate, 2,
36351
-              OPC_CheckPredicate, 3,
36352
-              OPC_CheckPredicate, 21,
36353
-              OPC_MoveParent,
36354
-              OPC_CheckType, MVT::v4f32,
36355
-              OPC_Scope, 19, 
36356
-                OPC_CheckPatternPredicate, 0,
36357
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36358
-                OPC_EmitMergeInputChains1_1,
36359
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36360
-                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
36361
-              17, 
36362
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36363
-                OPC_EmitMergeInputChains1_1,
36364
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36365
-                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
36366
-              0, 
36367
-            27, 
36368
-              OPC_RecordChild1,
36369
-              OPC_CheckType, MVT::v4f32,
36370
-              OPC_Scope, 11, 
36371
-                OPC_CheckPatternPredicate, 0,
36372
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrr), 0,
36373
-                    1, MVT::v4f32, 2, 0, 1, 
36374
-              9, 
36375
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
36376
-                    1, MVT::v4f32, 2, 0, 1, 
36377
-              0, 
36378
-            0, 
36379
-          90,  TARGET_OPCODE(X86ISD::UNPCKHPD),
36380
-            OPC_RecordChild0,
36381
-            OPC_Scope, 58, 
36382
-              OPC_MoveChild, 1,
36383
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
36384
-              OPC_RecordMemRef,
36385
-              OPC_RecordNode,
36386
-              OPC_CheckFoldableChainNode,
36387
-              OPC_RecordChild1,
36388
-              OPC_CheckPredicate, 2,
36389
-              OPC_CheckPredicate, 3,
36390
-              OPC_CheckPredicate, 21,
36391
-              OPC_MoveParent,
36392
-              OPC_CheckType, MVT::v2f64,
36393
-              OPC_Scope, 19, 
36394
-                OPC_CheckPatternPredicate, 0,
36395
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36396
-                OPC_EmitMergeInputChains1_1,
36397
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36398
-                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
36399
-              17, 
36400
-                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
36401
-                OPC_EmitMergeInputChains1_1,
36402
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
36403
-                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
36404
-              0, 
36405
-            27, 
36406
-              OPC_RecordChild1,
36407
-              OPC_CheckType, MVT::v2f64,
36408
-              OPC_Scope, 11, 
36409
-                OPC_CheckPatternPredicate, 0,
36410
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrr), 0,
36411
-                    1, MVT::v2f64, 2, 0, 1, 
36412
-              9, 
36413
-                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
36414
-                    1, MVT::v2f64, 2, 0, 1, 
36415
-              0, 
36416
-            0, 
36417 36171
           44,  TARGET_OPCODE(ISD::CALLSEQ_END),
36418 36172
             OPC_RecordNode,
36419 36173
             OPC_CaptureFlagInput,
... ...
@@ -36635,19 +36423,19 @@ SDNode *SelectCode(SDNode *N) {
36635 36635
               OPC_Scope, 16, 
36636 36636
                 OPC_CheckPatternPredicate, 0,
36637 36637
                 OPC_EmitConvertToTarget, 1,
36638
-                OPC_EmitNodeXForm, 0, 2,
36638
+                OPC_EmitNodeXForm, 5, 2,
36639 36639
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
36640 36640
                     1, MVT::v2i64, 2, 0, 3, 
36641 36641
               16, 
36642 36642
                 OPC_CheckPatternPredicate, 2,
36643 36643
                 OPC_EmitConvertToTarget, 1,
36644
-                OPC_EmitNodeXForm, 0, 2,
36644
+                OPC_EmitNodeXForm, 5, 2,
36645 36645
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDQri), 0,
36646 36646
                     1, MVT::v2i64, 2, 0, 3, 
36647 36647
               0, 
36648 36648
             14,  MVT::v1i64,
36649 36649
               OPC_EmitConvertToTarget, 1,
36650
-              OPC_EmitNodeXForm, 1, 2,
36650
+              OPC_EmitNodeXForm, 6, 2,
36651 36651
               OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLQri), 0,
36652 36652
                   1, MVT::v1i64, 2, 0, 3, 
36653 36653
             0, 
... ...
@@ -36662,19 +36450,19 @@ SDNode *SelectCode(SDNode *N) {
36662 36662
               OPC_Scope, 16, 
36663 36663
                 OPC_CheckPatternPredicate, 0,
36664 36664
                 OPC_EmitConvertToTarget, 1,
36665
-                OPC_EmitNodeXForm, 0, 2,
36665
+                OPC_EmitNodeXForm, 5, 2,
36666 36666
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
36667 36667
                     1, MVT::v2i64, 2, 0, 3, 
36668 36668
               16, 
36669 36669
                 OPC_CheckPatternPredicate, 2,
36670 36670
                 OPC_EmitConvertToTarget, 1,
36671
-                OPC_EmitNodeXForm, 0, 2,
36671
+                OPC_EmitNodeXForm, 5, 2,
36672 36672
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
36673 36673
                     1, MVT::v2i64, 2, 0, 3, 
36674 36674
               0, 
36675 36675
             14,  MVT::v1i64,
36676 36676
               OPC_EmitConvertToTarget, 1,
36677
-              OPC_EmitNodeXForm, 1, 2,
36677
+              OPC_EmitNodeXForm, 6, 2,
36678 36678
               OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLQri), 0,
36679 36679
                   1, MVT::v1i64, 2, 0, 3, 
36680 36680
             0, 
... ...
@@ -36752,7 +36540,7 @@ SDNode *SelectCode(SDNode *N) {
36752 36752
             0, 
36753 36753
           80|128,1,  TARGET_OPCODE(ISD::BUILD_VECTOR),
36754 36754
             OPC_Scope, 55, 
36755
-              OPC_CheckPredicate, 107,
36755
+              OPC_CheckPredicate, 40,
36756 36756
               OPC_SwitchType , 22,  MVT::v4i32,
36757 36757
                 OPC_Scope, 9, 
36758 36758
                   OPC_CheckPatternPredicate, 2,
... ...
@@ -36774,25 +36562,25 @@ SDNode *SelectCode(SDNode *N) {
36774 36774
                     1, MVT::v16i8, 0, 
36775 36775
               0, 
36776 36776
             13, 
36777
-              OPC_CheckPredicate, 44,
36777
+              OPC_CheckPredicate, 64,
36778 36778
               OPC_CheckType, MVT::v4i32,
36779 36779
               OPC_CheckPatternPredicate, 2,
36780 36780
               OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SETALLONES), 0,
36781 36781
                   1, MVT::v4i32, 0, 
36782 36782
             13, 
36783
-              OPC_CheckPredicate, 107,
36783
+              OPC_CheckPredicate, 40,
36784 36784
               OPC_CheckType, MVT::v2i32,
36785 36785
               OPC_CheckPatternPredicate, 9,
36786 36786
               OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
36787 36787
                   1, MVT::v2i32, 0, 
36788 36788
             13, 
36789
-              OPC_CheckPredicate, 44,
36789
+              OPC_CheckPredicate, 64,
36790 36790
               OPC_CheckType, MVT::v2i32,
36791 36791
               OPC_CheckPatternPredicate, 9,
36792 36792
               OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SETALLONES), 0,
36793 36793
                   1, MVT::v2i32, 0, 
36794 36794
             107, 
36795
-              OPC_CheckPredicate, 107,
36795
+              OPC_CheckPredicate, 40,
36796 36796
               OPC_SwitchType , 9,  MVT::v1i64,
36797 36797
                 OPC_CheckPatternPredicate, 9,
36798 36798
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
... ...
@@ -36946,40 +36734,29 @@ SDNode *SelectCode(SDNode *N) {
36946 36946
             OPC_EmitMergeInputChains1_0,
36947 36947
             OPC_MorphNodeTo, TARGET_OPCODE(X86::SFENCE), 0|OPFL_Chain,
36948 36948
                 0, 0, 
36949
-          50,  TARGET_OPCODE(X86ISD::FSRL),
36949
+          8,  TARGET_OPCODE(X86ISD::LFENCE),
36950
+            OPC_RecordNode,
36951
+            OPC_EmitMergeInputChains1_0,
36952
+            OPC_MorphNodeTo, TARGET_OPCODE(X86::LFENCE), 0|OPFL_Chain,
36953
+                0, 0, 
36954
+          8,  TARGET_OPCODE(X86ISD::MFENCE),
36955
+            OPC_RecordNode,
36956
+            OPC_EmitMergeInputChains1_0,
36957
+            OPC_MorphNodeTo, TARGET_OPCODE(X86::MFENCE), 0|OPFL_Chain,
36958
+                0, 0, 
36959
+          26,  TARGET_OPCODE(X86ISD::MOVHLPS),
36950 36960
             OPC_RecordChild0,
36951 36961
             OPC_RecordChild1,
36952
-            OPC_MoveChild, 1,
36953
-            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
36954
-            OPC_CheckPredicate, 9,
36955
-            OPC_CheckType, MVT::i32,
36956
-            OPC_MoveParent,
36957
-            OPC_CheckType, MVT::v2f64,
36958
-            OPC_Scope, 16, 
36959
-              OPC_CheckPatternPredicate, 0,
36960
-              OPC_EmitConvertToTarget, 1,
36961
-              OPC_EmitNodeXForm, 0, 2,
36962
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
36963
-                  1, MVT::v2f64, 2, 0, 3, 
36964
-            16, 
36965
-              OPC_CheckPatternPredicate, 2,
36966
-              OPC_EmitConvertToTarget, 1,
36967
-              OPC_EmitNodeXForm, 0, 2,
36968
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
36969
-                  1, MVT::v2f64, 2, 0, 3, 
36962
+            OPC_SwitchType , 9,  MVT::v4i32,
36963
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
36964
+                  1, MVT::v4i32, 2, 0, 1, 
36965
+            9,  MVT::v4f32,
36966
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
36967
+                  1, MVT::v4f32, 2, 0, 1, 
36970 36968
             0, 
36971
-          120,  TARGET_OPCODE(X86ISD::MOVSD),
36969
+          124,  TARGET_OPCODE(X86ISD::MOVSD),
36972 36970
             OPC_RecordChild0,
36973
-            OPC_Scope, 20, 
36974
-              OPC_MoveChild, 1,
36975
-              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
36976
-              OPC_RecordChild0,
36977
-              OPC_CheckChild0Type, MVT::f64,
36978
-              OPC_MoveParent,
36979
-              OPC_CheckType, MVT::v2f64,
36980
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
36981
-                  1, MVT::v2f64, 2, 0, 1, 
36982
-            95, 
36971
+            OPC_Scope, 49, 
36983 36972
               OPC_RecordChild1,
36984 36973
               OPC_SwitchType , 21,  MVT::v2i64,
36985 36974
                 OPC_EmitInteger, MVT::i32, X86::sub_sd,
... ...
@@ -36993,7 +36770,19 @@ SDNode *SelectCode(SDNode *N) {
36993 36993
                     1, MVT::f64, 2, 1, 2, 
36994 36994
                 OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
36995 36995
                     1, MVT::v4i32, 2, 0, 3, 
36996
-              21,  MVT::v2f64,
36996
+              0, 
36997
+            20, 
36998
+              OPC_MoveChild, 1,
36999
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
37000
+              OPC_RecordChild0,
37001
+              OPC_CheckChild0Type, MVT::f64,
37002
+              OPC_MoveParent,
37003
+              OPC_CheckType, MVT::v2f64,
37004
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
37005
+                  1, MVT::v2f64, 2, 0, 1, 
37006
+            49, 
37007
+              OPC_RecordChild1,
37008
+              OPC_SwitchType , 21,  MVT::v2f64,
36997 37009
                 OPC_EmitInteger, MVT::i32, X86::sub_sd,
36998 37010
                 OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
36999 37011
                     1, MVT::f64, 2, 1, 2, 
... ...
@@ -37007,25 +36796,273 @@ SDNode *SelectCode(SDNode *N) {
37007 37007
                     1, MVT::v4f32, 2, 0, 3, 
37008 37008
               0, 
37009 37009
             0, 
37010
-          8,  TARGET_OPCODE(X86ISD::LFENCE),
37011
-            OPC_RecordNode,
37012
-            OPC_EmitMergeInputChains1_0,
37013
-            OPC_MorphNodeTo, TARGET_OPCODE(X86::LFENCE), 0|OPFL_Chain,
37014
-                0, 0, 
37015
-          8,  TARGET_OPCODE(X86ISD::MFENCE),
37010
+          124,  TARGET_OPCODE(X86ISD::INSERTPS),
37011
+            OPC_RecordChild0,
37012
+            OPC_Scope, 79, 
37013
+              OPC_MoveChild, 1,
37014
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
37015
+              OPC_MoveChild, 0,
37016
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
37017
+              OPC_RecordMemRef,
37018
+              OPC_RecordNode,
37019
+              OPC_CheckFoldableChainNode,
37020
+              OPC_RecordChild1,
37021
+              OPC_CheckPredicate, 2,
37022
+              OPC_CheckPredicate, 3,
37023
+              OPC_CheckPredicate, 4,
37024
+              OPC_CheckType, MVT::f32,
37025
+              OPC_MoveParent,
37026
+              OPC_MoveParent,
37027
+              OPC_RecordChild2,
37028
+              OPC_MoveChild, 2,
37029
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
37030
+              OPC_MoveParent,
37031
+              OPC_Scope, 22, 
37032
+                OPC_CheckPatternPredicate, 5,
37033
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37034
+                OPC_EmitMergeInputChains1_1,
37035
+                OPC_EmitConvertToTarget, 3,
37036
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37037
+                    1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
37038
+              22, 
37039
+                OPC_CheckPatternPredicate, 0,
37040
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37041
+                OPC_EmitMergeInputChains1_1,
37042
+                OPC_EmitConvertToTarget, 3,
37043
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37044
+                    1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
37045
+              0, 
37046
+            40, 
37047
+              OPC_RecordChild1,
37048
+              OPC_RecordChild2,
37049
+              OPC_MoveChild, 2,
37050
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
37051
+              OPC_MoveParent,
37052
+              OPC_Scope, 14, 
37053
+                OPC_CheckPatternPredicate, 5,
37054
+                OPC_EmitConvertToTarget, 2,
37055
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrr), 0,
37056
+                    1, MVT::v4f32, 3, 0, 1, 3, 
37057
+              14, 
37058
+                OPC_CheckPatternPredicate, 0,
37059
+                OPC_EmitConvertToTarget, 2,
37060
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrr), 0,
37061
+                    1, MVT::v4f32, 3, 0, 1, 3, 
37062
+              0, 
37063
+            0, 
37064
+          44,  TARGET_OPCODE(X86ISD::MOVLHPD),
37065
+            OPC_RecordChild0,
37066
+            OPC_MoveChild, 1,
37067
+            OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
37068
+            OPC_MoveChild, 0,
37069
+            OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
37070
+            OPC_RecordMemRef,
37016 37071
             OPC_RecordNode,
37017
-            OPC_EmitMergeInputChains1_0,
37018
-            OPC_MorphNodeTo, TARGET_OPCODE(X86::MFENCE), 0|OPFL_Chain,
37019
-                0, 0, 
37020
-          26,  TARGET_OPCODE(X86ISD::MOVHLPS),
37072
+            OPC_CheckFoldableChainNode,
37073
+            OPC_RecordChild1,
37074
+            OPC_CheckPredicate, 2,
37075
+            OPC_CheckPredicate, 3,
37076
+            OPC_CheckPredicate, 4,
37077
+            OPC_CheckType, MVT::f64,
37078
+            OPC_MoveParent,
37079
+            OPC_MoveParent,
37080
+            OPC_CheckType, MVT::v2f64,
37081
+            OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37082
+            OPC_EmitMergeInputChains1_1,
37083
+            OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
37084
+                1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
37085
+          5|128,1,  TARGET_OPCODE(X86ISD::UNPCKLPD),
37086
+            OPC_RecordChild0,
37087
+            OPC_Scope, 101, 
37088
+              OPC_MoveChild, 1,
37089
+              OPC_SwitchOpcode , 38,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
37090
+                OPC_MoveChild, 0,
37091
+                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
37092
+                OPC_RecordMemRef,
37093
+                OPC_RecordNode,
37094
+                OPC_CheckFoldableChainNode,
37095
+                OPC_RecordChild1,
37096
+                OPC_CheckPredicate, 2,
37097
+                OPC_CheckPredicate, 3,
37098
+                OPC_CheckPredicate, 4,
37099
+                OPC_CheckType, MVT::f64,
37100
+                OPC_MoveParent,
37101
+                OPC_MoveParent,
37102
+                OPC_CheckType, MVT::v2f64,
37103
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37104
+                OPC_EmitMergeInputChains1_1,
37105
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
37106
+                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
37107
+              53,  TARGET_OPCODE(ISD::LOAD),
37108
+                OPC_RecordMemRef,
37109
+                OPC_RecordNode,
37110
+                OPC_CheckFoldableChainNode,
37111
+                OPC_RecordChild1,
37112
+                OPC_CheckPredicate, 2,
37113
+                OPC_CheckPredicate, 3,
37114
+                OPC_CheckPredicate, 19,
37115
+                OPC_MoveParent,
37116
+                OPC_CheckType, MVT::v2f64,
37117
+                OPC_Scope, 19, 
37118
+                  OPC_CheckPatternPredicate, 0,
37119
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37120
+                  OPC_EmitMergeInputChains1_1,
37121
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37122
+                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
37123
+                17, 
37124
+                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37125
+                  OPC_EmitMergeInputChains1_1,
37126
+                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37127
+                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
37128
+                0, 
37129
+              0, 
37130
+            27, 
37131
+              OPC_RecordChild1,
37132
+              OPC_CheckType, MVT::v2f64,
37133
+              OPC_Scope, 11, 
37134
+                OPC_CheckPatternPredicate, 0,
37135
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrr), 0,
37136
+                    1, MVT::v2f64, 2, 0, 1, 
37137
+              9, 
37138
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
37139
+                    1, MVT::v2f64, 2, 0, 1, 
37140
+              0, 
37141
+            0, 
37142
+          90,  TARGET_OPCODE(X86ISD::UNPCKLPS),
37143
+            OPC_RecordChild0,
37144
+            OPC_Scope, 58, 
37145
+              OPC_MoveChild, 1,
37146
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
37147
+              OPC_RecordMemRef,
37148
+              OPC_RecordNode,
37149
+              OPC_CheckFoldableChainNode,
37150
+              OPC_RecordChild1,
37151
+              OPC_CheckPredicate, 2,
37152
+              OPC_CheckPredicate, 3,
37153
+              OPC_CheckPredicate, 19,
37154
+              OPC_MoveParent,
37155
+              OPC_CheckType, MVT::v4f32,
37156
+              OPC_Scope, 19, 
37157
+                OPC_CheckPatternPredicate, 0,
37158
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37159
+                OPC_EmitMergeInputChains1_1,
37160
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37161
+                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
37162
+              17, 
37163
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37164
+                OPC_EmitMergeInputChains1_1,
37165
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37166
+                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
37167
+              0, 
37168
+            27, 
37169
+              OPC_RecordChild1,
37170
+              OPC_CheckType, MVT::v4f32,
37171
+              OPC_Scope, 11, 
37172
+                OPC_CheckPatternPredicate, 0,
37173
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrr), 0,
37174
+                    1, MVT::v4f32, 2, 0, 1, 
37175
+              9, 
37176
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
37177
+                    1, MVT::v4f32, 2, 0, 1, 
37178
+              0, 
37179
+            0, 
37180
+          90,  TARGET_OPCODE(X86ISD::UNPCKHPS),
37181
+            OPC_RecordChild0,
37182
+            OPC_Scope, 58, 
37183
+              OPC_MoveChild, 1,
37184
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
37185
+              OPC_RecordMemRef,
37186
+              OPC_RecordNode,
37187
+              OPC_CheckFoldableChainNode,
37188
+              OPC_RecordChild1,
37189
+              OPC_CheckPredicate, 2,
37190
+              OPC_CheckPredicate, 3,
37191
+              OPC_CheckPredicate, 19,
37192
+              OPC_MoveParent,
37193
+              OPC_CheckType, MVT::v4f32,
37194
+              OPC_Scope, 19, 
37195
+                OPC_CheckPatternPredicate, 0,
37196
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37197
+                OPC_EmitMergeInputChains1_1,
37198
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37199
+                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
37200
+              17, 
37201
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37202
+                OPC_EmitMergeInputChains1_1,
37203
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37204
+                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
37205
+              0, 
37206
+            27, 
37207
+              OPC_RecordChild1,
37208
+              OPC_CheckType, MVT::v4f32,
37209
+              OPC_Scope, 11, 
37210
+                OPC_CheckPatternPredicate, 0,
37211
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrr), 0,
37212
+                    1, MVT::v4f32, 2, 0, 1, 
37213
+              9, 
37214
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
37215
+                    1, MVT::v4f32, 2, 0, 1, 
37216
+              0, 
37217
+            0, 
37218
+          90,  TARGET_OPCODE(X86ISD::UNPCKHPD),
37219
+            OPC_RecordChild0,
37220
+            OPC_Scope, 58, 
37221
+              OPC_MoveChild, 1,
37222
+              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
37223
+              OPC_RecordMemRef,
37224
+              OPC_RecordNode,
37225
+              OPC_CheckFoldableChainNode,
37226
+              OPC_RecordChild1,
37227
+              OPC_CheckPredicate, 2,
37228
+              OPC_CheckPredicate, 3,
37229
+              OPC_CheckPredicate, 19,
37230
+              OPC_MoveParent,
37231
+              OPC_CheckType, MVT::v2f64,
37232
+              OPC_Scope, 19, 
37233
+                OPC_CheckPatternPredicate, 0,
37234
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37235
+                OPC_EmitMergeInputChains1_1,
37236
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37237
+                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
37238
+              17, 
37239
+                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
37240
+                OPC_EmitMergeInputChains1_1,
37241
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
37242
+                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
37243
+              0, 
37244
+            27, 
37245
+              OPC_RecordChild1,
37246
+              OPC_CheckType, MVT::v2f64,
37247
+              OPC_Scope, 11, 
37248
+                OPC_CheckPatternPredicate, 0,
37249
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrr), 0,
37250
+                    1, MVT::v2f64, 2, 0, 1, 
37251
+              9, 
37252
+                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
37253
+                    1, MVT::v2f64, 2, 0, 1, 
37254
+              0, 
37255
+            0, 
37256
+          50,  TARGET_OPCODE(X86ISD::FSRL),
37021 37257
             OPC_RecordChild0,
37022 37258
             OPC_RecordChild1,
37023
-            OPC_SwitchType , 9,  MVT::v4i32,
37024
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
37025
-                  1, MVT::v4i32, 2, 0, 1, 
37026
-            9,  MVT::v4f32,
37027
-              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
37028
-                  1, MVT::v4f32, 2, 0, 1, 
37259
+            OPC_MoveChild, 1,
37260
+            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
37261
+            OPC_CheckPredicate, 9,
37262
+            OPC_CheckType, MVT::i32,
37263
+            OPC_MoveParent,
37264
+            OPC_CheckType, MVT::v2f64,
37265
+            OPC_Scope, 16, 
37266
+              OPC_CheckPatternPredicate, 0,
37267
+              OPC_EmitConvertToTarget, 1,
37268
+              OPC_EmitNodeXForm, 5, 2,
37269
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
37270
+                  1, MVT::v2f64, 2, 0, 3, 
37271
+            16, 
37272
+              OPC_CheckPatternPredicate, 2,
37273
+              OPC_EmitConvertToTarget, 1,
37274
+              OPC_EmitNodeXForm, 5, 2,
37275
+              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
37276
+                  1, MVT::v2f64, 2, 0, 3, 
37029 37277
             0, 
37030 37278
           10,  TARGET_OPCODE(X86ISD::MINGW_ALLOCA),
37031 37279
             OPC_RecordNode,
... ...
@@ -37035,7 +37072,7 @@ SDNode *SelectCode(SDNode *N) {
37035 37035
                 1, MVT::i32, 0, 
37036 37036
           0, 
37037 37037
     0
37038
-  }; // Total Array size is 92012 bytes
37038
+  }; // Total Array size is 92067 bytes
37039 37039
 
37040 37040
   #undef TARGET_OPCODE
37041 37041
   return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
... ...
@@ -37045,31 +37082,31 @@ bool CheckPatternPredicate(unsigned PredNo) const {
37045 37045
   switch (PredNo) {
37046 37046
   default: assert(0 && "Invalid predicate in table?");
37047 37047
   case 0: return (Subtarget->hasAVX());
37048
-  case 1: return (Subtarget->hasSSE1() && !Subtarget->hasAVX());
37049
-  case 2: return (Subtarget->hasSSE2() && !Subtarget->hasAVX());
37048
+  case 1: return (Subtarget->hasSSE1());
37049
+  case 2: return (Subtarget->hasSSE2());
37050 37050
   case 3: return (!Subtarget->is64Bit());
37051 37051
   case 4: return (Subtarget->is64Bit());
37052
-  case 5: return (Subtarget->hasSSE41() && !Subtarget->hasAVX());
37052
+  case 5: return (Subtarget->hasSSE41());
37053 37053
   case 6: return (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static);
37054 37054
   case 7: return (!Subtarget->hasSSE1());
37055 37055
   case 8: return (!Subtarget->hasSSE2());
37056 37056
   case 9: return (Subtarget->hasMMX() && !Subtarget->hasAVX());
37057
-  case 10: return (Subtarget->hasSSE42() && !Subtarget->hasAVX());
37058
-  case 11: return (Subtarget->hasSSSE3() && !Subtarget->hasAVX());
37059
-  case 12: return (Subtarget->hasAVX()) && (Subtarget->hasAES());
37060
-  case 13: return (Subtarget->hasAES());
37061
-  case 14: return (Subtarget->hasSSE3() && !Subtarget->hasAVX());
37062
-  case 15: return (Subtarget->hasCMov());
37063
-  case 16: return (!Subtarget->hasCMov());
37064
-  case 17: return (!Subtarget->hasSSE1()) && (Subtarget->hasCMov());
37065
-  case 18: return (!Subtarget->hasSSE2()) && (Subtarget->hasCMov());
37066
-  case 19: return (Subtarget->hasSSE2() && !Subtarget->hasAVX()) && (OptForSize);
37067
-  case 20: return (Subtarget->hasSSE2() && !Subtarget->hasAVX()) && (!OptForSize);
37068
-  case 21: return (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel);
37069
-  case 22: return (TM.getCodeModel() == CodeModel::Small);
37070
-  case 23: return (TM.getCodeModel() == CodeModel::Kernel);
37071
-  case 24: return (Subtarget->hasSSE1() && !Subtarget->hasAVX()) && (OptForSize);
37072
-  case 25: return (!OptForSize) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
37057
+  case 10: return (Subtarget->hasSSE3());
37058
+  case 11: return (!OptForSize) && (Subtarget->hasSSE2());
37059
+  case 12: return (Subtarget->hasSSSE3());
37060
+  case 13: return (Subtarget->hasSSE42());
37061
+  case 14: return (Subtarget->hasAVX()) && (Subtarget->hasAES());
37062
+  case 15: return (Subtarget->hasAES());
37063
+  case 16: return (Subtarget->hasCMov());
37064
+  case 17: return (!Subtarget->hasCMov());
37065
+  case 18: return (!Subtarget->hasSSE1()) && (Subtarget->hasCMov());
37066
+  case 19: return (!Subtarget->hasSSE2()) && (Subtarget->hasCMov());
37067
+  case 20: return (Subtarget->hasSSE2()) && (OptForSize);
37068
+  case 21: return (Subtarget->hasSSE2()) && (!OptForSize);
37069
+  case 22: return (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel);
37070
+  case 23: return (TM.getCodeModel() == CodeModel::Small);
37071
+  case 24: return (TM.getCodeModel() == CodeModel::Kernel);
37072
+  case 25: return (Subtarget->hasSSE1()) && (OptForSize);
37073 37073
   case 26: return (!Subtarget->is64Bit()) && (TM.getRelocationModel() != Reloc::PIC_);
37074 37074
   case 27: return (Subtarget->hasMMX() && !Subtarget->hasAVX()) && (Subtarget->is64Bit());
37075 37075
   case 28: return (!Subtarget->isTargetWin64());
... ...
@@ -37221,13 +37258,153 @@ bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
37221 37221
   return cast<StoreSDNode>(N)->getAlignment() >= 16;
37222 37222
 
37223 37223
   }
37224
-  case 19: { // Predicate_and_su
37224
+  case 19: { // Predicate_memop
37225
+    SDNode *N = Node;
37226
+
37227
+  return    Subtarget->hasVectorUAMem()
37228
+         || cast<LoadSDNode>(N)->getAlignment() >= 16;
37229
+
37230
+  }
37231
+  case 20: { // Predicate_movshdup
37232
+    SDNode *N = Node;
37233
+
37234
+  return X86::isMOVSHDUPMask(cast<ShuffleVectorSDNode>(N));
37235
+
37236
+  }
37237
+  case 21: { // Predicate_movsldup
37238
+    SDNode *N = Node;
37239
+
37240
+  return X86::isMOVSLDUPMask(cast<ShuffleVectorSDNode>(N));
37241
+
37242
+  }
37243
+  case 22: { // Predicate_pshufd
37244
+    SDNode *N = Node;
37245
+
37246
+  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));
37247
+
37248
+  }
37249
+  case 23: { // Predicate_movddup
37250
+    SDNode *N = Node;
37251
+
37252
+  return X86::isMOVDDUPMask(cast<ShuffleVectorSDNode>(N));
37253
+
37254
+  }
37255
+  case 24: { // Predicate_pshufhw
37256
+    SDNode *N = Node;
37257
+
37258
+  return X86::isPSHUFHWMask(cast<ShuffleVectorSDNode>(N));
37259
+
37260
+  }
37261
+  case 25: { // Predicate_pshuflw
37262
+    SDNode *N = Node;
37263
+
37264
+  return X86::isPSHUFLWMask(cast<ShuffleVectorSDNode>(N));
37265
+
37266
+  }
37267
+  case 26: { // Predicate_mmx_pshufw
37268
+    SDNode *N = Node;
37269
+
37270
+  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));
37271
+
37272
+  }
37273
+  case 27: { // Predicate_unpckl
37274
+    SDNode *N = Node;
37275
+
37276
+  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));
37277
+
37278
+  }
37279
+  case 28: { // Predicate_shufp
37280
+    SDNode *N = Node;
37281
+
37282
+  return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N));
37283
+
37284
+  }
37285
+  case 29: { // Predicate_mmx_unpckh
37286
+    SDNode *N = Node;
37287
+
37288
+  return X86::isUNPCKHMask(cast<ShuffleVectorSDNode>(N));
37289
+
37290
+  }
37291
+  case 30: { // Predicate_mmx_unpckl
37292
+    SDNode *N = Node;
37293
+
37294
+  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));
37295
+
37296
+  }
37297
+  case 31: { // Predicate_movlhps
37298
+    SDNode *N = Node;
37299
+
37300
+  return X86::isMOVLHPSMask(cast<ShuffleVectorSDNode>(N));
37301
+
37302
+  }
37303
+  case 32: { // Predicate_movhlps_undef
37304
+    SDNode *N = Node;
37305
+
37306
+  return X86::isMOVHLPS_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37307
+
37308
+  }
37309
+  case 33: { // Predicate_movhlps
37310
+    SDNode *N = Node;
37311
+
37312
+  return X86::isMOVHLPSMask(cast<ShuffleVectorSDNode>(N));
37313
+
37314
+  }
37315
+  case 34: { // Predicate_unpckl_undef
37316
+    SDNode *N = Node;
37317
+
37318
+  return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37319
+
37320
+  }
37321
+  case 35: { // Predicate_unpckh_undef
37322
+    SDNode *N = Node;
37323
+
37324
+  return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37325
+
37326
+  }
37327
+  case 36: { // Predicate_movl
37328
+    SDNode *N = Node;
37329
+
37330
+  return X86::isMOVLMask(cast<ShuffleVectorSDNode>(N));
37331
+
37332
+  }
37333
+  case 37: { // Predicate_splat_lo
37334
+    SDNode *N = Node;
37335
+
37336
+  ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
37337
+  return SVOp->isSplat() && SVOp->getSplatIndex() == 0;
37338
+
37339
+  }
37340
+  case 38: { // Predicate_mmx_unpckl_undef
37341
+    SDNode *N = Node;
37342
+
37343
+  return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37344
+
37345
+  }
37346
+  case 39: { // Predicate_mmx_unpckh_undef
37347
+    SDNode *N = Node;
37348
+
37349
+  return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37350
+
37351
+  }
37352
+  case 40: { // Predicate_immAllZerosV
37353
+    SDNode *N = Node;
37354
+
37355
+  return ISD::isBuildVectorAllZeros(N);
37356
+
37357
+  }
37358
+  case 41: { // Predicate_palign
37359
+    SDNode *N = Node;
37360
+
37361
+  return X86::isPALIGNRMask(cast<ShuffleVectorSDNode>(N));
37362
+
37363
+  }
37364
+  case 42: { // Predicate_and_su
37225 37365
     SDNode *N = Node;
37226 37366
 
37227 37367
   return N->hasOneUse();
37228 37368
 
37229 37369
   }
37230
-  case 20: { // Predicate_loadi16_anyext
37370
+  case 43: { // Predicate_loadi16_anyext
37231 37371
     SDNode *N = Node;
37232 37372
 
37233 37373
   LoadSDNode *LD = cast<LoadSDNode>(N);
... ...
@@ -37241,20 +37418,13 @@ bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
37241 37241
   return false;
37242 37242
 
37243 37243
   }
37244
-  case 21: { // Predicate_memop
37245
-    SDNode *N = Node;
37246
-
37247
-  return    Subtarget->hasVectorUAMem()
37248
-         || cast<LoadSDNode>(N)->getAlignment() >= 16;
37249
-
37250
-  }
37251
-  case 22: { // Predicate_memop64
37244
+  case 44: { // Predicate_memop64
37252 37245
     SDNode *N = Node;
37253 37246
 
37254 37247
   return cast<LoadSDNode>(N)->getAlignment() >= 8;
37255 37248
 
37256 37249
   }
37257
-  case 23: { // Predicate_gsload
37250
+  case 45: { // Predicate_gsload
37258 37251
     SDNode *N = Node;
37259 37252
 
37260 37253
   if (const Value *Src = cast<LoadSDNode>(N)->getSrcValue())
... ...
@@ -37263,7 +37433,7 @@ bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
37263 37263
   return false;
37264 37264
 
37265 37265
   }
37266
-  case 24: { // Predicate_fsload
37266
+  case 46: { // Predicate_fsload
37267 37267
     SDNode *N = Node;
37268 37268
 
37269 37269
   if (const Value *Src = cast<LoadSDNode>(N)->getSrcValue())
... ...
@@ -37272,124 +37442,115 @@ bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
37272 37272
   return false;
37273 37273
 
37274 37274
   }
37275
-  case 25: { // Predicate_sextload
37275
+  case 47: { // Predicate_sextload
37276 37276
     SDNode *N = Node;
37277 37277
 
37278 37278
   return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
37279 37279
 
37280 37280
   }
37281
-  case 26: { // Predicate_sextloadi8
37281
+  case 48: { // Predicate_sextloadi8
37282 37282
     SDNode *N = Node;
37283 37283
 
37284 37284
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
37285 37285
 
37286 37286
   }
37287
-  case 27: { // Predicate_sextloadi16
37287
+  case 49: { // Predicate_sextloadi16
37288 37288
     SDNode *N = Node;
37289 37289
 
37290 37290
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
37291 37291
 
37292 37292
   }
37293
-  case 28: { // Predicate_zextload
37293
+  case 50: { // Predicate_zextload
37294 37294
     SDNode *N = Node;
37295 37295
 
37296 37296
   return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
37297 37297
 
37298 37298
   }
37299
-  case 29: { // Predicate_zextloadi8
37299
+  case 51: { // Predicate_zextloadi8
37300 37300
     SDNode *N = Node;
37301 37301
 
37302 37302
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
37303 37303
 
37304 37304
   }
37305
-  case 30: { // Predicate_zextloadi16
37305
+  case 52: { // Predicate_zextloadi16
37306 37306
     SDNode *N = Node;
37307 37307
 
37308 37308
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
37309 37309
 
37310 37310
   }
37311
-  case 31: { // Predicate_zextloadi1
37311
+  case 53: { // Predicate_zextloadi1
37312 37312
     SDNode *N = Node;
37313 37313
 
37314 37314
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
37315 37315
 
37316 37316
   }
37317
-  case 32: { // Predicate_extload
37317
+  case 54: { // Predicate_extload
37318 37318
     SDNode *N = Node;
37319 37319
 
37320 37320
   return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
37321 37321
 
37322 37322
   }
37323
-  case 33: { // Predicate_extloadi1
37323
+  case 55: { // Predicate_extloadi1
37324 37324
     SDNode *N = Node;
37325 37325
 
37326 37326
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
37327 37327
 
37328 37328
   }
37329
-  case 34: { // Predicate_extloadi8
37329
+  case 56: { // Predicate_extloadi8
37330 37330
     SDNode *N = Node;
37331 37331
 
37332 37332
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
37333 37333
 
37334 37334
   }
37335
-  case 35: { // Predicate_extloadi16
37335
+  case 57: { // Predicate_extloadi16
37336 37336
     SDNode *N = Node;
37337 37337
 
37338 37338
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
37339 37339
 
37340 37340
   }
37341
-  case 36: { // Predicate_sextloadi32
37341
+  case 58: { // Predicate_sextloadi32
37342 37342
     SDNode *N = Node;
37343 37343
 
37344 37344
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
37345 37345
 
37346 37346
   }
37347
-  case 37: { // Predicate_zextloadi32
37347
+  case 59: { // Predicate_zextloadi32
37348 37348
     SDNode *N = Node;
37349 37349
 
37350 37350
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
37351 37351
 
37352 37352
   }
37353
-  case 38: { // Predicate_extloadi32
37353
+  case 60: { // Predicate_extloadi32
37354 37354
     SDNode *N = Node;
37355 37355
 
37356 37356
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
37357 37357
 
37358 37358
   }
37359
-  case 39: { // Predicate_extloadf32
37359
+  case 61: { // Predicate_extloadf32
37360 37360
     SDNode *N = Node;
37361 37361
 
37362 37362
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;
37363 37363
 
37364 37364
   }
37365
-  case 40: { // Predicate_extloadf64
37365
+  case 62: { // Predicate_extloadf64
37366 37366
     SDNode *N = Node;
37367 37367
 
37368 37368
   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f64;
37369 37369
 
37370 37370
   }
37371
-  case 41: { // Predicate_alignedload
37371
+  case 63: { // Predicate_alignedload
37372 37372
     SDNode *N = Node;
37373 37373
 
37374 37374
   return cast<LoadSDNode>(N)->getAlignment() >= 16;
37375 37375
 
37376 37376
   }
37377
-  case 42: { // Predicate_or_is_add
37377
+  case 64: { // Predicate_immAllOnesV
37378 37378
     SDNode *N = Node;
37379 37379
 
37380
-  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1)))
37381
-    return CurDAG->MaskedValueIsZero(N->getOperand(0), CN->getAPIntValue());
37382
-
37383
-  unsigned BitWidth = N->getValueType(0).getScalarType().getSizeInBits();
37384
-  APInt Mask = APInt::getAllOnesValue(BitWidth);
37385
-  APInt KnownZero0, KnownOne0;
37386
-  CurDAG->ComputeMaskedBits(N->getOperand(0), Mask, KnownZero0, KnownOne0, 0);
37387
-  APInt KnownZero1, KnownOne1;
37388
-  CurDAG->ComputeMaskedBits(N->getOperand(1), Mask, KnownZero1, KnownOne1, 0);
37389
-  return (~KnownZero0 & ~KnownZero1) == 0;
37380
+  return ISD::isBuildVectorAllOnes(N);
37390 37381
 
37391 37382
   }
37392
-  case 43: { // Predicate_i64immZExt32
37383
+  case 65: { // Predicate_i64immZExt32
37393 37384
     ConstantSDNode*N = cast<ConstantSDNode>(Node);
37394 37385
 
37395 37386
   // i64immZExt32 predicate - True if the 64-bit immediate fits in a 32-bit
... ...
@@ -37397,229 +37558,238 @@ bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
37397 37397
   return (uint64_t)N->getZExtValue() == (uint32_t)N->getZExtValue();
37398 37398
 
37399 37399
   }
37400
-  case 44: { // Predicate_immAllOnesV
37400
+  case 66: { // Predicate_or_is_add
37401 37401
     SDNode *N = Node;
37402 37402
 
37403
-  return ISD::isBuildVectorAllOnes(N);
37403
+  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1)))
37404
+    return CurDAG->MaskedValueIsZero(N->getOperand(0), CN->getAPIntValue());
37405
+
37406
+  unsigned BitWidth = N->getValueType(0).getScalarType().getSizeInBits();
37407
+  APInt Mask = APInt::getAllOnesValue(BitWidth);
37408
+  APInt KnownZero0, KnownOne0;
37409
+  CurDAG->ComputeMaskedBits(N->getOperand(0), Mask, KnownZero0, KnownOne0, 0);
37410
+  APInt KnownZero1, KnownOne1;
37411
+  CurDAG->ComputeMaskedBits(N->getOperand(1), Mask, KnownZero1, KnownOne1, 0);
37412
+  return (~KnownZero0 & ~KnownZero1) == 0;
37404 37413
 
37405 37414
   }
37406
-  case 45: { // Predicate_atomic_swap_32
37415
+  case 67: { // Predicate_atomic_swap_32
37407 37416
     SDNode *N = Node;
37408 37417
 
37409 37418
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37410 37419
   
37411 37420
   }
37412
-  case 46: { // Predicate_atomic_swap_16
37421
+  case 68: { // Predicate_atomic_swap_16
37413 37422
     SDNode *N = Node;
37414 37423
 
37415 37424
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37416 37425
   
37417 37426
   }
37418
-  case 47: { // Predicate_atomic_swap_8
37427
+  case 69: { // Predicate_atomic_swap_8
37419 37428
     SDNode *N = Node;
37420 37429
 
37421 37430
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
37422 37431
   
37423 37432
   }
37424
-  case 48: { // Predicate_atomic_swap_64
37433
+  case 70: { // Predicate_atomic_swap_64
37425 37434
     SDNode *N = Node;
37426 37435
 
37427 37436
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37428 37437
   
37429 37438
   }
37430
-  case 49: { // Predicate_atomic_load_add_32
37439
+  case 71: { // Predicate_atomic_load_add_32
37431 37440
     SDNode *N = Node;
37432 37441
 
37433 37442
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37434 37443
   
37435 37444
   }
37436
-  case 50: { // Predicate_atomic_load_add_16
37445
+  case 72: { // Predicate_atomic_load_add_16
37437 37446
     SDNode *N = Node;
37438 37447
 
37439 37448
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37440 37449
   
37441 37450
   }
37442
-  case 51: { // Predicate_atomic_load_add_8
37451
+  case 73: { // Predicate_atomic_load_add_8
37443 37452
     SDNode *N = Node;
37444 37453
 
37445 37454
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
37446 37455
   
37447 37456
   }
37448
-  case 52: { // Predicate_atomic_load_add_64
37457
+  case 74: { // Predicate_atomic_load_add_64
37449 37458
     SDNode *N = Node;
37450 37459
 
37451 37460
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37452 37461
   
37453 37462
   }
37454
-  case 53: { // Predicate_atomic_load_and_32
37463
+  case 75: { // Predicate_atomic_load_and_32
37455 37464
     SDNode *N = Node;
37456 37465
 
37457 37466
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37458 37467
   
37459 37468
   }
37460
-  case 54: { // Predicate_atomic_load_and_16
37469
+  case 76: { // Predicate_atomic_load_and_16
37461 37470
     SDNode *N = Node;
37462 37471
 
37463 37472
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37464 37473
   
37465 37474
   }
37466
-  case 55: { // Predicate_atomic_load_and_8
37475
+  case 77: { // Predicate_atomic_load_and_8
37467 37476
     SDNode *N = Node;
37468 37477
 
37469 37478
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
37470 37479
   
37471 37480
   }
37472
-  case 56: { // Predicate_atomic_load_and_64
37481
+  case 78: { // Predicate_atomic_load_and_64
37473 37482
     SDNode *N = Node;
37474 37483
 
37475 37484
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37476 37485
   
37477 37486
   }
37478
-  case 57: { // Predicate_atomic_load_or_32
37487
+  case 79: { // Predicate_atomic_load_or_32
37479 37488
     SDNode *N = Node;
37480 37489
 
37481 37490
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37482 37491
   
37483 37492
   }
37484
-  case 58: { // Predicate_atomic_load_or_16
37493
+  case 80: { // Predicate_atomic_load_or_16
37485 37494
     SDNode *N = Node;
37486 37495
 
37487 37496
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37488 37497
   
37489 37498
   }
37490
-  case 59: { // Predicate_atomic_load_or_8
37499
+  case 81: { // Predicate_atomic_load_or_8
37491 37500
     SDNode *N = Node;
37492 37501
 
37493 37502
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
37494 37503
   
37495 37504
   }
37496
-  case 60: { // Predicate_atomic_load_or_64
37505
+  case 82: { // Predicate_atomic_load_or_64
37497 37506
     SDNode *N = Node;
37498 37507
 
37499 37508
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37500 37509
   
37501 37510
   }
37502
-  case 61: { // Predicate_atomic_load_xor_32
37511
+  case 83: { // Predicate_atomic_load_xor_32
37503 37512
     SDNode *N = Node;
37504 37513
 
37505 37514
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37506 37515
   
37507 37516
   }
37508
-  case 62: { // Predicate_atomic_load_xor_16
37517
+  case 84: { // Predicate_atomic_load_xor_16
37509 37518
     SDNode *N = Node;
37510 37519
 
37511 37520
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37512 37521
   
37513 37522
   }
37514
-  case 63: { // Predicate_atomic_load_xor_8
37523
+  case 85: { // Predicate_atomic_load_xor_8
37515 37524
     SDNode *N = Node;
37516 37525
 
37517 37526
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
37518 37527
   
37519 37528
   }
37520
-  case 64: { // Predicate_atomic_load_xor_64
37529
+  case 86: { // Predicate_atomic_load_xor_64
37521 37530
     SDNode *N = Node;
37522 37531
 
37523 37532
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37524 37533
   
37525 37534
   }
37526
-  case 65: { // Predicate_atomic_load_nand_32
37535
+  case 87: { // Predicate_atomic_load_nand_32
37527 37536
     SDNode *N = Node;
37528 37537
 
37529 37538
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37530 37539
   
37531 37540
   }
37532
-  case 66: { // Predicate_atomic_load_nand_16
37541
+  case 88: { // Predicate_atomic_load_nand_16
37533 37542
     SDNode *N = Node;
37534 37543
 
37535 37544
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37536 37545
   
37537 37546
   }
37538
-  case 67: { // Predicate_atomic_load_nand_8
37547
+  case 89: { // Predicate_atomic_load_nand_8
37539 37548
     SDNode *N = Node;
37540 37549
 
37541 37550
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
37542 37551
   
37543 37552
   }
37544
-  case 68: { // Predicate_atomic_load_nand_64
37553
+  case 90: { // Predicate_atomic_load_nand_64
37545 37554
     SDNode *N = Node;
37546 37555
 
37547 37556
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37548 37557
   
37549 37558
   }
37550
-  case 69: { // Predicate_atomic_load_min_32
37559
+  case 91: { // Predicate_atomic_load_min_32
37551 37560
     SDNode *N = Node;
37552 37561
 
37553 37562
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37554 37563
   
37555 37564
   }
37556
-  case 70: { // Predicate_atomic_load_min_16
37565
+  case 92: { // Predicate_atomic_load_min_16
37557 37566
     SDNode *N = Node;
37558 37567
 
37559 37568
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37560 37569
   
37561 37570
   }
37562
-  case 71: { // Predicate_atomic_load_min_64
37571
+  case 93: { // Predicate_atomic_load_min_64
37563 37572
     SDNode *N = Node;
37564 37573
 
37565 37574
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37566 37575
   
37567 37576
   }
37568
-  case 72: { // Predicate_atomic_load_max_32
37577
+  case 94: { // Predicate_atomic_load_max_32
37569 37578
     SDNode *N = Node;
37570 37579
 
37571 37580
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37572 37581
   
37573 37582
   }
37574
-  case 73: { // Predicate_atomic_load_max_16
37583
+  case 95: { // Predicate_atomic_load_max_16
37575 37584
     SDNode *N = Node;
37576 37585
 
37577 37586
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37578 37587
   
37579 37588
   }
37580
-  case 74: { // Predicate_atomic_load_max_64
37589
+  case 96: { // Predicate_atomic_load_max_64
37581 37590
     SDNode *N = Node;
37582 37591
 
37583 37592
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37584 37593
   
37585 37594
   }
37586
-  case 75: { // Predicate_atomic_load_umin_32
37595
+  case 97: { // Predicate_atomic_load_umin_32
37587 37596
     SDNode *N = Node;
37588 37597
 
37589 37598
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37590 37599
   
37591 37600
   }
37592
-  case 76: { // Predicate_atomic_load_umin_16
37601
+  case 98: { // Predicate_atomic_load_umin_16
37593 37602
     SDNode *N = Node;
37594 37603
 
37595 37604
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37596 37605
   
37597 37606
   }
37598
-  case 77: { // Predicate_atomic_load_umin_64
37607
+  case 99: { // Predicate_atomic_load_umin_64
37599 37608
     SDNode *N = Node;
37600 37609
 
37601 37610
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37602 37611
   
37603 37612
   }
37604
-  case 78: { // Predicate_atomic_load_umax_32
37613
+  case 100: { // Predicate_atomic_load_umax_32
37605 37614
     SDNode *N = Node;
37606 37615
 
37607 37616
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
37608 37617
   
37609 37618
   }
37610
-  case 79: { // Predicate_atomic_load_umax_16
37619
+  case 101: { // Predicate_atomic_load_umax_16
37611 37620
     SDNode *N = Node;
37612 37621
 
37613 37622
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
37614 37623
   
37615 37624
   }
37616
-  case 80: { // Predicate_atomic_load_umax_64
37625
+  case 102: { // Predicate_atomic_load_umax_64
37617 37626
     SDNode *N = Node;
37618 37627
 
37619 37628
     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
37620 37629
   
37621 37630
   }
37622
-  case 81: { // Predicate_def32
37631
+  case 103: { // Predicate_def32
37623 37632
     SDNode *N = Node;
37624 37633
 
37625 37634
   return N->getOpcode() != ISD::TRUNCATE &&
... ...
@@ -37628,169 +37798,36 @@ bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
37628 37628
          N->getOpcode() != X86ISD::CMOV;
37629 37629
 
37630 37630
   }
37631
-  case 82: { // Predicate_fpimm0
37631
+  case 104: { // Predicate_fpimm0
37632 37632
     ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
37633 37633
 
37634 37634
   return N->isExactlyValue(+0.0);
37635 37635
 
37636 37636
   }
37637
-  case 83: { // Predicate_fpimm1
37637
+  case 105: { // Predicate_fpimm1
37638 37638
     ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
37639 37639
 
37640 37640
   return N->isExactlyValue(+1.0);
37641 37641
 
37642 37642
   }
37643
-  case 84: { // Predicate_fp32imm0
37643
+  case 106: { // Predicate_fp32imm0
37644 37644
     ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
37645 37645
 
37646 37646
   return N->isExactlyValue(+0.0);
37647 37647
 
37648 37648
   }
37649
-  case 85: { // Predicate_fpimmneg0
37649
+  case 107: { // Predicate_fpimmneg0
37650 37650
     ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
37651 37651
 
37652 37652
   return N->isExactlyValue(-0.0);
37653 37653
 
37654 37654
   }
37655
-  case 86: { // Predicate_fpimmneg1
37655
+  case 108: { // Predicate_fpimmneg1
37656 37656
     ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
37657 37657
 
37658 37658
   return N->isExactlyValue(-1.0);
37659 37659
 
37660 37660
   }
37661
-  case 87: { // Predicate_movshdup
37662
-    SDNode *N = Node;
37663
-
37664
-  return X86::isMOVSHDUPMask(cast<ShuffleVectorSDNode>(N));
37665
-
37666
-  }
37667
-  case 88: { // Predicate_movsldup
37668
-    SDNode *N = Node;
37669
-
37670
-  return X86::isMOVSLDUPMask(cast<ShuffleVectorSDNode>(N));
37671
-
37672
-  }
37673
-  case 89: { // Predicate_pshufd
37674
-    SDNode *N = Node;
37675
-
37676
-  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));
37677
-
37678
-  }
37679
-  case 90: { // Predicate_movddup
37680
-    SDNode *N = Node;
37681
-
37682
-  return X86::isMOVDDUPMask(cast<ShuffleVectorSDNode>(N));
37683
-
37684
-  }
37685
-  case 91: { // Predicate_pshufhw
37686
-    SDNode *N = Node;
37687
-
37688
-  return X86::isPSHUFHWMask(cast<ShuffleVectorSDNode>(N));
37689
-
37690
-  }
37691
-  case 92: { // Predicate_pshuflw
37692
-    SDNode *N = Node;
37693
-
37694
-  return X86::isPSHUFLWMask(cast<ShuffleVectorSDNode>(N));
37695
-
37696
-  }
37697
-  case 93: { // Predicate_mmx_pshufw
37698
-    SDNode *N = Node;
37699
-
37700
-  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));
37701
-
37702
-  }
37703
-  case 94: { // Predicate_unpckl
37704
-    SDNode *N = Node;
37705
-
37706
-  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));
37707
-
37708
-  }
37709
-  case 95: { // Predicate_shufp
37710
-    SDNode *N = Node;
37711
-
37712
-  return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N));
37713
-
37714
-  }
37715
-  case 96: { // Predicate_mmx_unpckh
37716
-    SDNode *N = Node;
37717
-
37718
-  return X86::isUNPCKHMask(cast<ShuffleVectorSDNode>(N));
37719
-
37720
-  }
37721
-  case 97: { // Predicate_mmx_unpckl
37722
-    SDNode *N = Node;
37723
-
37724
-  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));
37725
-
37726
-  }
37727
-  case 98: { // Predicate_movlhps
37728
-    SDNode *N = Node;
37729
-
37730
-  return X86::isMOVLHPSMask(cast<ShuffleVectorSDNode>(N));
37731
-
37732
-  }
37733
-  case 99: { // Predicate_movhlps_undef
37734
-    SDNode *N = Node;
37735
-
37736
-  return X86::isMOVHLPS_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37737
-
37738
-  }
37739
-  case 100: { // Predicate_movhlps
37740
-    SDNode *N = Node;
37741
-
37742
-  return X86::isMOVHLPSMask(cast<ShuffleVectorSDNode>(N));
37743
-
37744
-  }
37745
-  case 101: { // Predicate_unpckl_undef
37746
-    SDNode *N = Node;
37747
-
37748
-  return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37749
-
37750
-  }
37751
-  case 102: { // Predicate_unpckh_undef
37752
-    SDNode *N = Node;
37753
-
37754
-  return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37755
-
37756
-  }
37757
-  case 103: { // Predicate_movl
37758
-    SDNode *N = Node;
37759
-
37760
-  return X86::isMOVLMask(cast<ShuffleVectorSDNode>(N));
37761
-
37762
-  }
37763
-  case 104: { // Predicate_splat_lo
37764
-    SDNode *N = Node;
37765
-
37766
-  ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
37767
-  return SVOp->isSplat() && SVOp->getSplatIndex() == 0;
37768
-
37769
-  }
37770
-  case 105: { // Predicate_mmx_unpckl_undef
37771
-    SDNode *N = Node;
37772
-
37773
-  return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37774
-
37775
-  }
37776
-  case 106: { // Predicate_mmx_unpckh_undef
37777
-    SDNode *N = Node;
37778
-
37779
-  return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
37780
-
37781
-  }
37782
-  case 107: { // Predicate_immAllZerosV
37783
-    SDNode *N = Node;
37784
-
37785
-  return ISD::isBuildVectorAllZeros(N);
37786
-
37787
-  }
37788
-  case 108: { // Predicate_palign
37789
-    SDNode *N = Node;
37790
-
37791
-  return X86::isPALIGNRMask(cast<ShuffleVectorSDNode>(N));
37792
-
37793
-  }
37794 37661
   }
37795 37662
 }
37796 37663
 
... ...
@@ -37827,47 +37864,47 @@ SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
37827 37827
   switch (XFormNo) {
37828 37828
   default: assert(0 && "Invalid xform # in table?");
37829 37829
   case 0: {  
37830
-    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
37830
+    SDNode *N = V.getNode();
37831 37831
 
37832
-  // Transformation function: imm >> 3
37833
-  return getI32Imm(N->getZExtValue() >> 3);
37832
+  return getI8Imm(X86::getShuffleSHUFImmediate(N));
37834 37833
 
37835 37834
   }
37836 37835
   case 1: {  
37837
-    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
37836
+    SDNode *N = V.getNode();
37838 37837
 
37839
-  // Transformation function: get the low 32 bits.
37840
-  return getI32Imm((unsigned)N->getZExtValue());
37838
+  return getI8Imm(X86::getShufflePSHUFHWImmediate(N));
37841 37839
 
37842 37840
   }
37843 37841
   case 2: {  
37844 37842
     SDNode *N = V.getNode();
37845 37843
 
37846
-  return getI8Imm(X86::getShuffleSHUFImmediate(N));
37844
+  return getI8Imm(X86::getShufflePSHUFLWImmediate(N));
37847 37845
 
37848 37846
   }
37849 37847
   case 3: {  
37850 37848
     SDNode *N = V.getNode();
37851 37849
 
37852
-  return getI8Imm(X86::getShufflePSHUFHWImmediate(N));
37850
+  return getI8Imm(X86::getShuffleSHUFImmediate(N));
37853 37851
 
37854 37852
   }
37855 37853
   case 4: {  
37856 37854
     SDNode *N = V.getNode();
37857 37855
 
37858
-  return getI8Imm(X86::getShufflePSHUFLWImmediate(N));
37856
+  return getI8Imm(X86::getShufflePALIGNRImmediate(N));
37859 37857
 
37860 37858
   }
37861 37859
   case 5: {  
37862
-    SDNode *N = V.getNode();
37860
+    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
37863 37861
 
37864
-  return getI8Imm(X86::getShuffleSHUFImmediate(N));
37862
+  // Transformation function: imm >> 3
37863
+  return getI32Imm(N->getZExtValue() >> 3);
37865 37864
 
37866 37865
   }
37867 37866
   case 6: {  
37868
-    SDNode *N = V.getNode();
37867
+    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
37869 37868
 
37870
-  return getI8Imm(X86::getShufflePALIGNRImmediate(N));
37869
+  // Transformation function: get the low 32 bits.
37870
+  return getI32Imm((unsigned)N->getZExtValue());
37871 37871
 
37872 37872
   }
37873 37873
   }
... ...
@@ -96,14 +96,14 @@ unsigned FastEmit_ISD_BIT_CONVERT_MVT_i32_r(MVT RetVT, unsigned Op0, bool Op0IsK
96 96
   if ((Subtarget->hasAVX())) {
97 97
     return FastEmitInst_r(X86::VMOVDI2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
98 98
   }
99
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
99
+  if ((Subtarget->hasSSE2())) {
100 100
     return FastEmitInst_r(X86::MOVDI2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
101 101
   }
102 102
   return 0;
103 103
 }
104 104
 
105 105
 unsigned FastEmit_ISD_BIT_CONVERT_MVT_i64_MVT_f64_r(unsigned Op0, bool Op0IsKill) {
106
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
106
+  if ((Subtarget->hasSSE2())) {
107 107
     return FastEmitInst_r(X86::MOV64toSDrr, X86::FR64RegisterClass, Op0, Op0IsKill);
108 108
   }
109 109
   return 0;
... ...
@@ -142,14 +142,14 @@ unsigned FastEmit_ISD_BIT_CONVERT_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsK
142 142
   if ((Subtarget->hasAVX())) {
143 143
     return FastEmitInst_r(X86::VMOVSS2DIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
144 144
   }
145
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
145
+  if ((Subtarget->hasSSE2())) {
146 146
     return FastEmitInst_r(X86::MOVSS2DIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
147 147
   }
148 148
   return 0;
149 149
 }
150 150
 
151 151
 unsigned FastEmit_ISD_BIT_CONVERT_MVT_f64_MVT_i64_r(unsigned Op0, bool Op0IsKill) {
152
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
152
+  if ((Subtarget->hasSSE2())) {
153 153
     return FastEmitInst_r(X86::MOVSDto64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
154 154
   }
155 155
   return 0;
... ...
@@ -420,7 +420,7 @@ unsigned FastEmit_ISD_FNEG_r(MVT VT, MVT RetVT, unsigned Op0, bool Op0IsKill) {
420 420
 unsigned FastEmit_ISD_FP_EXTEND_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
421 421
   if (RetVT.SimpleTy != MVT::f64)
422 422
     return 0;
423
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
423
+  if ((Subtarget->hasSSE2())) {
424 424
     return FastEmitInst_r(X86::CVTSS2SDrr, X86::FR64RegisterClass, Op0, Op0IsKill);
425 425
   }
426 426
   return 0;
... ...
@@ -438,7 +438,7 @@ unsigned FastEmit_ISD_FP_EXTEND_r(MVT VT, MVT RetVT, unsigned Op0, bool Op0IsKil
438 438
 unsigned FastEmit_ISD_FP_ROUND_MVT_f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
439 439
   if (RetVT.SimpleTy != MVT::f32)
440 440
     return 0;
441
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
441
+  if ((Subtarget->hasSSE2())) {
442 442
     return FastEmitInst_r(X86::CVTSD2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
443 443
   }
444 444
   return 0;
... ...
@@ -457,7 +457,7 @@ unsigned FastEmit_ISD_FP_TO_SINT_MVT_f32_MVT_i32_r(unsigned Op0, bool Op0IsKill)
457 457
   if ((Subtarget->hasAVX())) {
458 458
     return FastEmitInst_r(X86::VCVTTSS2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
459 459
   }
460
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
460
+  if ((Subtarget->hasSSE1())) {
461 461
     return FastEmitInst_r(X86::CVTTSS2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
462 462
   }
463 463
   return 0;
... ...
@@ -467,7 +467,7 @@ unsigned FastEmit_ISD_FP_TO_SINT_MVT_f32_MVT_i64_r(unsigned Op0, bool Op0IsKill)
467 467
   if ((Subtarget->hasAVX())) {
468 468
     return FastEmitInst_r(X86::VCVTTSS2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
469 469
   }
470
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
470
+  if ((Subtarget->hasSSE1())) {
471 471
     return FastEmitInst_r(X86::CVTTSS2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
472 472
   }
473 473
   return 0;
... ...
@@ -485,7 +485,7 @@ unsigned FastEmit_ISD_FP_TO_SINT_MVT_f64_MVT_i32_r(unsigned Op0, bool Op0IsKill)
485 485
   if ((Subtarget->hasAVX())) {
486 486
     return FastEmitInst_r(X86::VCVTTSD2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
487 487
   }
488
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
488
+  if ((Subtarget->hasSSE2())) {
489 489
     return FastEmitInst_r(X86::CVTTSD2SIrr, X86::GR32RegisterClass, Op0, Op0IsKill);
490 490
   }
491 491
   return 0;
... ...
@@ -495,7 +495,7 @@ unsigned FastEmit_ISD_FP_TO_SINT_MVT_f64_MVT_i64_r(unsigned Op0, bool Op0IsKill)
495 495
   if ((Subtarget->hasAVX())) {
496 496
     return FastEmitInst_r(X86::VCVTTSD2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
497 497
   }
498
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
498
+  if ((Subtarget->hasSSE2())) {
499 499
     return FastEmitInst_r(X86::CVTTSD2SI64rr, X86::GR64RegisterClass, Op0, Op0IsKill);
500 500
   }
501 501
   return 0;
... ...
@@ -512,7 +512,7 @@ switch (RetVT.SimpleTy) {
512 512
 unsigned FastEmit_ISD_FP_TO_SINT_MVT_v4f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
513 513
   if (RetVT.SimpleTy != MVT::v4i32)
514 514
     return 0;
515
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
515
+  if ((Subtarget->hasSSE2())) {
516 516
     return FastEmitInst_r(X86::Int_CVTTPS2DQrr, X86::VR128RegisterClass, Op0, Op0IsKill);
517 517
   }
518 518
   return 0;
... ...
@@ -521,7 +521,7 @@ unsigned FastEmit_ISD_FP_TO_SINT_MVT_v4f32_r(MVT RetVT, unsigned Op0, bool Op0Is
521 521
 unsigned FastEmit_ISD_FP_TO_SINT_MVT_v2f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
522 522
   if (RetVT.SimpleTy != MVT::v2i32)
523 523
     return 0;
524
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
524
+  if ((Subtarget->hasSSE2())) {
525 525
     return FastEmitInst_r(X86::Int_CVTTPD2PIrr, X86::VR64RegisterClass, Op0, Op0IsKill);
526 526
   }
527 527
   return 0;
... ...
@@ -580,7 +580,7 @@ unsigned FastEmit_ISD_FSQRT_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
580 580
   if ((!Subtarget->hasSSE1())) {
581 581
     return FastEmitInst_r(X86::SQRT_Fp32, X86::RFP32RegisterClass, Op0, Op0IsKill);
582 582
   }
583
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
583
+  if ((Subtarget->hasSSE1())) {
584 584
     return FastEmitInst_r(X86::SQRTSSr, X86::FR32RegisterClass, Op0, Op0IsKill);
585 585
   }
586 586
   return 0;
... ...
@@ -592,7 +592,7 @@ unsigned FastEmit_ISD_FSQRT_MVT_f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
592 592
   if ((!Subtarget->hasSSE2())) {
593 593
     return FastEmitInst_r(X86::SQRT_Fp64, X86::RFP64RegisterClass, Op0, Op0IsKill);
594 594
   }
595
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
595
+  if ((Subtarget->hasSSE2())) {
596 596
     return FastEmitInst_r(X86::SQRTSDr, X86::FR64RegisterClass, Op0, Op0IsKill);
597 597
   }
598 598
   return 0;
... ...
@@ -610,7 +610,7 @@ unsigned FastEmit_ISD_FSQRT_MVT_v4f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill)
610 610
   if ((Subtarget->hasAVX())) {
611 611
     return FastEmitInst_r(X86::VSQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
612 612
   }
613
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
613
+  if ((Subtarget->hasSSE1())) {
614 614
     return FastEmitInst_r(X86::SQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
615 615
   }
616 616
   return 0;
... ...
@@ -631,7 +631,7 @@ unsigned FastEmit_ISD_FSQRT_MVT_v2f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill)
631 631
   if ((Subtarget->hasAVX())) {
632 632
     return FastEmitInst_r(X86::VSQRTPDr, X86::VR128RegisterClass, Op0, Op0IsKill);
633 633
   }
634
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
634
+  if ((Subtarget->hasSSE2())) {
635 635
     return FastEmitInst_r(X86::SQRTPDr, X86::VR128RegisterClass, Op0, Op0IsKill);
636 636
   }
637 637
   return 0;
... ...
@@ -672,7 +672,7 @@ unsigned FastEmit_ISD_SCALAR_TO_VECTOR_MVT_i32_MVT_v4i32_r(unsigned Op0, bool Op
672 672
   if ((Subtarget->hasAVX())) {
673 673
     return FastEmitInst_r(X86::VMOVDI2PDIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
674 674
   }
675
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
675
+  if ((Subtarget->hasSSE2())) {
676 676
     return FastEmitInst_r(X86::MOVDI2PDIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
677 677
   }
678 678
   return 0;
... ...
@@ -694,7 +694,7 @@ unsigned FastEmit_ISD_SCALAR_TO_VECTOR_MVT_i64_MVT_v1i64_r(unsigned Op0, bool Op
694 694
 }
695 695
 
696 696
 unsigned FastEmit_ISD_SCALAR_TO_VECTOR_MVT_i64_MVT_v2i64_r(unsigned Op0, bool Op0IsKill) {
697
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
697
+  if ((Subtarget->hasSSE2())) {
698 698
     return FastEmitInst_r(X86::MOV64toPQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
699 699
   }
700 700
   return 0;
... ...
@@ -773,14 +773,14 @@ unsigned FastEmit_ISD_SIGN_EXTEND_r(MVT VT, MVT RetVT, unsigned Op0, bool Op0IsK
773 773
 // FastEmit functions for ISD::SINT_TO_FP.
774 774
 
775 775
 unsigned FastEmit_ISD_SINT_TO_FP_MVT_i32_MVT_f32_r(unsigned Op0, bool Op0IsKill) {
776
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
776
+  if ((Subtarget->hasSSE1())) {
777 777
     return FastEmitInst_r(X86::CVTSI2SSrr, X86::FR32RegisterClass, Op0, Op0IsKill);
778 778
   }
779 779
   return 0;
780 780
 }
781 781
 
782 782
 unsigned FastEmit_ISD_SINT_TO_FP_MVT_i32_MVT_f64_r(unsigned Op0, bool Op0IsKill) {
783
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
783
+  if ((Subtarget->hasSSE2())) {
784 784
     return FastEmitInst_r(X86::CVTSI2SDrr, X86::FR64RegisterClass, Op0, Op0IsKill);
785 785
   }
786 786
   return 0;
... ...
@@ -795,14 +795,14 @@ switch (RetVT.SimpleTy) {
795 795
 }
796 796
 
797 797
 unsigned FastEmit_ISD_SINT_TO_FP_MVT_i64_MVT_f32_r(unsigned Op0, bool Op0IsKill) {
798
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
798
+  if ((Subtarget->hasSSE1())) {
799 799
     return FastEmitInst_r(X86::CVTSI2SS64rr, X86::FR32RegisterClass, Op0, Op0IsKill);
800 800
   }
801 801
   return 0;
802 802
 }
803 803
 
804 804
 unsigned FastEmit_ISD_SINT_TO_FP_MVT_i64_MVT_f64_r(unsigned Op0, bool Op0IsKill) {
805
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
805
+  if ((Subtarget->hasSSE2())) {
806 806
     return FastEmitInst_r(X86::CVTSI2SD64rr, X86::FR64RegisterClass, Op0, Op0IsKill);
807 807
   }
808 808
   return 0;
... ...
@@ -819,7 +819,7 @@ switch (RetVT.SimpleTy) {
819 819
 unsigned FastEmit_ISD_SINT_TO_FP_MVT_v2i32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
820 820
   if (RetVT.SimpleTy != MVT::v2f64)
821 821
     return 0;
822
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
822
+  if ((Subtarget->hasSSE2())) {
823 823
     return FastEmitInst_r(X86::Int_CVTPI2PDrr, X86::VR128RegisterClass, Op0, Op0IsKill);
824 824
   }
825 825
   return 0;
... ...
@@ -828,7 +828,7 @@ unsigned FastEmit_ISD_SINT_TO_FP_MVT_v2i32_r(MVT RetVT, unsigned Op0, bool Op0Is
828 828
 unsigned FastEmit_ISD_SINT_TO_FP_MVT_v4i32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
829 829
   if (RetVT.SimpleTy != MVT::v4f32)
830 830
     return 0;
831
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
831
+  if ((Subtarget->hasSSE2())) {
832 832
     return FastEmitInst_r(X86::Int_CVTDQ2PSrr, X86::VR128RegisterClass, Op0, Op0IsKill);
833 833
   }
834 834
   return 0;
... ...
@@ -1013,7 +1013,7 @@ unsigned FastEmit_X86ISD_EH_RETURN_r(MVT VT, MVT RetVT, unsigned Op0, bool Op0Is
1013 1013
 unsigned FastEmit_X86ISD_FRCP_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
1014 1014
   if (RetVT.SimpleTy != MVT::f32)
1015 1015
     return 0;
1016
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1016
+  if ((Subtarget->hasSSE1())) {
1017 1017
     return FastEmitInst_r(X86::RCPSSr, X86::FR32RegisterClass, Op0, Op0IsKill);
1018 1018
   }
1019 1019
   return 0;
... ...
@@ -1025,7 +1025,7 @@ unsigned FastEmit_X86ISD_FRCP_MVT_v4f32_r(MVT RetVT, unsigned Op0, bool Op0IsKil
1025 1025
   if ((Subtarget->hasAVX())) {
1026 1026
     return FastEmitInst_r(X86::VRCPPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1027 1027
   }
1028
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1028
+  if ((Subtarget->hasSSE1())) {
1029 1029
     return FastEmitInst_r(X86::RCPPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1030 1030
   }
1031 1031
   return 0;
... ...
@@ -1054,7 +1054,7 @@ unsigned FastEmit_X86ISD_FRCP_r(MVT VT, MVT RetVT, unsigned Op0, bool Op0IsKill)
1054 1054
 unsigned FastEmit_X86ISD_FRSQRT_MVT_f32_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
1055 1055
   if (RetVT.SimpleTy != MVT::f32)
1056 1056
     return 0;
1057
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1057
+  if ((Subtarget->hasSSE1())) {
1058 1058
     return FastEmitInst_r(X86::RSQRTSSr, X86::FR32RegisterClass, Op0, Op0IsKill);
1059 1059
   }
1060 1060
   return 0;
... ...
@@ -1066,7 +1066,7 @@ unsigned FastEmit_X86ISD_FRSQRT_MVT_v4f32_r(MVT RetVT, unsigned Op0, bool Op0IsK
1066 1066
   if ((Subtarget->hasAVX())) {
1067 1067
     return FastEmitInst_r(X86::VRSQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1068 1068
   }
1069
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1069
+  if ((Subtarget->hasSSE1())) {
1070 1070
     return FastEmitInst_r(X86::RSQRTPSr, X86::VR128RegisterClass, Op0, Op0IsKill);
1071 1071
   }
1072 1072
   return 0;
... ...
@@ -1175,7 +1175,7 @@ unsigned FastEmit_X86ISD_VZEXT_MOVL_MVT_v2i64_r(MVT RetVT, unsigned Op0, bool Op
1175 1175
   if ((Subtarget->hasAVX())) {
1176 1176
     return FastEmitInst_r(X86::VMOVZPQILo2PQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
1177 1177
   }
1178
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1178
+  if ((Subtarget->hasSSE2())) {
1179 1179
     return FastEmitInst_r(X86::MOVZPQILo2PQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
1180 1180
   }
1181 1181
   return 0;
... ...
@@ -1184,7 +1184,7 @@ unsigned FastEmit_X86ISD_VZEXT_MOVL_MVT_v2i64_r(MVT RetVT, unsigned Op0, bool Op
1184 1184
 unsigned FastEmit_X86ISD_VZEXT_MOVL_MVT_v2f64_r(MVT RetVT, unsigned Op0, bool Op0IsKill) {
1185 1185
   if (RetVT.SimpleTy != MVT::v2f64)
1186 1186
     return 0;
1187
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1187
+  if ((Subtarget->hasSSE2())) {
1188 1188
     return FastEmitInst_r(X86::MOVZPQILo2PQIrr, X86::VR128RegisterClass, Op0, Op0IsKill);
1189 1189
   }
1190 1190
   return 0;
... ...
@@ -1682,7 +1682,7 @@ unsigned FastEmit_ISD_ADD_MVT_v16i8_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1682 1682
   if ((Subtarget->hasAVX())) {
1683 1683
     return FastEmitInst_rr(X86::VPADDBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1684 1684
   }
1685
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1685
+  if ((Subtarget->hasSSE2())) {
1686 1686
     return FastEmitInst_rr(X86::PADDBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1687 1687
   }
1688 1688
   return 0;
... ...
@@ -1703,7 +1703,7 @@ unsigned FastEmit_ISD_ADD_MVT_v8i16_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1703 1703
   if ((Subtarget->hasAVX())) {
1704 1704
     return FastEmitInst_rr(X86::VPADDWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1705 1705
   }
1706
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1706
+  if ((Subtarget->hasSSE2())) {
1707 1707
     return FastEmitInst_rr(X86::PADDWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1708 1708
   }
1709 1709
   return 0;
... ...
@@ -1724,7 +1724,7 @@ unsigned FastEmit_ISD_ADD_MVT_v4i32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1724 1724
   if ((Subtarget->hasAVX())) {
1725 1725
     return FastEmitInst_rr(X86::VPADDDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1726 1726
   }
1727
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1727
+  if ((Subtarget->hasSSE2())) {
1728 1728
     return FastEmitInst_rr(X86::PADDDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1729 1729
   }
1730 1730
   return 0;
... ...
@@ -1745,7 +1745,7 @@ unsigned FastEmit_ISD_ADD_MVT_v2i64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1745 1745
   if ((Subtarget->hasAVX())) {
1746 1746
     return FastEmitInst_rr(X86::VPADDQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1747 1747
   }
1748
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1748
+  if ((Subtarget->hasSSE2())) {
1749 1749
     return FastEmitInst_rr(X86::PADDQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1750 1750
   }
1751 1751
   return 0;
... ...
@@ -1868,10 +1868,10 @@ unsigned FastEmit_ISD_AND_MVT_v2i64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1868 1868
   if ((Subtarget->hasAVX())) {
1869 1869
     return FastEmitInst_rr(X86::VPANDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1870 1870
   }
1871
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1871
+  if ((Subtarget->hasSSE1())) {
1872 1872
     return FastEmitInst_rr(X86::ANDPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1873 1873
   }
1874
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1874
+  if ((Subtarget->hasSSE2())) {
1875 1875
     return FastEmitInst_rr(X86::PANDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1876 1876
   }
1877 1877
   return 0;
... ...
@@ -1900,7 +1900,7 @@ unsigned FastEmit_ISD_FADD_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
1900 1900
   if ((Subtarget->hasAVX())) {
1901 1901
     return FastEmitInst_rr(X86::VADDSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1902 1902
   }
1903
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1903
+  if ((Subtarget->hasSSE1())) {
1904 1904
     return FastEmitInst_rr(X86::ADDSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1905 1905
   }
1906 1906
   return 0;
... ...
@@ -1915,7 +1915,7 @@ unsigned FastEmit_ISD_FADD_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
1915 1915
   if ((Subtarget->hasAVX())) {
1916 1916
     return FastEmitInst_rr(X86::VADDSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1917 1917
   }
1918
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1918
+  if ((Subtarget->hasSSE2())) {
1919 1919
     return FastEmitInst_rr(X86::ADDSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1920 1920
   }
1921 1921
   return 0;
... ...
@@ -1933,7 +1933,7 @@ unsigned FastEmit_ISD_FADD_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1933 1933
   if ((Subtarget->hasAVX())) {
1934 1934
     return FastEmitInst_rr(X86::VADDPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1935 1935
   }
1936
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1936
+  if ((Subtarget->hasSSE1())) {
1937 1937
     return FastEmitInst_rr(X86::ADDPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1938 1938
   }
1939 1939
   return 0;
... ...
@@ -1954,7 +1954,7 @@ unsigned FastEmit_ISD_FADD_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
1954 1954
   if ((Subtarget->hasAVX())) {
1955 1955
     return FastEmitInst_rr(X86::VADDPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1956 1956
   }
1957
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
1957
+  if ((Subtarget->hasSSE2())) {
1958 1958
     return FastEmitInst_rr(X86::ADDPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1959 1959
   }
1960 1960
   return 0;
... ...
@@ -1993,7 +1993,7 @@ unsigned FastEmit_ISD_FDIV_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
1993 1993
   if ((Subtarget->hasAVX())) {
1994 1994
     return FastEmitInst_rr(X86::VDIVSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1995 1995
   }
1996
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
1996
+  if ((Subtarget->hasSSE1())) {
1997 1997
     return FastEmitInst_rr(X86::DIVSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
1998 1998
   }
1999 1999
   return 0;
... ...
@@ -2008,7 +2008,7 @@ unsigned FastEmit_ISD_FDIV_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
2008 2008
   if ((Subtarget->hasAVX())) {
2009 2009
     return FastEmitInst_rr(X86::VDIVSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2010 2010
   }
2011
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2011
+  if ((Subtarget->hasSSE2())) {
2012 2012
     return FastEmitInst_rr(X86::DIVSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2013 2013
   }
2014 2014
   return 0;
... ...
@@ -2026,7 +2026,7 @@ unsigned FastEmit_ISD_FDIV_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2026 2026
   if ((Subtarget->hasAVX())) {
2027 2027
     return FastEmitInst_rr(X86::VDIVPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2028 2028
   }
2029
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2029
+  if ((Subtarget->hasSSE1())) {
2030 2030
     return FastEmitInst_rr(X86::DIVPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2031 2031
   }
2032 2032
   return 0;
... ...
@@ -2047,7 +2047,7 @@ unsigned FastEmit_ISD_FDIV_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2047 2047
   if ((Subtarget->hasAVX())) {
2048 2048
     return FastEmitInst_rr(X86::VDIVPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2049 2049
   }
2050
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2050
+  if ((Subtarget->hasSSE2())) {
2051 2051
     return FastEmitInst_rr(X86::DIVPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2052 2052
   }
2053 2053
   return 0;
... ...
@@ -2086,7 +2086,7 @@ unsigned FastEmit_ISD_FMUL_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
2086 2086
   if ((Subtarget->hasAVX())) {
2087 2087
     return FastEmitInst_rr(X86::VMULSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2088 2088
   }
2089
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2089
+  if ((Subtarget->hasSSE1())) {
2090 2090
     return FastEmitInst_rr(X86::MULSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2091 2091
   }
2092 2092
   return 0;
... ...
@@ -2101,7 +2101,7 @@ unsigned FastEmit_ISD_FMUL_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
2101 2101
   if ((Subtarget->hasAVX())) {
2102 2102
     return FastEmitInst_rr(X86::VMULSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2103 2103
   }
2104
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2104
+  if ((Subtarget->hasSSE2())) {
2105 2105
     return FastEmitInst_rr(X86::MULSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2106 2106
   }
2107 2107
   return 0;
... ...
@@ -2119,7 +2119,7 @@ unsigned FastEmit_ISD_FMUL_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2119 2119
   if ((Subtarget->hasAVX())) {
2120 2120
     return FastEmitInst_rr(X86::VMULPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2121 2121
   }
2122
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2122
+  if ((Subtarget->hasSSE1())) {
2123 2123
     return FastEmitInst_rr(X86::MULPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2124 2124
   }
2125 2125
   return 0;
... ...
@@ -2140,7 +2140,7 @@ unsigned FastEmit_ISD_FMUL_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2140 2140
   if ((Subtarget->hasAVX())) {
2141 2141
     return FastEmitInst_rr(X86::VMULPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2142 2142
   }
2143
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2143
+  if ((Subtarget->hasSSE2())) {
2144 2144
     return FastEmitInst_rr(X86::MULPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2145 2145
   }
2146 2146
   return 0;
... ...
@@ -2179,7 +2179,7 @@ unsigned FastEmit_ISD_FSUB_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
2179 2179
   if ((Subtarget->hasAVX())) {
2180 2180
     return FastEmitInst_rr(X86::VSUBSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2181 2181
   }
2182
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2182
+  if ((Subtarget->hasSSE1())) {
2183 2183
     return FastEmitInst_rr(X86::SUBSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2184 2184
   }
2185 2185
   return 0;
... ...
@@ -2194,7 +2194,7 @@ unsigned FastEmit_ISD_FSUB_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
2194 2194
   if ((Subtarget->hasAVX())) {
2195 2195
     return FastEmitInst_rr(X86::VSUBSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2196 2196
   }
2197
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2197
+  if ((Subtarget->hasSSE2())) {
2198 2198
     return FastEmitInst_rr(X86::SUBSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2199 2199
   }
2200 2200
   return 0;
... ...
@@ -2212,7 +2212,7 @@ unsigned FastEmit_ISD_FSUB_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2212 2212
   if ((Subtarget->hasAVX())) {
2213 2213
     return FastEmitInst_rr(X86::VSUBPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2214 2214
   }
2215
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2215
+  if ((Subtarget->hasSSE1())) {
2216 2216
     return FastEmitInst_rr(X86::SUBPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2217 2217
   }
2218 2218
   return 0;
... ...
@@ -2233,7 +2233,7 @@ unsigned FastEmit_ISD_FSUB_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2233 2233
   if ((Subtarget->hasAVX())) {
2234 2234
     return FastEmitInst_rr(X86::VSUBPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2235 2235
   }
2236
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2236
+  if ((Subtarget->hasSSE2())) {
2237 2237
     return FastEmitInst_rr(X86::SUBPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2238 2238
   }
2239 2239
   return 0;
... ...
@@ -2303,7 +2303,7 @@ unsigned FastEmit_ISD_MUL_MVT_v8i16_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2303 2303
   if ((Subtarget->hasAVX())) {
2304 2304
     return FastEmitInst_rr(X86::VPMULLWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2305 2305
   }
2306
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2306
+  if ((Subtarget->hasSSE2())) {
2307 2307
     return FastEmitInst_rr(X86::PMULLWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2308 2308
   }
2309 2309
   return 0;
... ...
@@ -2315,7 +2315,7 @@ unsigned FastEmit_ISD_MUL_MVT_v4i32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2315 2315
   if ((Subtarget->hasAVX())) {
2316 2316
     return FastEmitInst_rr(X86::VPMULLDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2317 2317
   }
2318
-  if ((Subtarget->hasSSE41() && !Subtarget->hasAVX())) {
2318
+  if ((Subtarget->hasSSE41())) {
2319 2319
     return FastEmitInst_rr(X86::PMULLDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2320 2320
   }
2321 2321
   return 0;
... ...
@@ -2375,10 +2375,10 @@ unsigned FastEmit_ISD_OR_MVT_v2i64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, u
2375 2375
   if ((Subtarget->hasAVX())) {
2376 2376
     return FastEmitInst_rr(X86::VPORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2377 2377
   }
2378
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2378
+  if ((Subtarget->hasSSE1())) {
2379 2379
     return FastEmitInst_rr(X86::ORPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2380 2380
   }
2381
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2381
+  if ((Subtarget->hasSSE2())) {
2382 2382
     return FastEmitInst_rr(X86::PORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2383 2383
   }
2384 2384
   return 0;
... ...
@@ -2517,7 +2517,7 @@ unsigned FastEmit_ISD_SUB_MVT_v16i8_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2517 2517
   if ((Subtarget->hasAVX())) {
2518 2518
     return FastEmitInst_rr(X86::VPSUBBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2519 2519
   }
2520
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2520
+  if ((Subtarget->hasSSE2())) {
2521 2521
     return FastEmitInst_rr(X86::PSUBBrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2522 2522
   }
2523 2523
   return 0;
... ...
@@ -2538,7 +2538,7 @@ unsigned FastEmit_ISD_SUB_MVT_v8i16_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2538 2538
   if ((Subtarget->hasAVX())) {
2539 2539
     return FastEmitInst_rr(X86::VPSUBWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2540 2540
   }
2541
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2541
+  if ((Subtarget->hasSSE2())) {
2542 2542
     return FastEmitInst_rr(X86::PSUBWrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2543 2543
   }
2544 2544
   return 0;
... ...
@@ -2559,7 +2559,7 @@ unsigned FastEmit_ISD_SUB_MVT_v4i32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2559 2559
   if ((Subtarget->hasAVX())) {
2560 2560
     return FastEmitInst_rr(X86::VPSUBDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2561 2561
   }
2562
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2562
+  if ((Subtarget->hasSSE2())) {
2563 2563
     return FastEmitInst_rr(X86::PSUBDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2564 2564
   }
2565 2565
   return 0;
... ...
@@ -2580,7 +2580,7 @@ unsigned FastEmit_ISD_SUB_MVT_v2i64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2580 2580
   if ((Subtarget->hasAVX())) {
2581 2581
     return FastEmitInst_rr(X86::VPSUBQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2582 2582
   }
2583
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2583
+  if ((Subtarget->hasSSE2())) {
2584 2584
     return FastEmitInst_rr(X86::PSUBQrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2585 2585
   }
2586 2586
   return 0;
... ...
@@ -2703,10 +2703,10 @@ unsigned FastEmit_ISD_XOR_MVT_v2i64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2703 2703
   if ((Subtarget->hasAVX())) {
2704 2704
     return FastEmitInst_rr(X86::VPXORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2705 2705
   }
2706
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2706
+  if ((Subtarget->hasSSE1())) {
2707 2707
     return FastEmitInst_rr(X86::XORPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2708 2708
   }
2709
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2709
+  if ((Subtarget->hasSSE2())) {
2710 2710
     return FastEmitInst_rr(X86::PXORrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2711 2711
   }
2712 2712
   return 0;
... ...
@@ -2788,7 +2788,7 @@ unsigned FastEmit_X86ISD_CMP_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2788 2788
   if ((Subtarget->hasAVX())) {
2789 2789
     return FastEmitInst_rr(X86::VUCOMISSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2790 2790
   }
2791
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2791
+  if ((Subtarget->hasSSE1())) {
2792 2792
     return FastEmitInst_rr(X86::UCOMISSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2793 2793
   }
2794 2794
   return 0;
... ...
@@ -2803,7 +2803,7 @@ unsigned FastEmit_X86ISD_CMP_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
2803 2803
   if ((Subtarget->hasAVX())) {
2804 2804
     return FastEmitInst_rr(X86::VUCOMISDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2805 2805
   }
2806
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2806
+  if ((Subtarget->hasSSE2())) {
2807 2807
     return FastEmitInst_rr(X86::UCOMISDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2808 2808
   }
2809 2809
   return 0;
... ...
@@ -2836,7 +2836,7 @@ unsigned FastEmit_X86ISD_COMI_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKi
2836 2836
   if ((Subtarget->hasAVX())) {
2837 2837
     return FastEmitInst_rr(X86::Int_VCOMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2838 2838
   }
2839
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2839
+  if ((Subtarget->hasSSE1())) {
2840 2840
     return FastEmitInst_rr(X86::Int_COMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2841 2841
   }
2842 2842
   return 0;
... ...
@@ -2848,7 +2848,7 @@ unsigned FastEmit_X86ISD_COMI_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKi
2848 2848
   if ((Subtarget->hasAVX())) {
2849 2849
     return FastEmitInst_rr(X86::Int_VCOMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2850 2850
   }
2851
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2851
+  if ((Subtarget->hasSSE2())) {
2852 2852
     return FastEmitInst_rr(X86::Int_COMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2853 2853
   }
2854 2854
   return 0;
... ...
@@ -2870,7 +2870,7 @@ unsigned FastEmit_X86ISD_FAND_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
2870 2870
   if ((Subtarget->hasAVX())) {
2871 2871
     return FastEmitInst_rr(X86::VFsANDPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2872 2872
   }
2873
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2873
+  if ((Subtarget->hasSSE1())) {
2874 2874
     return FastEmitInst_rr(X86::FsANDPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2875 2875
   }
2876 2876
   return 0;
... ...
@@ -2882,7 +2882,7 @@ unsigned FastEmit_X86ISD_FAND_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
2882 2882
   if ((Subtarget->hasAVX())) {
2883 2883
     return FastEmitInst_rr(X86::VFsANDPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2884 2884
   }
2885
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2885
+  if ((Subtarget->hasSSE2())) {
2886 2886
     return FastEmitInst_rr(X86::FsANDPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2887 2887
   }
2888 2888
   return 0;
... ...
@@ -2904,7 +2904,7 @@ unsigned FastEmit_X86ISD_FMAX_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
2904 2904
   if ((Subtarget->hasAVX())) {
2905 2905
     return FastEmitInst_rr(X86::VMAXSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2906 2906
   }
2907
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2907
+  if ((Subtarget->hasSSE1())) {
2908 2908
     return FastEmitInst_rr(X86::MAXSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2909 2909
   }
2910 2910
   return 0;
... ...
@@ -2916,7 +2916,7 @@ unsigned FastEmit_X86ISD_FMAX_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
2916 2916
   if ((Subtarget->hasAVX())) {
2917 2917
     return FastEmitInst_rr(X86::VMAXSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2918 2918
   }
2919
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2919
+  if ((Subtarget->hasSSE2())) {
2920 2920
     return FastEmitInst_rr(X86::MAXSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2921 2921
   }
2922 2922
   return 0;
... ...
@@ -2928,7 +2928,7 @@ unsigned FastEmit_X86ISD_FMAX_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKi
2928 2928
   if ((Subtarget->hasAVX())) {
2929 2929
     return FastEmitInst_rr(X86::VMAXPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2930 2930
   }
2931
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2931
+  if ((Subtarget->hasSSE1())) {
2932 2932
     return FastEmitInst_rr(X86::MAXPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2933 2933
   }
2934 2934
   return 0;
... ...
@@ -2949,7 +2949,7 @@ unsigned FastEmit_X86ISD_FMAX_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKi
2949 2949
   if ((Subtarget->hasAVX())) {
2950 2950
     return FastEmitInst_rr(X86::VMAXPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2951 2951
   }
2952
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2952
+  if ((Subtarget->hasSSE2())) {
2953 2953
     return FastEmitInst_rr(X86::MAXPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2954 2954
   }
2955 2955
   return 0;
... ...
@@ -2984,7 +2984,7 @@ unsigned FastEmit_X86ISD_FMIN_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
2984 2984
   if ((Subtarget->hasAVX())) {
2985 2985
     return FastEmitInst_rr(X86::VMINSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2986 2986
   }
2987
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
2987
+  if ((Subtarget->hasSSE1())) {
2988 2988
     return FastEmitInst_rr(X86::MINSSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2989 2989
   }
2990 2990
   return 0;
... ...
@@ -2996,7 +2996,7 @@ unsigned FastEmit_X86ISD_FMIN_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
2996 2996
   if ((Subtarget->hasAVX())) {
2997 2997
     return FastEmitInst_rr(X86::VMINSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
2998 2998
   }
2999
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
2999
+  if ((Subtarget->hasSSE2())) {
3000 3000
     return FastEmitInst_rr(X86::MINSDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3001 3001
   }
3002 3002
   return 0;
... ...
@@ -3008,7 +3008,7 @@ unsigned FastEmit_X86ISD_FMIN_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKi
3008 3008
   if ((Subtarget->hasAVX())) {
3009 3009
     return FastEmitInst_rr(X86::VMINPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3010 3010
   }
3011
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
3011
+  if ((Subtarget->hasSSE1())) {
3012 3012
     return FastEmitInst_rr(X86::MINPSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3013 3013
   }
3014 3014
   return 0;
... ...
@@ -3029,7 +3029,7 @@ unsigned FastEmit_X86ISD_FMIN_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKi
3029 3029
   if ((Subtarget->hasAVX())) {
3030 3030
     return FastEmitInst_rr(X86::VMINPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3031 3031
   }
3032
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
3032
+  if ((Subtarget->hasSSE2())) {
3033 3033
     return FastEmitInst_rr(X86::MINPDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3034 3034
   }
3035 3035
   return 0;
... ...
@@ -3064,7 +3064,7 @@ unsigned FastEmit_X86ISD_FOR_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
3064 3064
   if ((Subtarget->hasAVX())) {
3065 3065
     return FastEmitInst_rr(X86::VFsORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3066 3066
   }
3067
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
3067
+  if ((Subtarget->hasSSE1())) {
3068 3068
     return FastEmitInst_rr(X86::FsORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3069 3069
   }
3070 3070
   return 0;
... ...
@@ -3076,7 +3076,7 @@ unsigned FastEmit_X86ISD_FOR_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill,
3076 3076
   if ((Subtarget->hasAVX())) {
3077 3077
     return FastEmitInst_rr(X86::VFsORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3078 3078
   }
3079
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
3079
+  if ((Subtarget->hasSSE2())) {
3080 3080
     return FastEmitInst_rr(X86::FsORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3081 3081
   }
3082 3082
   return 0;
... ...
@@ -3098,7 +3098,7 @@ unsigned FastEmit_X86ISD_FXOR_MVT_f32_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
3098 3098
   if ((Subtarget->hasAVX())) {
3099 3099
     return FastEmitInst_rr(X86::VFsXORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3100 3100
   }
3101
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
3101
+  if ((Subtarget->hasSSE1())) {
3102 3102
     return FastEmitInst_rr(X86::FsXORPSrr, X86::FR32RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3103 3103
   }
3104 3104
   return 0;
... ...
@@ -3110,7 +3110,7 @@ unsigned FastEmit_X86ISD_FXOR_MVT_f64_rr(MVT RetVT, unsigned Op0, bool Op0IsKill
3110 3110
   if ((Subtarget->hasAVX())) {
3111 3111
     return FastEmitInst_rr(X86::VFsXORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3112 3112
   }
3113
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
3113
+  if ((Subtarget->hasSSE2())) {
3114 3114
     return FastEmitInst_rr(X86::FsXORPDrr, X86::FR64RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3115 3115
   }
3116 3116
   return 0;
... ...
@@ -3342,7 +3342,7 @@ unsigned FastEmit_X86ISD_PCMPGTW_rr(MVT VT, MVT RetVT, unsigned Op0, bool Op0IsK
3342 3342
 unsigned FastEmit_X86ISD_PSHUFB_MVT_v16i8_rr(MVT RetVT, unsigned Op0, bool Op0IsKill, unsigned Op1, bool Op1IsKill) {
3343 3343
   if (RetVT.SimpleTy != MVT::v16i8)
3344 3344
     return 0;
3345
-  if ((Subtarget->hasSSSE3() && !Subtarget->hasAVX())) {
3345
+  if ((Subtarget->hasSSSE3())) {
3346 3346
     return FastEmitInst_rr(X86::PSHUFBrr128, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3347 3347
   }
3348 3348
   return 0;
... ...
@@ -3372,7 +3372,7 @@ unsigned FastEmit_X86ISD_PTEST_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsK
3372 3372
   if ((Subtarget->hasAVX())) {
3373 3373
     return FastEmitInst_rr(X86::VPTESTrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3374 3374
   }
3375
-  if ((Subtarget->hasSSE41() && !Subtarget->hasAVX())) {
3375
+  if ((Subtarget->hasSSE41())) {
3376 3376
     return FastEmitInst_rr(X86::PTESTrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3377 3377
   }
3378 3378
   return 0;
... ...
@@ -3562,7 +3562,7 @@ unsigned FastEmit_X86ISD_UCOMI_MVT_v4f32_rr(MVT RetVT, unsigned Op0, bool Op0IsK
3562 3562
   if ((Subtarget->hasAVX())) {
3563 3563
     return FastEmitInst_rr(X86::Int_VUCOMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3564 3564
   }
3565
-  if ((Subtarget->hasSSE1() && !Subtarget->hasAVX())) {
3565
+  if ((Subtarget->hasSSE1())) {
3566 3566
     return FastEmitInst_rr(X86::Int_UCOMISSrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3567 3567
   }
3568 3568
   return 0;
... ...
@@ -3574,7 +3574,7 @@ unsigned FastEmit_X86ISD_UCOMI_MVT_v2f64_rr(MVT RetVT, unsigned Op0, bool Op0IsK
3574 3574
   if ((Subtarget->hasAVX())) {
3575 3575
     return FastEmitInst_rr(X86::Int_VUCOMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3576 3576
   }
3577
-  if ((Subtarget->hasSSE2() && !Subtarget->hasAVX())) {
3577
+  if ((Subtarget->hasSSE2())) {
3578 3578
     return FastEmitInst_rr(X86::Int_UCOMISDrr, X86::VR128RegisterClass, Op0, Op0IsKill, Op1, Op1IsKill);
3579 3579
   }
3580 3580
   return 0;
... ...
@@ -349,17 +349,14 @@ def tls32addr : ComplexPattern<i32, 5, "SelectTLSADDRAddr",
349 349
 def HasCMov      : Predicate<"Subtarget->hasCMov()">;
350 350
 def NoCMov       : Predicate<"!Subtarget->hasCMov()">;
351 351
 
352
-// FIXME: temporary hack to let codegen assert or generate poor code in case
353
-// no AVX version of the desired intructions is present, this is better for
354
-// incremental dev (without fallbacks it's easier to spot what's missing)
355 352
 def HasMMX       : Predicate<"Subtarget->hasMMX() && !Subtarget->hasAVX()">;
356
-def HasSSE1      : Predicate<"Subtarget->hasSSE1() && !Subtarget->hasAVX()">;
357
-def HasSSE2      : Predicate<"Subtarget->hasSSE2() && !Subtarget->hasAVX()">;
358
-def HasSSE3      : Predicate<"Subtarget->hasSSE3() && !Subtarget->hasAVX()">;
359
-def HasSSSE3     : Predicate<"Subtarget->hasSSSE3() && !Subtarget->hasAVX()">;
360
-def HasSSE41     : Predicate<"Subtarget->hasSSE41() && !Subtarget->hasAVX()">;
361
-def HasSSE42     : Predicate<"Subtarget->hasSSE42() && !Subtarget->hasAVX()">;
362
-def HasSSE4A     : Predicate<"Subtarget->hasSSE4A() && !Subtarget->hasAVX()">;
353
+def HasSSE1      : Predicate<"Subtarget->hasSSE1()">;
354
+def HasSSE2      : Predicate<"Subtarget->hasSSE2()">;
355
+def HasSSE3      : Predicate<"Subtarget->hasSSE3()">;
356
+def HasSSSE3     : Predicate<"Subtarget->hasSSSE3()">;
357
+def HasSSE41     : Predicate<"Subtarget->hasSSE41()">;
358
+def HasSSE42     : Predicate<"Subtarget->hasSSE42()">;
359
+def HasSSE4A     : Predicate<"Subtarget->hasSSE4A()">;
363 360
 
364 361
 def HasAVX       : Predicate<"Subtarget->hasAVX()">;
365 362
 def HasCLMUL     : Predicate<"Subtarget->hasCLMUL()">;