//===- TableGen'erated file -------------------------------------*- C++ -*-===//
//
// DAG Instruction Selector for the X86 target
//
// Automatically generated file, do not edit!
//
//===----------------------------------------------------------------------===//

// *** NOTE: This file is #included into the middle of the target
// *** instruction selector class.  These functions are really methods.

// The main instruction selector code.
SDNode *SelectCode(SDNode *N) {
  // Opcodes are emitted as 2 bytes, TARGET_OPCODE handles this.
  #define TARGET_OPCODE(X) X & 255, unsigned(X) >> 8
  static const unsigned char MatcherTable[] = {
          OPC_SwitchOpcode , 86|128,98,  TARGET_OPCODE(ISD::STORE),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_Scope, 34|128,2, 
              OPC_RecordChild1,
              OPC_Scope, 80, 
                OPC_CheckChild1Type, MVT::v4f32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 0,
                OPC_Scope, 34, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_Scope, 12, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  12, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTDQmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              77, 
                OPC_CheckChild1Type, MVT::v2f64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 0,
                OPC_Scope, 34, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_Scope, 12, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  12, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQ_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                34, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_Scope, 12, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  12, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTDQ_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                0, 
              39, 
                OPC_CheckChild1Type, MVT::v8f32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 0,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_Scope, 12, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                12, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              39, 
                OPC_CheckChild1Type, MVT::v4f64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 0,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_Scope, 12, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                12, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQY_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              23, 
                OPC_CheckChild1Type, MVT::i32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 1,
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTImr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              23, 
                OPC_CheckChild1Type, MVT::i64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 1,
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTI_64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            33|128,86, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 82|128,5,  TARGET_OPCODE(ISD::SHL),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                45, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                45, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                85, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckType, MVT::i8,
                  OPC_Scope, 38, 
                    OPC_CheckAndImm, 63, 
                    OPC_RecordChild0,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  34, 
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  0, 
                41, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                90, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_Scope, 38, 
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  43, 
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  0, 
                46, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                46, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                88, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_Scope, 42, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  36, 
                    OPC_CheckChild1Type, MVT::i8,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  0, 
                40, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                40, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                42, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                0, 
              82|128,5,  TARGET_OPCODE(ISD::SRL),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                45, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                45, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                85, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckType, MVT::i8,
                  OPC_Scope, 38, 
                    OPC_CheckAndImm, 63, 
                    OPC_RecordChild0,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  34, 
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  0, 
                41, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                90, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_Scope, 38, 
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  43, 
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  0, 
                46, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                46, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                88, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_Scope, 42, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  36, 
                    OPC_CheckChild1Type, MVT::i8,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  0, 
                40, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                40, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                42, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                0, 
              82|128,5,  TARGET_OPCODE(ISD::SRA),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                45, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                45, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                85, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckType, MVT::i8,
                  OPC_Scope, 38, 
                    OPC_CheckAndImm, 63, 
                    OPC_RecordChild0,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  34, 
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  0, 
                41, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                90, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_Scope, 38, 
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  43, 
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  0, 
                46, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                46, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                88, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_Scope, 42, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  36, 
                    OPC_CheckChild1Type, MVT::i8,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  0, 
                40, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                40, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                42, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                0, 
              101|128,4,  TARGET_OPCODE(ISD::SUB),
                OPC_MoveChild, 0,
                OPC_Scope, 32|128,1, 
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 36, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG8m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  34, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  34, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  36, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  0, 
                61|128,3, 
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 78|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_Scope, 27|128,1, 
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_Scope, 107, 
                        OPC_CheckPredicate, 9,
                        OPC_MoveParent,
                        OPC_SwitchType , 32,  MVT::i16,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 2,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                          OPC_EmitMergeInputChains, 2, 0, 1, 
                          OPC_EmitConvertToTarget, 3,
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                        32,  MVT::i32,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 2,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                          OPC_EmitMergeInputChains, 2, 0, 1, 
                          OPC_EmitConvertToTarget, 3,
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                        32,  MVT::i64,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 2,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                          OPC_EmitMergeInputChains, 2, 0, 1, 
                          OPC_EmitConvertToTarget, 3,
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                        0, 
                      37, 
                        OPC_CheckPredicate, 10,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    44, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_EmitConvertToTarget, 3,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                    0, 
                  44, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  44, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  6|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_SwitchType , 30,  MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i16,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i32,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    0, 
                  0, 
                0, 
              23|128,6,  TARGET_OPCODE(ISD::XOR),
                OPC_Scope, 0|128,5, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 49, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT8m), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 5, 3, 4, 5, 6, 7, 
                  47, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT16m), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 5, 3, 4, 5, 6, 7, 
                  47, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT32m), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 5, 3, 4, 5, 6, 7, 
                  125|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_Scope, 47, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT64m), 0|OPFL_Chain|OPFL_MemRefs,
                          0, 5, 3, 4, 5, 6, 7, 
                    114, 
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_SwitchType , 32,  MVT::i16,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      32,  MVT::i32,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      32,  MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    85, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_Scope, 37, 
                        OPC_CheckPredicate, 10,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      35, 
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i8,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    0, 
                  44, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  44, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  6|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_SwitchType , 30,  MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i16,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i32,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    0, 
                  0, 
                17|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 30,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  0, 
                0, 
              90|128,10,  TARGET_OPCODE(ISD::ADD),
                OPC_Scope, 67|128,9, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 41, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  41, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 3,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  41, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 3,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  50, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  50, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 3,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  50, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 3,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  88, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_Scope, 34, 
                      OPC_CheckInteger, 1, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                    43, 
                      OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                    0, 
                  41, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 4,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64_16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  41, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 4,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64_32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  50, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 4,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64_16m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  50, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 4,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64_32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  53, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                  53, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0|128,1, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                  60|128,2, 
                    OPC_CheckPredicate, 3,
                    OPC_Scope, 109, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_Scope, 48, 
                        OPC_CheckInteger, 0|128,1, 
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                      52, 
                        OPC_CheckInteger, 0|128,0|128,0|128,0|128,0|128,1, 
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1, 
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                      0, 
                    27|128,1, 
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_Scope, 107, 
                        OPC_CheckPredicate, 9,
                        OPC_MoveParent,
                        OPC_SwitchType , 32,  MVT::i16,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 2,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                          OPC_EmitMergeInputChains, 2, 0, 1, 
                          OPC_EmitConvertToTarget, 3,
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                        32,  MVT::i32,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 2,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                          OPC_EmitMergeInputChains, 2, 0, 1, 
                          OPC_EmitConvertToTarget, 3,
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                        32,  MVT::i64,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 2,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                          OPC_EmitMergeInputChains, 2, 0, 1, 
                          OPC_EmitConvertToTarget, 3,
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                              1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                        0, 
                      37, 
                        OPC_CheckPredicate, 10,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    44, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_EmitConvertToTarget, 3,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                    0, 
                  44, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  44, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  6|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_SwitchType , 30,  MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i16,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i32,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    0, 
                  0, 
                17|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 30,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  0, 
                0, 
              28|128,4,  TARGET_OPCODE(ISD::ROTL),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 43, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                90, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_Scope, 38, 
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  43, 
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  0, 
                46, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                46, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                88, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_Scope, 42, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  36, 
                    OPC_CheckChild1Type, MVT::i8,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  0, 
                40, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                40, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                42, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                0, 
              28|128,4,  TARGET_OPCODE(ISD::ROTR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 43, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                41, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 1, 
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                90, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_Scope, 38, 
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 1, 
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 3, 4, 5, 6, 7, 
                  43, 
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  0, 
                46, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                46, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                88, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_Scope, 42, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR64mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  36, 
                    OPC_CheckChild1Type, MVT::i8,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitCopyToReg, 3, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR8mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                        1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                  0, 
                40, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR16mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                40, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR32mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                42, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 3, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR64mCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 5, 4, 5, 6, 7, 8, 
                0, 
              85|128,4,  TARGET_OPCODE(ISD::AND),
                OPC_Scope, 62|128,3, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 77|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_Scope, 114, 
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_SwitchType , 32,  MVT::i16,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      32,  MVT::i32,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      32,  MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    85, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_Scope, 37, 
                        OPC_CheckPredicate, 10,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      35, 
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i8,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    0, 
                  44, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  44, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  6|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_SwitchType , 30,  MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i16,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i32,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    0, 
                  0, 
                17|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 30,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  0, 
                0, 
              85|128,4,  TARGET_OPCODE(ISD::OR),
                OPC_Scope, 62|128,3, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 77|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_Scope, 114, 
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_SwitchType , 32,  MVT::i16,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      32,  MVT::i32,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      32,  MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    85, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_Scope, 37, 
                        OPC_CheckPredicate, 10,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      35, 
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i8,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 2,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains, 2, 0, 1, 
                        OPC_EmitConvertToTarget, 3,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8mi), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                      0, 
                    0, 
                  44, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  44, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
                  6|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_SwitchType , 30,  MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i16,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i32,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    30,  MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 2,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains, 2, 0, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 4, 5, 6, 7, 8, 3, 
                    0, 
                  0, 
                17|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 30,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  30,  MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64mr), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 4, 5, 6, 7, 8, 1, 
                  0, 
                0, 
              5|128,5,  TARGET_OPCODE(ISD::ADDE),
                OPC_RecordNode,
                OPC_CaptureFlagInput,
                OPC_Scope, 96|128,3, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 93|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_Scope, 39|128,1, 
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_Scope, 116, 
                        OPC_CheckPredicate, 9,
                        OPC_MoveParent,
                        OPC_SwitchType , 35,  MVT::i16,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 3,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                          OPC_EmitMergeInputChains, 2, 0, 2, 
                          OPC_EmitConvertToTarget, 4,
                          OPC_MarkFlagResults, 1, 1, 
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16mi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                              1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                        35,  MVT::i32,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 3,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                          OPC_EmitMergeInputChains, 2, 0, 2, 
                          OPC_EmitConvertToTarget, 4,
                          OPC_MarkFlagResults, 1, 1, 
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32mi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                              1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                        35,  MVT::i64,
                          OPC_MoveParent,
                          OPC_MoveChild, 2,
                          OPC_CheckSame, 3,
                          OPC_MoveParent,
                          OPC_CheckPredicate, 5,
                          OPC_CheckPredicate, 6,
                          OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                          OPC_EmitMergeInputChains, 2, 0, 2, 
                          OPC_EmitConvertToTarget, 4,
                          OPC_MarkFlagResults, 1, 1, 
                          OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64mi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                              1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                        0, 
                      40, 
                        OPC_CheckPredicate, 10,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 3,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains, 2, 0, 2, 
                        OPC_EmitConvertToTarget, 4,
                        OPC_MarkFlagResults, 1, 1, 
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64mi32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                            1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                      0, 
                    47, 
                      OPC_CheckPredicate, 4,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 3,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                      OPC_EmitMergeInputChains, 2, 0, 2, 
                      OPC_EmitConvertToTarget, 4,
                      OPC_MarkFlagResults, 1, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8mi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                          1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                    0, 
                  47, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_EmitConvertToTarget, 4,
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16mi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                  47, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_EmitConvertToTarget, 4,
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32mi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                  18|128,1, 
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_SwitchType , 33,  MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 3,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                      OPC_EmitMergeInputChains, 2, 0, 2, 
                      OPC_MarkFlagResults, 1, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                          1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                    33,  MVT::i16,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 3,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                      OPC_EmitMergeInputChains, 2, 0, 2, 
                      OPC_MarkFlagResults, 1, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                          1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                    33,  MVT::i32,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 3,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                      OPC_EmitMergeInputChains, 2, 0, 2, 
                      OPC_MarkFlagResults, 1, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                          1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                    33,  MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 3,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                      OPC_EmitMergeInputChains, 2, 0, 2, 
                      OPC_MarkFlagResults, 1, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                          1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                    0, 
                  0, 
                29|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 33,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 4,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/4,
                    OPC_EmitMergeInputChains, 2, 0, 3, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 2, 
                  33,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 4,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/4,
                    OPC_EmitMergeInputChains, 2, 0, 3, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 2, 
                  33,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 4,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/4,
                    OPC_EmitMergeInputChains, 2, 0, 3, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 2, 
                  33,  MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 4,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/4,
                    OPC_EmitMergeInputChains, 2, 0, 3, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 2, 
                  0, 
                0, 
              98|128,3,  TARGET_OPCODE(ISD::SUBE),
                OPC_RecordNode,
                OPC_CaptureFlagInput,
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 93|128,1, 
                  OPC_CheckPredicate, 3,
                  OPC_Scope, 39|128,1, 
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_Scope, 116, 
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_SwitchType , 35,  MVT::i16,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 3,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains, 2, 0, 2, 
                        OPC_EmitConvertToTarget, 4,
                        OPC_MarkFlagResults, 1, 1, 
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16mi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                            1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                      35,  MVT::i32,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 3,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains, 2, 0, 2, 
                        OPC_EmitConvertToTarget, 4,
                        OPC_MarkFlagResults, 1, 1, 
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32mi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                            1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                      35,  MVT::i64,
                        OPC_MoveParent,
                        OPC_MoveChild, 2,
                        OPC_CheckSame, 3,
                        OPC_MoveParent,
                        OPC_CheckPredicate, 5,
                        OPC_CheckPredicate, 6,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains, 2, 0, 2, 
                        OPC_EmitConvertToTarget, 4,
                        OPC_MarkFlagResults, 1, 1, 
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64mi8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                            1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                      0, 
                    40, 
                      OPC_CheckPredicate, 10,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 2,
                      OPC_CheckSame, 3,
                      OPC_MoveParent,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                      OPC_EmitMergeInputChains, 2, 0, 2, 
                      OPC_EmitConvertToTarget, 4,
                      OPC_MarkFlagResults, 1, 1, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64mi32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                          1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                    0, 
                  47, 
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_EmitConvertToTarget, 4,
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB8mi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                  0, 
                47, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 3,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 2, 0, 2, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MarkFlagResults, 1, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16mi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                47, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 3,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 2, 0, 2, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MarkFlagResults, 1, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32mi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 10, 
                18|128,1, 
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_SwitchType , 33,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB8mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                  33,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                  33,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                  33,  MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 3,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                    OPC_EmitMergeInputChains, 2, 0, 2, 
                    OPC_MarkFlagResults, 1, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64mr), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                        1, MVT::i32, 6, 5, 6, 7, 8, 9, 4, 
                  0, 
                0, 
              40|128,1,  TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 51,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 11,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 4, 5, 6, 7, 8, 3, 
                107,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 11,
                  OPC_SwitchType , 29,  MVT::v4f32,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 4, 5, 6, 7, 8, 3, 
                  29,  MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 4, 5, 6, 7, 8, 3, 
                  29,  MVT::v2i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 2,
                    OPC_CheckSame, 2,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains, 2, 0, 1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 4, 5, 6, 7, 8, 3, 
                  0, 
                0, 
              37|128,2,  TARGET_OPCODE(X86ISD::SHLD),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 48, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_MoveChild, 2,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD32mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 7, 5, 6, 7, 8, 9, 3, 10, 
                48, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_MoveChild, 2,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD16mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 7, 5, 6, 7, 8, 9, 3, 10, 
                50, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_MoveChild, 2,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD64mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 7, 5, 6, 7, 8, 9, 3, 10, 
                42, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_CheckChild2Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 4, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD32mrCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 3, 
                42, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_CheckChild2Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 4, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD16mrCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 3, 
                44, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_CheckChild2Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 4, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD64mrCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 3, 
                0, 
              37|128,2,  TARGET_OPCODE(X86ISD::SHRD),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 48, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_MoveChild, 2,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD32mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 7, 5, 6, 7, 8, 9, 3, 10, 
                48, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_MoveChild, 2,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD16mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 7, 5, 6, 7, 8, 9, 3, 10, 
                50, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_MoveChild, 2,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitConvertToTarget, 4,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD64mri8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 7, 5, 6, 7, 8, 9, 3, 10, 
                42, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_CheckChild2Type, MVT::i8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 4, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD32mrCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 3, 
                42, 
                  OPC_CheckPredicate, 7,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_CheckChild2Type, MVT::i8,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 4, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD16mrCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 3, 
                44, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_RecordChild2,
                  OPC_CheckChild2Type, MVT::i8,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_EmitCopyToReg, 4, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD64mrCL), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::i32, 6, 5, 6, 7, 8, 9, 3, 
                0, 
              100,  TARGET_OPCODE(X86ISD::MOVLPS),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 49,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 4, 5, 6, 7, 8, 3, 
                41,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v4f32,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 4, 5, 6, 7, 8, 3, 
                0, 
              79,  TARGET_OPCODE(X86ISD::MOVLPD),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 29,  MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 4, 5, 6, 7, 8, 3, 
                29,  MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 2,
                  OPC_CheckSame, 2,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 4, 5, 6, 7, 8, 3, 
                0, 
              102|128,5,  TARGET_OPCODE(ISD::EXTRACT_VECTOR_ELT),
                OPC_Scope, 106|128,2, 
                  OPC_MoveChild, 0,
                  OPC_SwitchOpcode , 14|128,1,  TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
                    OPC_Scope, 73, 
                      OPC_MoveChild, 0,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                      OPC_RecordChild0,
                      OPC_CheckChild0Type, MVT::v4f32,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                      OPC_MoveParent,
                      OPC_CheckPredicate, 12,
                      OPC_CheckType, MVT::v2f64,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::f64,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 18, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      18, 
                        OPC_CheckPatternPredicate, 1,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      0, 
                    65, 
                      OPC_RecordChild0,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                      OPC_MoveParent,
                      OPC_CheckPredicate, 12,
                      OPC_CheckType, MVT::v2f64,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::f64,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 18, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      18, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      0, 
                    0, 
                  39,  TARGET_OPCODE(X86ISD::UNPCKHPS),
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  39,  TARGET_OPCODE(X86ISD::UNPCKHPD),
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  125,  TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v4f32,
                    OPC_SwitchType , 54,  MVT::v2f64,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::f64,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 18, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      18, 
                        OPC_CheckPatternPredicate, 1,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      0, 
                    62,  MVT::v4i32,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i32,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 21, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains1_0,
                        OPC_EmitConvertToTarget, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VEXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 7, 4, 5, 6, 7, 8, 1, 9, 
                      21, 
                        OPC_CheckPatternPredicate, 5,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains1_0,
                        OPC_EmitConvertToTarget, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::EXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 7, 4, 5, 6, 7, 8, 1, 9, 
                      0, 
                    0, 
                  0, 
                118|128,2, 
                  OPC_RecordChild0,
                  OPC_Scope, 84, 
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_Scope, 18, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0, 6, 3, 4, 5, 6, 7, 1, 
                    18, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0, 6, 3, 4, 5, 6, 7, 1, 
                    28, 
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_0,
                      OPC_EmitInteger, MVT::i32, X86::sub_sd,
                      OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                          1, MVT::f64, 2, 1, 8, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          0, 6, 3, 4, 5, 6, 7, 9, 
                    0, 
                  120, 
                    OPC_CheckChild0Type, MVT::v4i32,
                    OPC_Scope, 53, 
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i32,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 18, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVPDI2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      18, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVPDI2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      0, 
                    61, 
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i32,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 21, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains1_0,
                        OPC_EmitConvertToTarget, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VPEXTRDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 7, 4, 5, 6, 7, 8, 1, 9, 
                      21, 
                        OPC_CheckPatternPredicate, 5,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains1_0,
                        OPC_EmitConvertToTarget, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::PEXTRDmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 7, 4, 5, 6, 7, 8, 1, 9, 
                      0, 
                    0, 
                  120, 
                    OPC_CheckChild0Type, MVT::v2i64,
                    OPC_Scope, 53, 
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 18, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      18, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 6, 3, 4, 5, 6, 7, 1, 
                      0, 
                    61, 
                      OPC_RecordChild1,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_RecordChild2,
                      OPC_CheckPredicate, 5,
                      OPC_CheckPredicate, 6,
                      OPC_Scope, 21, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains1_0,
                        OPC_EmitConvertToTarget, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VPEXTRQmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 7, 4, 5, 6, 7, 8, 1, 9, 
                      21, 
                        OPC_CheckPatternPredicate, 5,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                        OPC_EmitMergeInputChains1_0,
                        OPC_EmitConvertToTarget, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::PEXTRQmr), 0|OPFL_Chain|OPFL_MemRefs,
                            0, 7, 4, 5, 6, 7, 8, 1, 9, 
                      0, 
                    0, 
                  43, 
                    OPC_CheckChild0Type, MVT::v4f32,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f32,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::f32, 2, 1, 8, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 9, 
                  0, 
                0, 
              52|128,1,  TARGET_OPCODE(ISD::TRUNCATE),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::SRL),
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckInteger, 8, 
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_CheckPredicate, 13,
                OPC_SwitchType , 51,  MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 14,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i64, 2, 1, 8, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 9, 10, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 11, 
                53,  MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 14,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i32, 2, 1, 8, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 9, 10, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 11, 
                53,  MVT::i16,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 14,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 1, 8, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 9, 10, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8mr_NOREX), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 11, 
                0, 
              55,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::EXTRACT_VECTOR_ELT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::v4f32,
                OPC_CheckType, MVT::v4i32,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_MoveParent,
                OPC_CheckType, MVT::f32,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckPatternPredicate, 5,
                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::EXTRACTPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 7, 4, 5, 6, 7, 8, 1, 9, 
              84|128,3,  TARGET_OPCODE(X86ISD::SETCC),
                OPC_MoveChild, 0,
                OPC_Scope, 28, 
                  OPC_CheckInteger, 4, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETEm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 9, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNEm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 7, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETLm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 6, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETGEm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 8, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETLEm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 5, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETGm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 2, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETBm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 1, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETAEm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 3, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETBEm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETAm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 15, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETSm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 12, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNSm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 14, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETPm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 11, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNPm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 13, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETOm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                28, 
                  OPC_CheckInteger, 10, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 1, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNOm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      0, 5, 3, 4, 5, 6, 7, 
                0, 
              105|128,1,  TARGET_OPCODE(X86ISD::Wrapper),
                OPC_RecordChild0,
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 53,  TARGET_OPCODE(ISD::TargetGlobalAddress),
                  OPC_MoveParent,
                  OPC_SwitchType , 22,  MVT::i32,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  24,  MVT::i64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                53,  TARGET_OPCODE(ISD::TargetExternalSymbol),
                  OPC_MoveParent,
                  OPC_SwitchType , 22,  MVT::i32,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  24,  MVT::i64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                53,  TARGET_OPCODE(ISD::TargetBlockAddress),
                  OPC_MoveParent,
                  OPC_SwitchType , 22,  MVT::i32,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  24,  MVT::i64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_CheckPredicate, 5,
                    OPC_CheckPredicate, 6,
                    OPC_CheckPatternPredicate, 6,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                27,  TARGET_OPCODE(ISD::TargetConstantPool),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckPatternPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                27,  TARGET_OPCODE(ISD::TargetJumpTable),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_RecordChild2,
                  OPC_CheckPredicate, 5,
                  OPC_CheckPredicate, 6,
                  OPC_CheckPatternPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              0, 
            114, 
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_SwitchType , 26,  MVT::i64,
                OPC_CheckPredicate, 10,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 8, 
              24,  MVT::i8,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8mi), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 8, 
              24,  MVT::i16,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16mi), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 8, 
              24,  MVT::i32,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32mi), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 8, 
              0, 
            86, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_RecordChild0,
              OPC_SwitchType , 26,  MVT::i64,
                OPC_CheckChild0Type, MVT::f64,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDto64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              48,  MVT::i32,
                OPC_CheckChild0Type, MVT::f32,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSS2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSS2DImr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              0, 
            63|128,8, 
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_CheckChild1Type, MVT::f32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              92, 
                OPC_CheckChild1Type, MVT::f64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_Scope, 22, 
                  OPC_CheckPredicate, 15,
                  OPC_CheckPredicate, 16,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                61, 
                  OPC_CheckPredicate, 6,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                0, 
              69, 
                OPC_CheckChild1Type, MVT::f80,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_Scope, 42, 
                  OPC_CheckPredicate, 15,
                  OPC_Scope, 18, 
                    OPC_CheckPredicate, 16,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  18, 
                    OPC_CheckPredicate, 17,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        0, 6, 3, 4, 5, 6, 7, 1, 
                  0, 
                18, 
                  OPC_CheckPredicate, 6,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_FpP80m), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              23, 
                OPC_CheckChild1Type, MVT::i8,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              23, 
                OPC_CheckChild1Type, MVT::i16,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              23, 
                OPC_CheckChild1Type, MVT::i32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              23, 
                OPC_CheckChild1Type, MVT::i64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              89, 
                OPC_CheckChild1Type, MVT::v4f32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              89, 
                OPC_CheckChild1Type, MVT::v2f64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              49, 
                OPC_CheckChild1Type, MVT::v8f32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              49, 
                OPC_CheckChild1Type, MVT::v4f64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              89, 
                OPC_CheckChild1Type, MVT::v2i64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              89, 
                OPC_CheckChild1Type, MVT::v4i32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              89, 
                OPC_CheckChild1Type, MVT::v8i16,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              89, 
                OPC_CheckChild1Type, MVT::v16i8,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                20, 
                  OPC_CheckPredicate, 18,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              45, 
                OPC_CheckChild1Type, MVT::v1i64,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                16, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                      0, 6, 3, 4, 5, 6, 7, 1, 
                0, 
              23, 
                OPC_CheckChild1Type, MVT::v8i8,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              23, 
                OPC_CheckChild1Type, MVT::v4i16,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              23, 
                OPC_CheckChild1Type, MVT::v2i32,
                OPC_RecordChild2,
                OPC_CheckPredicate, 5,
                OPC_CheckPredicate, 6,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64mr), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            0, 
          82|128,12,  TARGET_OPCODE(X86ISD::CMP),
            OPC_Scope, 121|128,5, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 58|128,3,  TARGET_OPCODE(ISD::AND),
                OPC_Scope, 35|128,1, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 73, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_Scope, 30, 
                      OPC_CheckPredicate, 10,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i64,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_EmitConvertToTarget, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                    28, 
                      OPC_MoveParent,
                      OPC_CheckType, MVT::i8,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckInteger, 0, 
                      OPC_MoveParent,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_EmitConvertToTarget, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                    0, 
                  37, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST16mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                  37, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST32mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                  0, 
                6|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 30, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                  28, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST16rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                  28, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                  30, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                9|128,1, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_Scope, 31, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
                  29, 
                    OPC_CheckPredicate, 7,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST16rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
                  29, 
                    OPC_CheckPredicate, 8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
                  31, 
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::i64,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              51|128,2,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 33, 
                  OPC_CheckPredicate, 7,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                33, 
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                92, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_SwitchType , 55,  MVT::i64,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_Scope, 22, 
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_EmitConvertToTarget, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                    22, 
                      OPC_CheckPredicate, 10,
                      OPC_MoveParent,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_EmitConvertToTarget, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                    0, 
                  27,  MVT::i8,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP8mi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                  0, 
                31, 
                  OPC_CheckPredicate, 7,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                31, 
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                25, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP8mr), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
                23, 
                  OPC_CheckPredicate, 7,
                  OPC_CheckType, MVT::i16,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16mr), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
                23, 
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32mr), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
                0, 
              0, 
            107, 
              OPC_RecordChild0,
              OPC_Scope, 35, 
                OPC_CheckChild0Type, MVT::i8,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              33, 
                OPC_CheckChild0Type, MVT::i16,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              33, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            36, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::i64,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64mr), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            33|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 35, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              60, 
                OPC_CheckChild0Type, MVT::f32,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              60, 
                OPC_CheckChild0Type, MVT::f64,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            49|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::AND),
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 93, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 62, 
                  OPC_MoveParent,
                  OPC_CheckPredicate, 19,
                  OPC_SwitchType , 17,  MVT::i8,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST8ri), 0,
                        1, MVT::i32, 2, 0, 2, 
                  17,  MVT::i16,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST16ri), 0,
                        1, MVT::i32, 2, 0, 2, 
                  17,  MVT::i32,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckInteger, 0, 
                    OPC_MoveParent,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST32ri), 0,
                        1, MVT::i32, 2, 0, 2, 
                  0, 
                22, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST64ri32), 0,
                      1, MVT::i32, 2, 0, 2, 
                0, 
              55, 
                OPC_CheckPredicate, 19,
                OPC_SwitchType , 15,  MVT::i8,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST8rr), 0,
                      1, MVT::i32, 2, 0, 1, 
                15,  MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST16rr), 0,
                      1, MVT::i32, 2, 0, 1, 
                15,  MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST32rr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              17, 
                OPC_CheckType, MVT::i64,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST64rr), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            108|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 51, 
                OPC_CheckChild0Type, MVT::i8,
                OPC_Scope, 14, 
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST8rr), 0,
                      1, MVT::i32, 2, 0, 0, 
                31, 
                  OPC_RecordChild1,
                  OPC_Scope, 17, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP8ri), 0,
                        1, MVT::i32, 2, 0, 2, 
                  9, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP8rr), 0,
                        1, MVT::i32, 2, 0, 1, 
                  0, 
                0, 
              69, 
                OPC_CheckChild0Type, MVT::i16,
                OPC_Scope, 14, 
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST16rr), 0,
                      1, MVT::i32, 2, 0, 0, 
                49, 
                  OPC_RecordChild1,
                  OPC_Scope, 35, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_Scope, 14, 
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16ri8), 0,
                          1, MVT::i32, 2, 0, 2, 
                    12, 
                      OPC_MoveParent,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16ri), 0,
                          1, MVT::i32, 2, 0, 2, 
                    0, 
                  9, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP16rr), 0,
                        1, MVT::i32, 2, 0, 1, 
                  0, 
                0, 
              69, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_Scope, 14, 
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST32rr), 0,
                      1, MVT::i32, 2, 0, 0, 
                49, 
                  OPC_RecordChild1,
                  OPC_Scope, 35, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_Scope, 14, 
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32ri8), 0,
                          1, MVT::i32, 2, 0, 2, 
                    12, 
                      OPC_MoveParent,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32ri), 0,
                          1, MVT::i32, 2, 0, 2, 
                    0, 
                  9, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP32rr), 0,
                        1, MVT::i32, 2, 0, 1, 
                  0, 
                0, 
              71, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_Scope, 14, 
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::TEST64rr), 0,
                      1, MVT::i32, 2, 0, 0, 
                51, 
                  OPC_RecordChild1,
                  OPC_Scope, 37, 
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_Scope, 14, 
                      OPC_CheckPredicate, 9,
                      OPC_MoveParent,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64ri8), 0,
                          1, MVT::i32, 2, 0, 2, 
                    14, 
                      OPC_CheckPredicate, 10,
                      OPC_MoveParent,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64ri32), 0,
                          1, MVT::i32, 2, 0, 2, 
                    0, 
                  9, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMP64rr), 0,
                        1, MVT::i32, 2, 0, 1, 
                  0, 
                0, 
              41, 
                OPC_CheckChild0Type, MVT::f32,
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 7,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOM_FpIr32), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUCOMISSrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOMISSrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              41, 
                OPC_CheckChild0Type, MVT::f64,
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOM_FpIr64), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUCOMISDrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOMISDrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              12, 
                OPC_CheckChild0Type, MVT::f80,
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UCOM_FpIr80), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          73|128,90|128,1,  TARGET_OPCODE(ISD::INTRINSIC_WO_CHAIN),
            OPC_MoveChild, 0,
            OPC_Scope, 122, 
              OPC_CheckInteger, 12|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            122, 
              OPC_CheckInteger, 13|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIArm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIArm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIArr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIArr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            122, 
              OPC_CheckInteger, 14|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRICrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRICrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRICrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRICrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            122, 
              OPC_CheckInteger, 15|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIOrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIOrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIOrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIOrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            122, 
              OPC_CheckInteger, 16|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRISrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRISrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRISrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRISrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            122, 
              OPC_CheckInteger, 17|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRIZrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRIZrr), 0,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 4|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 5|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIArm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIArm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIArr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIArr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 6|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRICrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRICrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRICrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRICrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 7|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIOrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIOrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIOrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIOrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 8|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRISrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRISrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRISrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRISrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 9|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIZrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIZrm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRIZrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRIZrr), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 34|128,6, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 35|128,6, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 114|128,4, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 115|128,4, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 38|128,6, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 39|128,6, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSS2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSS2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 122|128,4, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SIrr), 0,
                      1, MVT::i32, 1, 0, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 123|128,4, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTSD2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTSD2SI64rr), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            54, 
              OPC_CheckInteger, 1|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 10,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m8), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 10,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r8), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 127|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 10,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m16), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 10,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r16), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 0|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 10,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32m32), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 10,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC32r32), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 3|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 10,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64m8), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 10,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64r8), 0,
                    1, MVT::i64, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 2|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 10,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64m64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 10,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CRC64r64), 0,
                    1, MVT::i64, 2, 0, 1, 
              0, 
            29, 
              OPC_CheckInteger, 47|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 10, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVMSKPSrr), 0,
                    1, MVT::i32, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPSrr), 0,
                    1, MVT::i32, 1, 0, 
              0, 
            29, 
              OPC_CheckInteger, 6|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 10, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVMSKPDrr), 0,
                    1, MVT::i32, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPDrr), 0,
                    1, MVT::i32, 1, 0, 
              0, 
            15, 
              OPC_CheckInteger, 97|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckPatternPredicate, 0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPSYrr), 0,
                  1, MVT::i32, 1, 0, 
            15, 
              OPC_CheckInteger, 96|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckPatternPredicate, 0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVMSKPDYrr), 0,
                  1, MVT::i32, 1, 0, 
            29, 
              OPC_CheckInteger, 31|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVMSKBrr), 0,
                    1, MVT::i32, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVMSKBrr), 0,
                    1, MVT::i32, 1, 0, 
              0, 
            15, 
              OPC_CheckInteger, 56|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckPatternPredicate, 9,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMOVMSKBrr), 0,
                  1, MVT::i32, 1, 0, 
            57|128,1, 
              OPC_CheckInteger, 109|128,5, 
              OPC_MoveParent,
              OPC_Scope, 23|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 46,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                  0, 
                25,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBWrm), 0|OPFL_Chain,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXBWrr), 0,
                      1, MVT::v8i16, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBWrr), 0,
                      1, MVT::v8i16, 1, 0, 
                0, 
              0, 
            57|128,1, 
              OPC_CheckInteger, 111|128,5, 
              OPC_MoveParent,
              OPC_Scope, 23|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 46,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                25,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWDrm), 0|OPFL_Chain,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXWDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            57|128,1, 
              OPC_CheckInteger, 110|128,5, 
              OPC_MoveParent,
              OPC_Scope, 23|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 46,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                25,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXDQrm), 0|OPFL_Chain,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXDQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXDQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            57|128,1, 
              OPC_CheckInteger, 115|128,5, 
              OPC_MoveParent,
              OPC_Scope, 23|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 46,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                  0, 
                25,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBWrm), 0|OPFL_Chain,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXBWrr), 0,
                      1, MVT::v8i16, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBWrr), 0,
                      1, MVT::v8i16, 1, 0, 
                0, 
              0, 
            57|128,1, 
              OPC_CheckInteger, 117|128,5, 
              OPC_MoveParent,
              OPC_Scope, 23|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 46,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                25,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWDrm), 0|OPFL_Chain,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXWDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            57|128,1, 
              OPC_CheckInteger, 116|128,5, 
              OPC_MoveParent,
              OPC_Scope, 23|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 46,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                25,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXDQrm), 0|OPFL_Chain,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXDQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXDQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            24|128,1, 
              OPC_CheckInteger, 107|128,5, 
              OPC_MoveParent,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 44,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                60,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXBDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            24|128,1, 
              OPC_CheckInteger, 112|128,5, 
              OPC_MoveParent,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 44,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                60,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXWQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXWQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            24|128,1, 
              OPC_CheckInteger, 113|128,5, 
              OPC_MoveParent,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 44,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                60,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXBDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBDrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            24|128,1, 
              OPC_CheckInteger, 118|128,5, 
              OPC_MoveParent,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 44,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                60,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXWQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXWQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            24|128,1, 
              OPC_CheckInteger, 108|128,5, 
              OPC_MoveParent,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 44,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                60,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 20,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVSXBQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVSXBQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            24|128,1, 
              OPC_CheckInteger, 114|128,5, 
              OPC_MoveParent,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 44,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                60,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 20,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMOVZXBQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMOVZXBQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            0|128,1, 
              OPC_CheckInteger, 93|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 79, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPBLENDWrri), 0,
                      1, MVT::v8i16, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PBLENDWrri), 0,
                      1, MVT::v8i16, 3, 0, 1, 3, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 56|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 57|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 58|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBUSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBUSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 59|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBUSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBUSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 14|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 15|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 16|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDUSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDUSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 17|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDUSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDUSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 33|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHUWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHUWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 32|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 34|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULUDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULUDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 26|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDWDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDWDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 18|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPAVGBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PAVGBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 19|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPAVGWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PAVGWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 30|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 29|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 28|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 27|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 35|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSADBWrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSADBWrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 40|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 36|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 52|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 48|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 45|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRAWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRAWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 44|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRADrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRADrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 20|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 22|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 21|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 23|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 25|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 24|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 12|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKSSWBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKSSWBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 11|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKSSDWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKSSDWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 13|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKUSWBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKUSWBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 77|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 73|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDDrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 75|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHADDSWrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 83|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 79|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBDrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 81|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHSUBSWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 85|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMADDUBSWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 96|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 94|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNDrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrr128), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 87|128,6, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULHRSWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrr128), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            64, 
              OPC_CheckInteger, 76|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 72|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDDrr64), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 74|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHADDSWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 82|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 78|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBDrr64), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 80|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PHSUBSWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 84|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMADDUBSWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 95|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            64, 
              OPC_CheckInteger, 93|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNDrr64), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            110, 
              OPC_CheckInteger, 86|128,6, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_CheckType, MVT::v8i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULHRSWrr64), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            102, 
              OPC_CheckInteger, 91|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKUSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKUSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPACKUSDWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PACKUSDWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 94|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPEQQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 104|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 105|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 106|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINUWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINUWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 100|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 101|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 102|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXUWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXUWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              0, 
            43|128,1, 
              OPC_CheckInteger, 119|128,5, 
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            66|128,1, 
              OPC_CheckInteger, 90|128,5, 
              OPC_MoveParent,
              OPC_Scope, 72, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              72, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 7, 2, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 7, 2, 4, 5, 6, 7, 8, 9, 
                0, 
              41, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMPSADBWrri), 0,
                      1, MVT::v16i8, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MPSADBWrri), 0,
                      1, MVT::v16i8, 3, 0, 1, 3, 
                0, 
              0, 
            102, 
              OPC_CheckInteger, 11|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPGTQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            17|128,1, 
              OPC_CheckInteger, 55|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 99, 
                OPC_MoveChild, 2,
                OPC_SwitchOpcode , 61,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_CheckType, MVT::v16i8,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 12,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 13,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                28,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              37, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            17|128,1, 
              OPC_CheckInteger, 56|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 99, 
                OPC_MoveChild, 2,
                OPC_SwitchOpcode , 61,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_CheckType, MVT::v16i8,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 12,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 13,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                28,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              37, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCLASTrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCLASTrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESENCLASTrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            17|128,1, 
              OPC_CheckInteger, 53|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 99, 
                OPC_MoveChild, 2,
                OPC_SwitchOpcode , 61,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_CheckType, MVT::v16i8,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 12,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 13,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                28,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              37, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            17|128,1, 
              OPC_CheckInteger, 54|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 99, 
                OPC_MoveChild, 2,
                OPC_SwitchOpcode , 61,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_CheckType, MVT::v16i8,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 12,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 13,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                28,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECLASTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              37, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECLASTrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECLASTrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESDECLASTrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            115, 
              OPC_CheckInteger, 58|128,3, 
              OPC_MoveParent,
              OPC_Scope, 69, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 3, 4, 5, 6, 7, 8, 
                21, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              38, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 13, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESKEYGENASSIST128rr), 0,
                      1, MVT::v2i64, 2, 0, 2, 
                13, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESKEYGENASSIST128rr), 0,
                      1, MVT::v2i64, 2, 0, 2, 
                0, 
              0, 
            72, 
              OPC_CheckInteger, 126|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i32, 7, 0, 4, 5, 6, 7, 8, 9, 
              20, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERM2F128rr), 0,
                    1, MVT::v8i32, 3, 0, 1, 3, 
              0, 
            106, 
              OPC_CheckInteger, 35|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDSBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 36|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDSWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 37|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDUSBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 38|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDUSWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 83|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBSBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 84|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBSWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 85|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBUSBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 86|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBUSWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 57|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULHWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 58|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULHUWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 60|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULUDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULUDQrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 51|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMADDWDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 41|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PAVGBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 42|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PAVGWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 55|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMINUBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 54|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMINSWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 53|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMAXUBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 52|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMAXSWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            106, 
              OPC_CheckInteger, 62|128,4, 
              OPC_MoveParent,
              OPC_Scope, 42, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              13, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSADBWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 43|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 45|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 44|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 46|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 48|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 47|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 29|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PACKSSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PACKSSWBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 28|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PACKSSDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PACKSSDWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            62, 
              OPC_CheckInteger, 30|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 41, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PACKUSWBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PACKUSWBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            122, 
              OPC_CheckInteger, 18|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 23, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRM128MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::v16i8, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                23, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRM128MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::v16i8, MVT::i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              42, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPISTRM128REG), 0,
                      2, MVT::v16i8, MVT::i32, 3, 0, 1, 3, 
                15, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPISTRM128REG), 0,
                      2, MVT::v16i8, MVT::i32, 3, 0, 1, 3, 
                0, 
              0, 
            25|128,1, 
              OPC_CheckInteger, 10|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 88, 
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 31, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRM128MEM), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::v16i8, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                31, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitConvertToTarget, 5,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 4, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRM128MEM), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      2, MVT::v16i8, MVT::i32, 7, 0, 6, 7, 8, 9, 10, 11, 
                0, 
              55, 
                OPC_RecordChild3,
                OPC_RecordChild4,
                OPC_RecordChild5,
                OPC_MoveChild, 5,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 10,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPESTRM128REG), 0|OPFL_FlagInput,
                      2, MVT::v16i8, MVT::i32, 3, 0, 2, 5, 
                21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 4,
                  OPC_EmitCopyToReg, 1, X86::EAX,
                  OPC_EmitCopyToReg, 3, X86::EDX,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPCMPESTRM128REG), 0|OPFL_FlagInput,
                      2, MVT::v16i8, MVT::i32, 3, 0, 2, 5, 
                0, 
              0, 
            51, 
              OPC_CheckInteger, 31|128,6, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPS2PIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPS2PIrr), 0,
                    1, MVT::v2i32, 1, 0, 
              0, 
            53, 
              OPC_CheckInteger, 28|128,6, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPD2PIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPD2PIrr), 0,
                    1, MVT::v2i32, 1, 0, 
              0, 
            51, 
              OPC_CheckInteger, 37|128,6, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPS2PIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPS2PIrr), 0,
                    1, MVT::v2i32, 1, 0, 
              0, 
            53, 
              OPC_CheckInteger, 36|128,6, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPD2PIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPD2PIrr), 0,
                    1, MVT::v2i32, 1, 0, 
              0, 
            89, 
              OPC_CheckInteger, 112|128,4, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPS2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPS2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 110|128,4, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPD2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPD2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 121|128,4, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTPS2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPS2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 120|128,4, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTTPD2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPD2DQrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            49, 
              OPC_CheckInteger, 70|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i32, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPS2DQYrr), 0,
                    1, MVT::v8i32, 1, 0, 
              0, 
            49, 
              OPC_CheckInteger, 73|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTPD2DQYrr), 0,
                    1, MVT::v4i32, 1, 0, 
              0, 
            49, 
              OPC_CheckInteger, 74|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i32, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTPS2DQYrr), 0,
                    1, MVT::v8i32, 1, 0, 
              0, 
            94, 
              OPC_CheckInteger, 39|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 51|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            49, 
              OPC_CheckInteger, 68|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPD2DQYrr), 0,
                    1, MVT::v4i32, 1, 0, 
              0, 
            89, 
              OPC_CheckInteger, 67|128,6, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSBrr128), 0,
                      1, MVT::v16i8, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrr128), 0,
                      1, MVT::v16i8, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 71|128,6, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSWrr128), 0,
                      1, MVT::v8i16, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrr128), 0,
                      1, MVT::v8i16, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 69|128,6, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPABSDrr128), 0,
                      1, MVT::v4i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrr128), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            53, 
              OPC_CheckInteger, 66|128,6, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSBrr64), 0,
                    1, MVT::v8i8, 1, 0, 
              0, 
            53, 
              OPC_CheckInteger, 70|128,6, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSWrr64), 0,
                    1, MVT::v4i16, 1, 0, 
              0, 
            53, 
              OPC_CheckInteger, 68|128,6, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PABSDrr64), 0,
                    1, MVT::v2i32, 1, 0, 
              0, 
            94, 
              OPC_CheckInteger, 89|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFBrr128), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrr128), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 92|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSIGNBrr128), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 11,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrr128), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            56, 
              OPC_CheckInteger, 88|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrr64), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 91|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 11,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrm64), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 11,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSIGNBrr64), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            89, 
              OPC_CheckInteger, 98|128,5, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 22,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHMINPOSUWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHMINPOSUWrm128), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPHMINPOSUWrr128), 0,
                      1, MVT::v8i16, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PHMINPOSUWrr128), 0,
                      1, MVT::v8i16, 1, 0, 
                0, 
              0, 
            27|128,1, 
              OPC_CheckInteger, 103|128,5, 
              OPC_MoveParent,
              OPC_Scope, 59, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              59, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMINSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMINSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            27|128,1, 
              OPC_CheckInteger, 99|128,5, 
              OPC_MoveParent,
              OPC_Scope, 59, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              59, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              28, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMAXSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMAXSBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            104, 
              OPC_CheckInteger, 92|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 63, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_Scope, 20, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPBLENDVBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 7, 0, 4, 5, 6, 7, 8, 3, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitCopyToReg, 3, X86::XMM0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PBLENDVBrm0), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 4, 5, 6, 7, 8, 
                0, 
              32, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_Scope, 12, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPBLENDVBrr), 0,
                      1, MVT::v16i8, 3, 0, 1, 2, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitCopyToReg, 2, X86::XMM0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PBLENDVBrr0), 0|OPFL_FlagInput,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 57|128,3, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESIMCrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 12,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESIMCrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 13,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AESIMCrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            54, 
              OPC_CheckInteger, 75|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 73|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 74|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLQrr), 0,
                    1, MVT::v1i64, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 65|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 63|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 64|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLQrr), 0,
                    1, MVT::v1i64, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 70|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRAWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRAWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            54, 
              OPC_CheckInteger, 69|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRADrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRADrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            42, 
              OPC_CheckInteger, 43|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLWri), 0,
                    1, MVT::v8i16, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLWri), 0,
                    1, MVT::v8i16, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 41|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDri), 0,
                    1, MVT::v4i32, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDri), 0,
                    1, MVT::v4i32, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 42|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 55|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLWri), 0,
                    1, MVT::v8i16, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLWri), 0,
                    1, MVT::v8i16, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 53|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDri), 0,
                    1, MVT::v4i32, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDri), 0,
                    1, MVT::v4i32, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 54|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 47|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRAWri), 0,
                    1, MVT::v8i16, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRAWri), 0,
                    1, MVT::v8i16, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 46|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRADri), 0,
                    1, MVT::v4i32, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRADri), 0,
                    1, MVT::v4i32, 2, 0, 2, 
              0, 
            48, 
              OPC_CheckInteger, 37|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 16, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              16, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              0, 
            48, 
              OPC_CheckInteger, 49|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 16, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              16, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              0, 
            42, 
              OPC_CheckInteger, 38|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              0, 
            42, 
              OPC_CheckInteger, 50|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
                    1, MVT::v2i64, 2, 0, 2, 
              0, 
            25, 
              OPC_CheckInteger, 123|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_MoveChild, 3,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTF128rr), 0,
                  1, MVT::v8i32, 3, 0, 1, 3, 
            23, 
              OPC_CheckInteger, 120|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VEXTRACTF128rr), 0,
                  1, MVT::v4i32, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 78|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLWri), 0,
                  1, MVT::v4i16, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 76|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLDri), 0,
                  1, MVT::v2i32, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 77|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLQri), 0,
                  1, MVT::v1i64, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 68|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLWri), 0,
                  1, MVT::v4i16, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 66|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLDri), 0,
                  1, MVT::v2i32, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 67|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLQri), 0,
                  1, MVT::v1i64, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 72|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRAWri), 0,
                  1, MVT::v4i16, 2, 0, 2, 
            25, 
              OPC_CheckInteger, 71|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRADri), 0,
                  1, MVT::v2i32, 2, 0, 2, 
            0|128,1, 
              OPC_CheckInteger, 82|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 79, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                0, 
              0, 
            0|128,1, 
              OPC_CheckInteger, 81|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 79, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPDrri), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDPDrri), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                0, 
              0, 
            84, 
              OPC_CheckInteger, 62|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 53, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v32i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPSYrri), 0,
                    1, MVT::v8f32, 3, 0, 1, 3, 
              0, 
            84, 
              OPC_CheckInteger, 61|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 53, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v32i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDPDYrri), 0,
                    1, MVT::v4f64, 3, 0, 1, 3, 
              0, 
            82|128,1, 
              OPC_CheckInteger, 86|128,5, 
              OPC_MoveParent,
              OPC_Scope, 80, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              80, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 2, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 2, 4, 5, 6, 7, 8, 9, 
                0, 
              41, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DPPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                0, 
              0, 
            82|128,1, 
              OPC_CheckInteger, 85|128,5, 
              OPC_MoveParent,
              OPC_Scope, 80, 
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              80, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 2, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 2, 4, 5, 6, 7, 8, 9, 
                0, 
              41, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPDrri), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DPPDrri), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                0, 
              0, 
            84, 
              OPC_CheckInteger, 75|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 53, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v32i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDPPSYrri), 0,
                    1, MVT::v8f32, 3, 0, 1, 3, 
              0, 
            97, 
              OPC_CheckInteger, 109|128,4, 
              OPC_MoveParent,
              OPC_Scope, 64, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTDQ2PSrr), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTDQ2PSrr), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              0, 
            97, 
              OPC_CheckInteger, 108|128,4, 
              OPC_MoveParent,
              OPC_Scope, 64, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTDQ2PDrr), 0,
                      1, MVT::v2f64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTDQ2PDrr), 0,
                      1, MVT::v2f64, 1, 0, 
                0, 
              0, 
            118, 
              OPC_CheckInteger, 21|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 69, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCMPSSrr), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CMPSSrr), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                0, 
              0, 
            118, 
              OPC_CheckInteger, 101|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 69, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCMPSDrr), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CMPSDrr), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                0, 
              0, 
            120, 
              OPC_CheckInteger, 20|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                0, 
              0, 
            120, 
              OPC_CheckInteger, 100|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              40, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPDrri), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPDrri), 0,
                      1, MVT::v2f64, 3, 0, 1, 3, 
                0, 
              0, 
            76, 
              OPC_CheckInteger, 66|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 45, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPSYrri), 0,
                    1, MVT::v8f32, 3, 0, 1, 3, 
              0, 
            76, 
              OPC_CheckInteger, 65|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 45, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCMPPDYrri), 0,
                    1, MVT::v4f64, 3, 0, 1, 3, 
              0, 
            115, 
              OPC_CheckInteger, 124|128,5, 
              OPC_MoveParent,
              OPC_Scope, 69, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 3, 4, 5, 6, 7, 8, 
                21, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              38, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 13, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDPSr_Int), 0,
                      1, MVT::v4f32, 2, 0, 2, 
                13, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDPSr_Int), 0,
                      1, MVT::v4f32, 2, 0, 2, 
                0, 
              0, 
            115, 
              OPC_CheckInteger, 123|128,5, 
              OPC_MoveParent,
              OPC_Scope, 69, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 3, 4, 5, 6, 7, 8, 
                21, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              38, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_Scope, 13, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDPDr_Int), 0,
                      1, MVT::v2f64, 2, 0, 2, 
                13, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDPDr_Int), 0,
                      1, MVT::v2f64, 2, 0, 2, 
                0, 
              0, 
            73, 
              OPC_CheckInteger, 106|128,3, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDYPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 3, 4, 5, 6, 7, 8, 
              21, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDYPSr_Int), 0,
                    1, MVT::v8f32, 2, 0, 2, 
              0, 
            73, 
              OPC_CheckInteger, 105|128,3, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDYPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 3, 4, 5, 6, 7, 8, 
              21, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDYPDr_Int), 0,
                    1, MVT::v4f64, 2, 0, 2, 
              0, 
            112, 
              OPC_CheckInteger, 83|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_Scope, 20, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 3, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitCopyToReg, 3, X86::XMM0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDVPDrm0), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 4, 5, 6, 7, 8, 
                0, 
              32, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_Scope, 12, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPDrr), 0,
                      1, MVT::v2f64, 3, 0, 1, 2, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitCopyToReg, 2, X86::XMM0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDVPDrr0), 0|OPFL_FlagInput,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            112, 
              OPC_CheckInteger, 84|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 71, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_Scope, 20, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 3, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitCopyToReg, 3, X86::XMM0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDVPSrm0), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 4, 5, 6, 7, 8, 
                0, 
              32, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_Scope, 12, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPSrr), 0,
                      1, MVT::v4f32, 3, 0, 1, 2, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitCopyToReg, 2, X86::XMM0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BLENDVPSrr0), 0|OPFL_FlagInput,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            68, 
              OPC_CheckInteger, 63|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 45, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v32i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 7, 0, 4, 5, 6, 7, 8, 3, 
              14, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPDYrr), 0,
                    1, MVT::v4f64, 3, 0, 1, 2, 
              0, 
            68, 
              OPC_CheckInteger, 64|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 45, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v32i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 7, 0, 4, 5, 6, 7, 8, 3, 
              14, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VBLENDVPSYrr), 0,
                    1, MVT::v8f32, 3, 0, 1, 2, 
              0, 
            73, 
              OPC_CheckInteger, 1|128,4, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 3, 4, 5, 6, 7, 8, 
              21, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSri), 0,
                    1, MVT::v4f32, 2, 0, 2, 
              0, 
            73, 
              OPC_CheckInteger, 2|128,4, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSYmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 3, 4, 5, 6, 7, 8, 
              21, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSYri), 0,
                    1, MVT::v8f32, 2, 0, 2, 
              0, 
            73, 
              OPC_CheckInteger, 127|128,3, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 6, 3, 4, 5, 6, 7, 8, 
              21, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDri), 0,
                    1, MVT::v2f64, 2, 0, 2, 
              0, 
            73, 
              OPC_CheckInteger, 0|128,4, 
              OPC_MoveParent,
              OPC_Scope, 44, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 3, 4, 5, 6, 7, 8, 
              21, 
                OPC_RecordChild1,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDYri), 0,
                    1, MVT::v4f64, 2, 0, 2, 
              0, 
            72, 
              OPC_CheckInteger, 125|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 7, 0, 4, 5, 6, 7, 8, 9, 
              20, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERM2F128rr), 0,
                    1, MVT::v8f32, 3, 0, 1, 3, 
              0, 
            72, 
              OPC_CheckInteger, 124|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 43, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 7, 0, 4, 5, 6, 7, 8, 9, 
              20, 
                OPC_RecordChild2,
                OPC_RecordChild3,
                OPC_MoveChild, 3,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERM2F128rr), 0,
                    1, MVT::v4f64, 3, 0, 1, 3, 
              0, 
            92, 
              OPC_CheckInteger, 32|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 56, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 33|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SS64rr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SS64rr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            92, 
              OPC_CheckInteger, 117|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 56, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 118|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSI2SD64rr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSI2SD64rr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            51, 
              OPC_CheckInteger, 29|128,6, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPI2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPI2PDrr), 0,
                    1, MVT::v2f64, 1, 0, 
              0, 
            54, 
              OPC_CheckInteger, 30|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 33, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPI2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPI2PSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            92, 
              OPC_CheckInteger, 116|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 56, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSD2SSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSD2SSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            92, 
              OPC_CheckInteger, 119|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 56, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTSS2SDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTSS2SDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            87, 
              OPC_CheckInteger, 113|128,4, 
              OPC_MoveParent,
              OPC_Scope, 54, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPS2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPS2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPS2PDrr), 0,
                      1, MVT::v2f64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPS2PDrr), 0,
                      1, MVT::v2f64, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 111|128,4, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCVTPD2PSrr), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPD2PSrr), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              0, 
            49, 
              OPC_CheckInteger, 72|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTDQ2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTDQ2PSYrr), 0,
                    1, MVT::v8f32, 1, 0, 
              0, 
            49, 
              OPC_CheckInteger, 67|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPD2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPD2PSYrr), 0,
                    1, MVT::v4f32, 1, 0, 
              0, 
            49, 
              OPC_CheckInteger, 69|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPS2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTPS2PDYrr), 0,
                    1, MVT::v4f64, 1, 0, 
              0, 
            94, 
              OPC_CheckInteger, 43|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSrr_Int), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPSrr_Int), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 1|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDrr_Int), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPDrr_Int), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            56, 
              OPC_CheckInteger, 93|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSYrr_Int), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 92|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDYrr_Int), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            94, 
              OPC_CheckInteger, 45|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSrr_Int), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPSrr_Int), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 4|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDrr_Int), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPDrr_Int), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            56, 
              OPC_CheckInteger, 95|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSYrr_Int), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 94|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDYrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDYrr_Int), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            89, 
              OPC_CheckInteger, 55|128,6, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSr_Int), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPSr_Int), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              0, 
            89, 
              OPC_CheckInteger, 60|128,5, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDr_Int), 0,
                      1, MVT::v2f64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPDr_Int), 0,
                      1, MVT::v2f64, 1, 0, 
                0, 
              0, 
            53, 
              OPC_CheckInteger, 109|128,3, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSYr_Int), 0,
                    1, MVT::v8f32, 1, 0, 
              0, 
            53, 
              OPC_CheckInteger, 108|128,3, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDYr_Int), 0,
                    1, MVT::v4f64, 1, 0, 
              0, 
            53, 
              OPC_CheckInteger, 107|128,3, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSYr_Int), 0,
                    1, MVT::v8f32, 1, 0, 
              0, 
            89, 
              OPC_CheckInteger, 52|128,6, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSr_Int), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTPSr_Int), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              0, 
            53, 
              OPC_CheckInteger, 104|128,3, 
              OPC_MoveParent,
              OPC_Scope, 34, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSYm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              11, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSYr_Int), 0,
                    1, MVT::v8f32, 1, 0, 
              0, 
            89, 
              OPC_CheckInteger, 50|128,6, 
              OPC_MoveParent,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPPSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              25, 
                OPC_RecordChild1,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSr_Int), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPPSr_Int), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              0, 
            49, 
              OPC_CheckInteger, 71|128,3, 
              OPC_MoveParent,
              OPC_Scope, 32, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTDQ2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
              9, 
                OPC_RecordChild1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTDQ2PDYrr), 0,
                    1, MVT::v4f64, 1, 0, 
              0, 
            94, 
              OPC_CheckInteger, 73|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 72|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSUBPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            56, 
              OPC_CheckInteger, 60|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 59|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSUBPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            94, 
              OPC_CheckInteger, 75|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 74|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HADDPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 77|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              0, 
            94, 
              OPC_CheckInteger, 76|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 58, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild2,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::HSUBPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              0, 
            56, 
              OPC_CheckInteger, 77|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 76|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHADDPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 79|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 78|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VHSUBPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 5|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 6|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 3|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDrr), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            56, 
              OPC_CheckInteger, 4|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 35, 
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild2,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPERMILPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            95, 
              OPC_CheckInteger, 126|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_MoveChild, 3,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 24, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 8, 
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 7, 0, 3, 4, 5, 6, 7, 9, 
              24, 
                OPC_CheckPatternPredicate, 5,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 8, 
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 7, 0, 3, 4, 5, 6, 7, 9, 
              14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDSSr_Int), 0,
                    1, MVT::v4f32, 3, 0, 1, 3, 
              14, 
                OPC_CheckPatternPredicate, 5,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDSSr_Int), 0,
                    1, MVT::v4f32, 3, 0, 1, 3, 
              0, 
            95, 
              OPC_CheckInteger, 125|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_MoveChild, 3,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 24, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 8, 
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDSDm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 7, 0, 3, 4, 5, 6, 7, 9, 
              24, 
                OPC_CheckPatternPredicate, 5,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 8, 
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDSDm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 7, 0, 3, 4, 5, 6, 7, 9, 
              14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VROUNDSDr_Int), 0,
                    1, MVT::v2f64, 3, 0, 1, 3, 
              14, 
                OPC_CheckPatternPredicate, 5,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROUNDSDr_Int), 0,
                    1, MVT::v2f64, 3, 0, 1, 3, 
              0, 
            76, 
              OPC_CheckInteger, 19|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 98|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 49|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 10|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 59|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 65|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 40|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 124|128,4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 44|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 2|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 46|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSSrr_Int), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            76, 
              OPC_CheckInteger, 5|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_Scope, 21, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              21, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/1,
                OPC_EmitMergeInputChains, 1, 7, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 6, 0, 2, 3, 4, 5, 6, 
              11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              11, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSDrr_Int), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            71, 
              OPC_CheckInteger, 56|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 20, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 1, 2, 3, 4, 5, 
              20, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 1, 2, 3, 4, 5, 
              10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTSSr_Int), 0,
                    1, MVT::v4f32, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSSr_Int), 0,
                    1, MVT::v4f32, 1, 0, 
              0, 
            71, 
              OPC_CheckInteger, 61|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 20, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/2, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTSDm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 5, 1, 2, 3, 4, 5, 
              20, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/2, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSDm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 5, 1, 2, 3, 4, 5, 
              10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTSDr_Int), 0,
                    1, MVT::v2f64, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSDr_Int), 0,
                    1, MVT::v2f64, 1, 0, 
              0, 
            71, 
              OPC_CheckInteger, 53|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 20, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 1, 2, 3, 4, 5, 
              20, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 1, 2, 3, 4, 5, 
              10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTSSr_Int), 0,
                    1, MVT::v4f32, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTSSr_Int), 0,
                    1, MVT::v4f32, 1, 0, 
              0, 
            71, 
              OPC_CheckInteger, 51|128,6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_Scope, 20, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 1, 2, 3, 4, 5, 
              20, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/1, /*#*/0,
                OPC_EmitMergeInputChains, 1, 6, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPSSm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 1, 2, 3, 4, 5, 
              10, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPSSr_Int), 0,
                    1, MVT::v4f32, 1, 0, 
              10, 
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPSSr_Int), 0,
                    1, MVT::v4f32, 1, 0, 
              0, 
            45, 
              OPC_CheckInteger, 88|128,5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_MoveChild, 3,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrr), 0,
                    1, MVT::v4f32, 3, 0, 1, 3, 
              14, 
                OPC_CheckPatternPredicate, 5,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrr), 0,
                    1, MVT::v4f32, 3, 0, 1, 3, 
              0, 
            25, 
              OPC_CheckInteger, 121|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_MoveChild, 3,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTF128rr), 0,
                  1, MVT::v4f64, 3, 0, 1, 3, 
            25, 
              OPC_CheckInteger, 122|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_MoveChild, 3,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTF128rr), 0,
                  1, MVT::v8f32, 3, 0, 1, 3, 
            23, 
              OPC_CheckInteger, 118|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VEXTRACTF128rr), 0,
                  1, MVT::v2f64, 2, 0, 2, 
            23, 
              OPC_CheckInteger, 119|128,3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VEXTRACTF128rr), 0,
                  1, MVT::v4f32, 2, 0, 2, 
            0, 
          32|128,36,  TARGET_OPCODE(X86ISD::CMOV),
            OPC_Scope, 78|128,8, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 4, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 4, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 9, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 9, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 7, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 7, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 6, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 6, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 8, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 8, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 5, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 5, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 15, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 15, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 12, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 12, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 14, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 14, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 11, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 11, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 13, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 13, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 10, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 0, 4, 5, 6, 7, 8, 
              33, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 10, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckPatternPredicate, 15,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 4, 5, 6, 7, 8, 
              0, 
            45|128,8, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 4, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 4, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 9, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 9, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 7, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 7, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 6, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 6, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 8, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 8, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 5, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 5, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 14, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 14, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 11, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 11, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 15, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 15, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 12, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 12, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 13, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 13, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 10, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i16, 6, 2, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_CheckInteger, 10, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i32, 6, 2, 4, 5, 6, 7, 8, 
              0, 
            69|128,3, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_MoveParent,
              OPC_MoveChild, 2,
              OPC_Scope, 26, 
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 4, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 9, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 7, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 6, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 8, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 5, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 15, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 12, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 14, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 11, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 13, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 10, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 0, 4, 5, 6, 7, 8, 
              0, 
            69|128,3, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveChild, 2,
              OPC_Scope, 26, 
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 4, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 9, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 7, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 6, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 8, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 5, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 14, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 11, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 15, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 12, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 13, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              26, 
                OPC_CheckInteger, 10, 
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EFLAGS,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    1, MVT::i64, 6, 2, 4, 5, 6, 7, 8, 
              0, 
            15|128,12, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 84|128,6, 
                OPC_MoveChild, 2,
                OPC_Scope, 52, 
                  OPC_CheckInteger, 2, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 1, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVAE64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 4, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 9, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 3, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVA64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 7, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVL64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 6, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVGE64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 8, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVLE64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 5, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVG64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 15, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVS64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 12, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNS64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 14, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 11, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 13, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVO64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                52, 
                  OPC_CheckInteger, 10, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::i16,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO16rr), 0|OPFL_FlagInput,
                        1, MVT::i16, 2, 0, 1, 
                  14,  MVT::i32,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO32rr), 0|OPFL_FlagInput,
                        1, MVT::i32, 2, 0, 1, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNO64rr), 0|OPFL_FlagInput,
                        1, MVT::i64, 2, 0, 1, 
                  0, 
                0, 
              68, 
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_SwitchType , 16,  MVT::i8,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_GR8), 0|OPFL_FlagInput,
                      2, MVT::i8, MVT::i32, 3, 0, 1, 4, 
                18,  MVT::i32,
                  OPC_CheckPatternPredicate, 16,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_GR32), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 3, 0, 1, 4, 
                18,  MVT::i16,
                  OPC_CheckPatternPredicate, 16,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_GR16), 0|OPFL_FlagInput,
                      2, MVT::i16, MVT::i32, 3, 0, 1, 4, 
                0, 
              60|128,3, 
                OPC_MoveChild, 2,
                OPC_Scope, 54, 
                  OPC_CheckInteger, 2, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVB_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 3, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVBE_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 4, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVE_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 14, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVP_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 1, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNB_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNB_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNB_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNBE_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNBE_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNBE_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 9, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNE_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                54, 
                  OPC_CheckInteger, 11, 
                  OPC_MoveParent,
                  OPC_RecordChild3,
                  OPC_SwitchType , 14,  MVT::f32,
                    OPC_CheckPatternPredicate, 17,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP_Fp32), 0|OPFL_FlagInput,
                        1, MVT::f32, 2, 0, 1, 
                  14,  MVT::f64,
                    OPC_CheckPatternPredicate, 18,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP_Fp64), 0|OPFL_FlagInput,
                        1, MVT::f64, 2, 0, 1, 
                  14,  MVT::f80,
                    OPC_CheckPatternPredicate, 15,
                    OPC_EmitCopyToReg, 2, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOVNP_Fp80), 0|OPFL_FlagInput,
                        1, MVT::f80, 2, 0, 1, 
                  0, 
                0, 
              48|128,1, 
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_RecordChild3,
                OPC_SwitchType , 37,  MVT::f32,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 16,
                    OPC_EmitConvertToTarget, 2,
                    OPC_EmitCopyToReg, 3, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_RFP32), 0|OPFL_FlagInput,
                        2, MVT::f32, MVT::i32, 3, 0, 1, 4, 
                  15, 
                    OPC_EmitConvertToTarget, 2,
                    OPC_EmitCopyToReg, 3, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_FR32), 0|OPFL_FlagInput,
                        1, MVT::f32, 3, 0, 1, 4, 
                  0, 
                37,  MVT::f64,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 16,
                    OPC_EmitConvertToTarget, 2,
                    OPC_EmitCopyToReg, 3, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_RFP64), 0|OPFL_FlagInput,
                        2, MVT::f64, MVT::i32, 3, 0, 1, 4, 
                  15, 
                    OPC_EmitConvertToTarget, 2,
                    OPC_EmitCopyToReg, 3, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_FR64), 0|OPFL_FlagInput,
                        1, MVT::f64, 3, 0, 1, 4, 
                  0, 
                18,  MVT::f80,
                  OPC_CheckPatternPredicate, 16,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_RFP80), 0|OPFL_FlagInput,
                      2, MVT::f80, MVT::i32, 3, 0, 1, 4, 
                15,  MVT::v2i64,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_V2I64), 0|OPFL_FlagInput,
                      1, MVT::v2i64, 3, 0, 1, 4, 
                15,  MVT::v1i64,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_V1I64), 0|OPFL_FlagInput,
                      1, MVT::v1i64, 3, 0, 1, 4, 
                15,  MVT::v4f32,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_V4F32), 0|OPFL_FlagInput,
                      1, MVT::v4f32, 3, 0, 1, 4, 
                15,  MVT::v2f64,
                  OPC_EmitConvertToTarget, 2,
                  OPC_EmitCopyToReg, 3, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CMOV_V2F64), 0|OPFL_FlagInput,
                      1, MVT::v2f64, 3, 0, 1, 4, 
                0, 
              0, 
            0, 
          3|128,4,  TARGET_OPCODE(X86ISD::SMUL),
            OPC_Scope, 40|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_Scope, 71, 
                OPC_CheckPredicate, 9,
                OPC_MoveParent,
                OPC_SwitchType , 20,  MVT::i16,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                20,  MVT::i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                20,  MVT::i64,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              25, 
                OPC_CheckPredicate, 10,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rmi32), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              47, 
                OPC_MoveParent,
                OPC_SwitchType , 20,  MVT::i16,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                20,  MVT::i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              0, 
            77, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            77, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            57|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 31, 
                OPC_MoveChild, 1,
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_SwitchType , 10,  MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 0, 
                10,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 0, 
                0, 
              20|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 105, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 9,
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rri8), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rri8), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    12,  MVT::i64,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rri8), 0,
                          2, MVT::i64, MVT::i32, 2, 0, 2, 
                    0, 
                  17, 
                    OPC_CheckPredicate, 10,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rri32), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  31, 
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rri), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rri), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    0, 
                  0, 
                12, 
                  OPC_CheckType, MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rr), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            0, 
          101|128,1,  TARGET_OPCODE(X86ISD::BT),
            OPC_Scope, 114, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 31,  MVT::i16,
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckPredicate, 9,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BT16mi8), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              31,  MVT::i32,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckPredicate, 9,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BT32mi8), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              33,  MVT::i64,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckPredicate, 9,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BT64mi8), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              0, 
            111, 
              OPC_RecordChild0,
              OPC_Scope, 35, 
                OPC_CheckChild0Type, MVT::i16,
                OPC_RecordChild1,
                OPC_Scope, 19, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BT16ri8), 0,
                      1, MVT::i32, 2, 0, 2, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BT16rr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              35, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_RecordChild1,
                OPC_Scope, 19, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BT32ri8), 0,
                      1, MVT::i32, 2, 0, 2, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BT32rr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              35, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_RecordChild1,
                OPC_Scope, 19, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BT64ri8), 0,
                      1, MVT::i32, 2, 0, 2, 
                9, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::BT64rr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            0, 
          124|128,7,  TARGET_OPCODE(ISD::MUL),
            OPC_Scope, 87|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 34, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckPredicate, 9,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              34, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckPredicate, 9,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              65, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 25, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rmi8), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                25, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rmi32), 0|OPFL_Chain|OPFL_MemRefs,
                      2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              32, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              32, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 8, 
              0, 
            116, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 27, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitCopyToReg, 0, X86::AL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL8m), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 5, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            90, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 24, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            60, 
              OPC_RecordNode,
              OPC_SwitchType , 38,  MVT::i32,
                OPC_Scope, 17, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                17, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                0, 
              15,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/4, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                    1, MVT::i64, 5, 1, 2, 3, 4, 5, 
              0, 
            55|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 35|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 105, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 9,
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rri8), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rri8), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    12,  MVT::i64,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rri8), 0,
                          2, MVT::i64, MVT::i32, 2, 0, 2, 
                    0, 
                  17, 
                    OPC_CheckPredicate, 10,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rri32), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  31, 
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rri), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rri), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    0, 
                  0, 
                14, 
                  OPC_CheckType, MVT::i8,
                  OPC_EmitCopyToReg, 0, X86::AL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL8r), 0|OPFL_FlagInput,
                      2, MVT::i8, MVT::i32, 1, 1, 
                12, 
                  OPC_CheckType, MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::IMUL64rr), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              13|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_SwitchType , 94,  MVT::v2i64,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 42,  MVT::v8i16,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  42,  MVT::v4i32,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 5,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                23,  MVT::v1i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i16,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            15|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_SwitchType , 95,  MVT::v2i64,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 42,  MVT::v8i16,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                42,  MVT::v4i32,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              24,  MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::v4i16,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            73, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v8i16,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULLWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULLWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              26,  MVT::v4i32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPMULLDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PMULLDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              11,  MVT::v4i16,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PMULLWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            0, 
          33|128,12,  TARGET_OPCODE(ISD::LOAD),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_Scope, 102|128,5, 
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 108, 
                OPC_CheckPredicate, 3,
                OPC_SwitchType , 40,  MVT::i32,
                  OPC_Scope, 18, 
                    OPC_CheckPredicate, 23,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::GS_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPredicate, 24,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::FS_MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                40,  MVT::i64,
                  OPC_Scope, 18, 
                    OPC_CheckPredicate, 23,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64GSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPredicate, 24,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64FSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                18,  MVT::i8,
                  OPC_CheckPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i8, 5, 2, 3, 4, 5, 6, 
                0, 
              20, 
                OPC_CheckPredicate, 7,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i16, 5, 2, 3, 4, 5, 6, 
              20, 
                OPC_CheckPredicate, 8,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 5, 2, 3, 4, 5, 6, 
              66, 
                OPC_CheckPredicate, 25,
                OPC_Scope, 40, 
                  OPC_CheckPredicate, 26,
                  OPC_SwitchType , 16,  MVT::i16,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                20, 
                  OPC_CheckPredicate, 27,
                  OPC_CheckType, MVT::i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                0, 
              125, 
                OPC_CheckPredicate, 28,
                OPC_Scope, 40, 
                  OPC_CheckPredicate, 29,
                  OPC_SwitchType , 16,  MVT::i16,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                20, 
                  OPC_CheckPredicate, 30,
                  OPC_CheckType, MVT::i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                58, 
                  OPC_CheckPredicate, 31,
                  OPC_SwitchType , 16,  MVT::i8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i8, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i16,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              125, 
                OPC_CheckPredicate, 32,
                OPC_Scope, 58, 
                  OPC_CheckPredicate, 33,
                  OPC_SwitchType , 16,  MVT::i8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i8, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i16,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                40, 
                  OPC_CheckPredicate, 34,
                  OPC_SwitchType , 16,  MVT::i16,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i16, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                20, 
                  OPC_CheckPredicate, 35,
                  OPC_CheckType, MVT::i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                0, 
              20, 
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i64, 5, 2, 3, 4, 5, 6, 
              63, 
                OPC_CheckPredicate, 25,
                OPC_CheckType, MVT::i64,
                OPC_Scope, 18, 
                  OPC_CheckPredicate, 26,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 27,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 36,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                0, 
              82, 
                OPC_CheckPredicate, 28,
                OPC_CheckType, MVT::i64,
                OPC_Scope, 18, 
                  OPC_CheckPredicate, 29,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 30,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 37,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm32), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 31,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                0, 
              98, 
                OPC_CheckPredicate, 32,
                OPC_CheckType, MVT::i64,
                OPC_Scope, 18, 
                  OPC_CheckPredicate, 33,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 34,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPredicate, 35,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                34, 
                  OPC_CheckPredicate, 38,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitInteger, MVT::i64, 0, 
                  OPC_EmitNode, TARGET_OPCODE(X86::MOV32rm), 0|OPFL_Chain,
                      1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i64, 3, 7, 8, 9, 
                0, 
              0, 
            30, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::Wrapper),
              OPC_RecordChild0,
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetGlobalTLSAddress),
              OPC_MoveParent,
              OPC_CheckType, MVT::i64,
              OPC_MoveParent,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::i64,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::i64, 1, 1, 
            20|128,6, 
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 105, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_SwitchType , 59,  MVT::f64,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                  0, 
                18,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                16,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp80m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f80, 5, 2, 3, 4, 5, 6, 
                0, 
              68, 
                OPC_CheckPredicate, 32,
                OPC_SwitchType , 20,  MVT::f64,
                  OPC_CheckPredicate, 39,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                40,  MVT::f80,
                  OPC_Scope, 18, 
                    OPC_CheckPredicate, 40,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPredicate, 39,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              46, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::f32,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                0, 
              24, 
                OPC_CheckPredicate, 32,
                OPC_CheckPredicate, 39,
                OPC_CheckType, MVT::f64,
                OPC_CheckPatternPredicate, 19,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              46, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 41,
                OPC_SwitchType , 18,  MVT::f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                18,  MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                0, 
              35, 
                OPC_CheckPredicate, 32,
                OPC_CheckPredicate, 39,
                OPC_CheckType, MVT::f64,
                OPC_CheckPatternPredicate, 20,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                OPC_EmitNode, TARGET_OPCODE(X86::CVTSS2SDrr), 0|OPFL_MemRefs,
                    1, MVT::f64, 1, 7, 
                OPC_CompleteMatch, 1, 8, 

              67|128,3, 
                OPC_CheckPredicate, 3,
                OPC_SwitchType , 85,  MVT::v4i32,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  61, 
                    OPC_Scope, 18, 
                      OPC_CheckPatternPredicate, 1,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                    20, 
                      OPC_CheckPredicate, 41,
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                    18, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                    0, 
                  0, 
                82,  MVT::v2i64,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                18,  MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v1i64, 5, 2, 3, 4, 5, 6, 
                82,  MVT::v4f32,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  0, 
                82,  MVT::v2f64,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                  20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVAPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                  0, 
                42,  MVT::v8f32,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
                  0, 
                42,  MVT::v4f64,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 41,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVAPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              0, 
            0, 
          4|128,1,  TARGET_OPCODE(X86ISD::BSF),
            OPC_Scope, 86, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 22,  MVT::i16,
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSF16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 5, 2, 3, 4, 5, 6, 
              22,  MVT::i32,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSF32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 5, 2, 3, 4, 5, 6, 
              24,  MVT::i64,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSF64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 5, 2, 3, 4, 5, 6, 
              0, 
            42, 
              OPC_RecordChild0,
              OPC_SwitchType , 11,  MVT::i16,
                OPC_CheckChild0Type, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSF16rr), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              11,  MVT::i32,
                OPC_CheckChild0Type, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSF32rr), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              11,  MVT::i64,
                OPC_CheckChild0Type, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSF64rr), 0,
                    2, MVT::i64, MVT::i32, 1, 0, 
              0, 
            0, 
          4|128,1,  TARGET_OPCODE(X86ISD::BSR),
            OPC_Scope, 86, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 22,  MVT::i16,
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 5, 2, 3, 4, 5, 6, 
              22,  MVT::i32,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 5, 2, 3, 4, 5, 6, 
              24,  MVT::i64,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 5, 2, 3, 4, 5, 6, 
              0, 
            42, 
              OPC_RecordChild0,
              OPC_SwitchType , 11,  MVT::i16,
                OPC_CheckChild0Type, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSR16rr), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              11,  MVT::i32,
                OPC_CheckChild0Type, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSR32rr), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              11,  MVT::i64,
                OPC_CheckChild0Type, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::BSR64rr), 0,
                    2, MVT::i64, MVT::i32, 1, 0, 
              0, 
            0, 
          25|128,3,  TARGET_OPCODE(X86ISD::AND),
            OPC_Scope, 112, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            115, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            48|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          120|128,2,  TARGET_OPCODE(X86ISD::OR),
            OPC_Scope, 97, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            97, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            48|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          120|128,2,  TARGET_OPCODE(X86ISD::XOR),
            OPC_Scope, 97, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            97, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            48|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          120|128,2,  TARGET_OPCODE(X86ISD::ADD),
            OPC_Scope, 97, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            97, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            48|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          121|128,2,  TARGET_OPCODE(ISD::ADDE),
            OPC_CaptureFlagInput,
            OPC_Scope, 97, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            97, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            48|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16ri8), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32ri8), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64ri8), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64ri32), 0|OPFL_FlagInput|OPFL_FlagOutput,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8ri), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16ri), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32ri), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC8rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC16rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC32rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADC64rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          21|128,2,  TARGET_OPCODE(X86ISD::SUB),
            OPC_RecordChild0,
            OPC_Scope, 96, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            47|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          22|128,2,  TARGET_OPCODE(ISD::SUBE),
            OPC_CaptureFlagInput,
            OPC_RecordChild0,
            OPC_Scope, 96, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB8rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64rm), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            47|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16ri8), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32ri8), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64ri8), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64ri32), 0|OPFL_FlagInput|OPFL_FlagOutput,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB8ri), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16ri), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32ri), 0|OPFL_FlagInput|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB8rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB16rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB32rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SBB64rr), 0|OPFL_FlagInput|OPFL_FlagOutput,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          97|128,1,  TARGET_OPCODE(ISD::ADDC),
            OPC_Scope, 57, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rm), 0|OPFL_Chain|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rm), 0|OPFL_Chain|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            57, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rm), 0|OPFL_Chain|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rm), 0|OPFL_Chain|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            106, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 75, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 33, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri8), 0|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri8), 0|OPFL_FlagOutput,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0|OPFL_FlagOutput,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                15, 
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0|OPFL_FlagOutput,
                      2, MVT::i32, MVT::i32, 2, 0, 2, 
                0, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rr), 0|OPFL_FlagOutput,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rr), 0|OPFL_FlagOutput,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          36|128,1,  TARGET_OPCODE(ISD::SUBC),
            OPC_RecordChild0,
            OPC_Scope, 56, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32rm), 0|OPFL_Chain|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              18,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64rm), 0|OPFL_Chain|OPFL_FlagOutput|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            103, 
              OPC_RecordChild1,
              OPC_Scope, 73, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 33, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri8), 0|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri8), 0|OPFL_FlagOutput,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                31, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri), 0|OPFL_FlagOutput,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri32), 0|OPFL_FlagOutput,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32rr), 0|OPFL_FlagOutput,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64rr), 0|OPFL_FlagOutput,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          26|128,14,  TARGET_OPCODE(ISD::ADD),
            OPC_Scope, 114, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            117, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            60, 
              OPC_RecordNode,
              OPC_SwitchType , 38,  MVT::i32,
                OPC_Scope, 17, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                17, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                0, 
              15,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/4, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                    1, MVT::i64, 5, 1, 2, 3, 4, 5, 
              0, 
            113, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::Wrapper),
              OPC_RecordChild0,
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 14,  TARGET_OPCODE(ISD::TargetConstantPool),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              14,  TARGET_OPCODE(ISD::TargetJumpTable),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              14,  TARGET_OPCODE(ISD::TargetGlobalAddress),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              14,  TARGET_OPCODE(ISD::TargetExternalSymbol),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              14,  TARGET_OPCODE(ISD::TargetBlockAddress),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              14,  TARGET_OPCODE(ISD::TargetGlobalTLSAddress),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            118, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::Wrapper),
              OPC_RecordChild0,
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 15,  TARGET_OPCODE(ISD::TargetGlobalTLSAddress),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0,
                    2, MVT::i64, MVT::i32, 2, 1, 0, 
              15,  TARGET_OPCODE(ISD::TargetConstantPool),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
              15,  TARGET_OPCODE(ISD::TargetJumpTable),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
              15,  TARGET_OPCODE(ISD::TargetGlobalAddress),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
              15,  TARGET_OPCODE(ISD::TargetExternalSymbol),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
              15,  TARGET_OPCODE(ISD::TargetBlockAddress),
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                    2, MVT::i32, MVT::i32, 2, 1, 0, 
              0, 
            66|128,5, 
              OPC_RecordChild0,
              OPC_Scope, 36|128,2, 
                OPC_MoveChild, 1,
                OPC_Scope, 83, 
                  OPC_CheckInteger, 1, 
                  OPC_MoveParent,
                  OPC_SwitchType , 26,  MVT::i16,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 3,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::INC16r), 0,
                          2, MVT::i16, MVT::i32, 1, 0, 
                    11, 
                      OPC_CheckPatternPredicate, 4,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64_16r), 0,
                          2, MVT::i16, MVT::i32, 1, 0, 
                    0, 
                  26,  MVT::i32,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 3,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::INC32r), 0,
                          2, MVT::i32, MVT::i32, 1, 0, 
                    11, 
                      OPC_CheckPatternPredicate, 4,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64_32r), 0,
                          2, MVT::i32, MVT::i32, 1, 0, 
                    0, 
                  9,  MVT::i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC8r), 0,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  9,  MVT::i64,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64r), 0,
                        2, MVT::i64, MVT::i32, 1, 0, 
                  0, 
                92, 
                  OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                  OPC_MoveParent,
                  OPC_SwitchType , 26,  MVT::i16,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 3,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC16r), 0,
                          2, MVT::i16, MVT::i32, 1, 0, 
                    11, 
                      OPC_CheckPatternPredicate, 4,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64_16r), 0,
                          2, MVT::i16, MVT::i32, 1, 0, 
                    0, 
                  26,  MVT::i32,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 3,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC32r), 0,
                          2, MVT::i32, MVT::i32, 1, 0, 
                    11, 
                      OPC_CheckPatternPredicate, 4,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64_32r), 0,
                          2, MVT::i32, MVT::i32, 1, 0, 
                    0, 
                  9,  MVT::i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC8r), 0,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  9,  MVT::i64,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64r), 0,
                        2, MVT::i64, MVT::i32, 1, 0, 
                  0, 
                78, 
                  OPC_CheckInteger, 0|128,1, 
                  OPC_MoveParent,
                  OPC_SwitchType , 22,  MVT::i16,
                    OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 1, 
                  22,  MVT::i32,
                    OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 1, 
                  22,  MVT::i64,
                    OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 1, 
                  0, 
                31, 
                  OPC_CheckInteger, 0|128,0|128,0|128,0|128,8, 
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              47|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 119, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 9,
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri8), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri8), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    12,  MVT::i64,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri8), 0,
                          2, MVT::i64, MVT::i32, 2, 0, 2, 
                    0, 
                  17, 
                    OPC_CheckPredicate, 10,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  45, 
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i8,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8ri), 0,
                          2, MVT::i8, MVT::i32, 2, 0, 2, 
                    12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    0, 
                  0, 
                12, 
                  OPC_CheckType, MVT::i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rr), 0,
                      2, MVT::i8, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rr), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              102|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_SwitchType , 10|128,1,  MVT::v2i64,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 42,  MVT::v16i8,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  42,  MVT::v8i16,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  42,  MVT::v4i32,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                67,  MVT::v1i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::v8i8,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
                  19,  MVT::v4i16,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
                  19,  MVT::v2i32,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              0, 
            104|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_SwitchType , 11|128,1,  MVT::v2i64,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 42,  MVT::v16i8,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                42,  MVT::v8i16,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                42,  MVT::v4i32,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              68,  MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::v8i8,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::v4i16,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::v2i32,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            87, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_Scope, 47, 
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              22, 
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            88, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_Scope, 48, 
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::v2i64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              23, 
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            40|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v16i8,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDBrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                0, 
              26,  MVT::v8i16,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDWrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                0, 
              26,  MVT::v4i32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDDrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              26,  MVT::v2i64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPADDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PADDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              11,  MVT::v8i8,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              11,  MVT::v4i16,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              11,  MVT::v2i32,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              11,  MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PADDQrr), 0,
                    1, MVT::v1i64, 2, 0, 1, 
              0, 
            0, 
          5|128,7,  TARGET_OPCODE(ISD::SUB),
            OPC_Scope, 114, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            60, 
              OPC_RecordNode,
              OPC_SwitchType , 38,  MVT::i32,
                OPC_Scope, 17, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                17, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                0, 
              15,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/4, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                    1, MVT::i64, 5, 1, 2, 3, 4, 5, 
              0, 
            52, 
              OPC_MoveChild, 0,
              OPC_CheckInteger, 0, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG8r), 0,
                    2, MVT::i8, MVT::i32, 1, 0, 
              9,  MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG16r), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              9,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG32r), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              9,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::NEG64r), 0,
                    2, MVT::i64, MVT::i32, 1, 0, 
              0, 
            28|128,5, 
              OPC_RecordChild0,
              OPC_Scope, 47|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 119, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 9,
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16ri8), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri8), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    12,  MVT::i64,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri8), 0,
                          2, MVT::i64, MVT::i32, 2, 0, 2, 
                    0, 
                  17, 
                    OPC_CheckPredicate, 10,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64ri32), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  45, 
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i8,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8ri), 0,
                          2, MVT::i8, MVT::i32, 2, 0, 2, 
                    12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16ri), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32ri), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    0, 
                  0, 
                12, 
                  OPC_CheckType, MVT::i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB8rr), 0,
                      2, MVT::i8, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB64rr), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              61|128,2, 
                OPC_MoveChild, 1,
                OPC_SwitchOpcode , 97|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_SwitchType , 10|128,1,  MVT::v2i64,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_SwitchType , 42,  MVT::v16i8,
                      OPC_Scope, 19, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                      19, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                      0, 
                    42,  MVT::v8i16,
                      OPC_Scope, 19, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                      19, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                      0, 
                    42,  MVT::v4i32,
                      OPC_Scope, 19, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                      19, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                      0, 
                    0, 
                  67,  MVT::v1i64,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_SwitchType , 19,  MVT::v8i8,
                      OPC_CheckPatternPredicate, 9,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
                    19,  MVT::v4i16,
                      OPC_CheckPatternPredicate, 9,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
                    19,  MVT::v2i32,
                      OPC_CheckPatternPredicate, 9,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                81,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              39|128,1, 
                OPC_RecordChild1,
                OPC_SwitchType , 26,  MVT::v16i8,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBBrr), 0,
                        1, MVT::v16i8, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBBrr), 0,
                        1, MVT::v16i8, 2, 0, 1, 
                  0, 
                26,  MVT::v8i16,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBWrr), 0,
                        1, MVT::v8i16, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBWrr), 0,
                        1, MVT::v8i16, 2, 0, 1, 
                  0, 
                26,  MVT::v4i32,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBDrr), 0,
                        1, MVT::v4i32, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBDrr), 0,
                        1, MVT::v4i32, 2, 0, 1, 
                  0, 
                26,  MVT::v2i64,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSUBQrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSUBQrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  0, 
                11,  MVT::v8i8,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBBrr), 0,
                      1, MVT::v8i8, 2, 0, 1, 
                11,  MVT::v4i16,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBWrr), 0,
                      1, MVT::v4i16, 2, 0, 1, 
                11,  MVT::v2i32,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBDrr), 0,
                      1, MVT::v2i32, 2, 0, 1, 
                11,  MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSUBQrr), 0,
                      1, MVT::v1i64, 2, 0, 1, 
                0, 
              0, 
            0, 
          35|128,8,  TARGET_OPCODE(ISD::OR),
            OPC_Scope, 114, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            117, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            60, 
              OPC_RecordNode,
              OPC_SwitchType , 38,  MVT::i32,
                OPC_Scope, 17, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                17, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                0, 
              15,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/4, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                    1, MVT::i64, 5, 1, 2, 3, 4, 5, 
              0, 
            73|128,2, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 111, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 49, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 42,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                19, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckPredicate, 42,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                33, 
                  OPC_MoveParent,
                  OPC_CheckPredicate, 42,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              40, 
                OPC_CheckPredicate, 42,
                OPC_SwitchType , 10,  MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 1, 
                10,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 1, 
                10,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rr), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              119, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::OR64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            36|128,1, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 85,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_Scope, 40, 
                  OPC_CheckChild0Type, MVT::v4f32,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                40, 
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              69,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_Scope, 24, 
                  OPC_CheckChild0Type, MVT::v4f32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                24, 
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            87, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_Scope, 47, 
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              22, 
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            119, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 83,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_Scope, 48, 
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                23, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              26,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ORPDrr), 0,
                    1, MVT::v2i64, 2, 0, 1, 
              0, 
            57, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 38,  MVT::v2i64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ORPSrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPORrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PORrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              11,  MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PORrr), 0,
                    1, MVT::v1i64, 2, 0, 1, 
              0, 
            0, 
          10|128,7,  TARGET_OPCODE(ISD::XOR),
            OPC_Scope, 114, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            117, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            109|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1, 
                OPC_MoveParent,
                OPC_SwitchType , 8,  MVT::i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT8r), 0,
                      1, MVT::i8, 1, 0, 
                8,  MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT16r), 0,
                      1, MVT::i16, 1, 0, 
                8,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT32r), 0,
                      1, MVT::i32, 1, 0, 
                8,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::NOT64r), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              47|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 119, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 9,
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16ri8), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32ri8), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    12,  MVT::i64,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64ri8), 0,
                          2, MVT::i64, MVT::i32, 2, 0, 2, 
                    0, 
                  17, 
                    OPC_CheckPredicate, 10,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64ri32), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  45, 
                    OPC_MoveParent,
                    OPC_SwitchType , 12,  MVT::i8,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8ri), 0,
                          2, MVT::i8, MVT::i32, 2, 0, 2, 
                    12,  MVT::i16,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16ri), 0,
                          2, MVT::i16, MVT::i32, 2, 0, 2, 
                    12,  MVT::i32,
                      OPC_EmitConvertToTarget, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32ri), 0,
                          2, MVT::i32, MVT::i32, 2, 0, 2, 
                    0, 
                  0, 
                12, 
                  OPC_CheckType, MVT::i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR8rr), 0,
                      2, MVT::i8, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR16rr), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR32rr), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 1, 
                12, 
                  OPC_CheckType, MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XOR64rr), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            36|128,1, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 85,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_Scope, 40, 
                  OPC_CheckChild0Type, MVT::v4f32,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                40, 
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              69,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_Scope, 24, 
                  OPC_CheckChild0Type, MVT::v4f32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                24, 
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            87, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_Scope, 47, 
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              22, 
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            119, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 83,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_Scope, 48, 
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                23, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              26,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::XORPDrr), 0,
                    1, MVT::v2i64, 2, 0, 1, 
              0, 
            57, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 38,  MVT::v2i64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::XORPSrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPXORrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PXORrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              11,  MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PXORrr), 0,
                    1, MVT::v1i64, 2, 0, 1, 
              0, 
            0, 
          97|128,30,  TARGET_OPCODE(ISD::AND),
            OPC_Scope, 114, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              23, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              25, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            117, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 7,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              24, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              26, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rm), 0|OPFL_Chain|OPFL_MemRefs,
                    2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            17|128,1, 
              OPC_CheckAndImm, 127|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SRL),
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckInteger, 8, 
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckPredicate, 13,
              OPC_MoveParent,
              OPC_SwitchType , 72,  MVT::i32,
                OPC_Scope, 34, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i32, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                      1, MVT::i32, 1, 4, 
                34, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i32, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                      1, MVT::i32, 1, 4, 
                0, 
              48,  MVT::i64,
                OPC_EmitInteger, MVT::i64, 0, 
                OPC_EmitInteger, MVT::i32, X86::GR64_ABCDRegClassID,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::i64, 2, 0, 2, 
                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 3, 4, 
                OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                    1, MVT::i32, 1, 5, 
                OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
                    1, MVT::i64, 3, 1, 6, 7, 
              0, 
            27, 
              OPC_CheckAndImm, 127|128,127|128,3, 
              OPC_RecordChild0,
              OPC_CheckType, MVT::i32,
              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                  1, MVT::i16, 2, 0, 1, 
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr16), 0,
                  1, MVT::i32, 1, 2, 
            29, 
              OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15, 
              OPC_RecordChild0,
              OPC_CheckType, MVT::i64,
              OPC_EmitInteger, MVT::i32, X86::sub_32bit,
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                  1, MVT::i32, 2, 0, 1, 
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr32), 0,
                  1, MVT::i64, 1, 2, 
            27, 
              OPC_CheckAndImm, 127|128,127|128,3, 
              OPC_RecordChild0,
              OPC_CheckType, MVT::i64,
              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                  1, MVT::i16, 2, 0, 1, 
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr16), 0,
                  1, MVT::i64, 1, 2, 
            24|128,1, 
              OPC_CheckAndImm, 127|128,1, 
              OPC_RecordChild0,
              OPC_SwitchType , 20,  MVT::i64,
                OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr8), 0,
                    1, MVT::i64, 1, 2, 
              60,  MVT::i32,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                      1, MVT::i32, 1, 2, 
                34, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i32, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                      1, MVT::i32, 1, 4, 
                0, 
              60,  MVT::i16,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
                      1, MVT::i16, 1, 2, 
                34, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
                      1, MVT::i16, 1, 4, 
                0, 
              0, 
            98|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 40|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 9,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri8), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri8), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri8), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                17, 
                  OPC_CheckPredicate, 10,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64ri32), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                48, 
                  OPC_CheckPredicate, 43,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitInteger, MVT::i64, 0, 
                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i32, 2, 0, 3, 
                  OPC_EmitConvertToTarget, 1,
                  OPC_EmitNodeXForm, 1, 5,
                  OPC_EmitNode, TARGET_OPCODE(X86::AND32ri), 0,
                      2, MVT::i32, MVT::i32, 2, 4, 6, 
                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
                      1, MVT::i64, 3, 2, 7, 9, 
                45, 
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              12, 
                OPC_CheckType, MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND8rr), 0,
                    2, MVT::i8, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND16rr), 0,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND32rr), 0,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              12, 
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AND64rr), 0,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            22|128,13, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 27|128,6,  TARGET_OPCODE(ISD::XOR),
                OPC_Scope, 48|128,1, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_Scope, 58, 
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v4f32,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v4i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  58, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v4i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v4f32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  50, 
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                51|128,1, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_SwitchType , 40,  MVT::v4i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  40,  MVT::v8i16,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  40,  MVT::v16i8,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  36,  MVT::v2i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                110|128,1, 
                  OPC_MoveChild, 0,
                  OPC_SwitchOpcode , 50,  TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  49|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_SwitchType , 41,  MVT::v4i32,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                      OPC_RecordMemRef,
                      OPC_RecordNode,
                      OPC_CheckFoldableChainNode,
                      OPC_RecordChild1,
                      OPC_CheckPredicate, 2,
                      OPC_CheckPredicate, 3,
                      OPC_CheckPredicate, 21,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v2i64,
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    41,  MVT::v8i16,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                      OPC_RecordMemRef,
                      OPC_RecordNode,
                      OPC_CheckFoldableChainNode,
                      OPC_RecordChild1,
                      OPC_CheckPredicate, 2,
                      OPC_CheckPredicate, 3,
                      OPC_CheckPredicate, 21,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v2i64,
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    41,  MVT::v16i8,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                      OPC_RecordMemRef,
                      OPC_RecordNode,
                      OPC_CheckFoldableChainNode,
                      OPC_RecordChild1,
                      OPC_CheckPredicate, 2,
                      OPC_CheckPredicate, 3,
                      OPC_CheckPredicate, 21,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v2i64,
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    37,  MVT::v2i32,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_RecordChild1,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                      OPC_RecordMemRef,
                      OPC_RecordNode,
                      OPC_CheckFoldableChainNode,
                      OPC_RecordChild1,
                      OPC_CheckPredicate, 2,
                      OPC_CheckPredicate, 3,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v1i64,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                96, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                96, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_Scope, 47, 
                    OPC_CheckPredicate, 21,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              23|128,6,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_Scope, 35|128,3, 
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
                  OPC_Scope, 39|128,1, 
                    OPC_MoveChild, 0,
                    OPC_SwitchOpcode , 123,  TARGET_OPCODE(ISD::BIT_CONVERT),
                      OPC_Scope, 42, 
                        OPC_RecordChild0,
                        OPC_CheckChild0Type, MVT::v4f32,
                        OPC_MoveParent,
                        OPC_MoveChild, 1,
                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                        OPC_MoveChild, 0,
                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                        OPC_CheckPredicate, 44,
                        OPC_CheckType, MVT::v4i32,
                        OPC_MoveParent,
                        OPC_MoveParent,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::v2i64,
                        OPC_CheckPatternPredicate, 1,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                      42, 
                        OPC_MoveChild, 0,
                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                        OPC_CheckPredicate, 44,
                        OPC_CheckType, MVT::v4i32,
                        OPC_MoveParent,
                        OPC_MoveParent,
                        OPC_MoveChild, 1,
                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                        OPC_RecordChild0,
                        OPC_CheckChild0Type, MVT::v4f32,
                        OPC_MoveParent,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::v2i64,
                        OPC_CheckPatternPredicate, 1,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                      34, 
                        OPC_RecordChild0,
                        OPC_CheckChild0Type, MVT::v2f64,
                        OPC_MoveParent,
                        OPC_MoveChild, 1,
                        OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                        OPC_CheckPredicate, 44,
                        OPC_MoveParent,
                        OPC_MoveParent,
                        OPC_CheckType, MVT::v2i64,
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                      0, 
                    34,  TARGET_OPCODE(ISD::BUILD_VECTOR),
                      OPC_CheckPredicate, 44,
                      OPC_MoveParent,
                      OPC_MoveChild, 1,
                      OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                      OPC_RecordChild0,
                      OPC_CheckChild0Type, MVT::v2f64,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v2i64,
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                    0, 
                  39, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v4i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  39, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v4i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  39, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v8i16,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  39, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v8i16,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  39, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v16i8,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  39, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v16i8,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                84, 
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
                  OPC_Scope, 37, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v2i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                  37, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_CheckType, MVT::v2i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                10|128,1, 
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
                  OPC_Scope, 31, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  31, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  31, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  31, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                72, 
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
                  OPC_Scope, 31, 
                    OPC_RecordChild0,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                  31, 
                    OPC_MoveChild, 0,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v1i64,
                    OPC_CheckPatternPredicate, 9,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                61, 
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_RecordChild0,
                  OPC_Scope, 24, 
                    OPC_CheckChild0Type, MVT::v4f32,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  24, 
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              85,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_Scope, 40, 
                  OPC_CheckChild0Type, MVT::v4f32,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                40, 
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            87, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_Scope, 47, 
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              22, 
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v1i64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            5|128,3, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 83,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_Scope, 48, 
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                23, 
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v1i64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              93|128,1,  TARGET_OPCODE(ISD::XOR),
                OPC_Scope, 80, 
                  OPC_MoveChild, 0,
                  OPC_SwitchOpcode , 35,  TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  35,  TARGET_OPCODE(ISD::BUILD_VECTOR),
                    OPC_CheckPredicate, 44,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveChild, 1,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                    OPC_RecordChild0,
                    OPC_CheckChild0Type, MVT::v2f64,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  0, 
                104, 
                  OPC_RecordChild0,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_SwitchType , 32,  MVT::v4i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::v2i64,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
                          1, MVT::v2i64, 2, 0, 1, 
                    11, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                          1, MVT::v2i64, 2, 0, 1, 
                    0, 
                  17,  MVT::v8i16,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  17,  MVT::v16i8,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::v2i64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  15,  MVT::v2i32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::v1i64,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                        1, MVT::v1i64, 2, 0, 1, 
                  0, 
                32, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_CheckType, MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              71,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
                OPC_MoveChild, 0,
                OPC_SwitchOpcode , 26,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_RecordChild0,
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
                      1, MVT::v2i64, 2, 1, 0, 
                26,  TARGET_OPCODE(ISD::BUILD_VECTOR),
                  OPC_CheckPredicate, 44,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_RecordChild0,
                  OPC_CheckChild0Type, MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPDrr), 0,
                      1, MVT::v2i64, 2, 1, 0, 
                0, 
              0, 
            72, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 31, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v4i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              31, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v4i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDNPSrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              0, 
            37, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 44,
              OPC_CheckType, MVT::v4i32,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            72, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 31, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v4i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              31, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v4i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              0, 
            37, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 44,
              OPC_CheckType, MVT::v8i16,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            72, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 31, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v8i16,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              31, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v8i16,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              0, 
            37, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 44,
              OPC_CheckType, MVT::v16i8,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            72, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 31, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              31, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v16i8,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              0, 
            35, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 44,
              OPC_CheckType, MVT::v2i32,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v1i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                  1, MVT::v1i64, 2, 0, 1, 
            68, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 29, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v2i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                    1, MVT::v1i64, 2, 1, 0, 
              29, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_CheckType, MVT::v2i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                    1, MVT::v1i64, 2, 1, 0, 
              0, 
            87, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 54, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 26,  MVT::v2i64,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                        1, MVT::v2i64, 2, 0, 1, 
                  0, 
                11,  MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                      1, MVT::v1i64, 2, 0, 1, 
                0, 
              24, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
                    1, MVT::v2i64, 2, 0, 1, 
              0, 
            56, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 23, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              23, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              0, 
            29, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 44,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            56, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 23, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              23, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDNrr), 0,
                    1, MVT::v2i64, 2, 1, 0, 
              0, 
            29, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 44,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v1i64,
              OPC_CheckPatternPredicate, 9,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                  1, MVT::v1i64, 2, 0, 1, 
            56, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::XOR),
              OPC_Scope, 23, 
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                    1, MVT::v1i64, 2, 1, 0, 
              23, 
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
                OPC_CheckPredicate, 44,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveParent,
                OPC_CheckType, MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDNrr), 0,
                    1, MVT::v1i64, 2, 1, 0, 
              0, 
            31, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_RecordChild0,
              OPC_CheckChild0Type, MVT::v2f64,
              OPC_MoveParent,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_RecordChild0,
              OPC_CheckChild0Type, MVT::v2f64,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPDrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            57, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 38,  MVT::v2i64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ANDPSrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPANDrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PANDrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              11,  MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PANDrr), 0,
                    1, MVT::v1i64, 2, 0, 1, 
              0, 
            0, 
          91|128,2,  TARGET_OPCODE(ISD::FP_TO_SINT),
            OPC_Scope, 66|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_SwitchType , 87,  MVT::f32,
                OPC_MoveParent,
                OPC_SwitchType , 40,  MVT::i32,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                40,  MVT::i64,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              87,  MVT::f64,
                OPC_MoveParent,
                OPC_SwitchType , 40,  MVT::i32,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                40,  MVT::i64,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              0, 
            19|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 56, 
                OPC_CheckChild0Type, MVT::f32,
                OPC_SwitchType , 24,  MVT::i32,
                  OPC_Scope, 10, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSS2SIrr), 0,
                        1, MVT::i32, 1, 0, 
                  10, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSS2SIrr), 0,
                        1, MVT::i32, 1, 0, 
                  0, 
                24,  MVT::i64,
                  OPC_Scope, 10, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSS2SI64rr), 0,
                        1, MVT::i64, 1, 0, 
                  10, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSS2SI64rr), 0,
                        1, MVT::i64, 1, 0, 
                  0, 
                0, 
              56, 
                OPC_CheckChild0Type, MVT::f64,
                OPC_SwitchType , 24,  MVT::i32,
                  OPC_Scope, 10, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSD2SIrr), 0,
                        1, MVT::i32, 1, 0, 
                  10, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSD2SIrr), 0,
                        1, MVT::i32, 1, 0, 
                  0, 
                24,  MVT::i64,
                  OPC_Scope, 10, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VCVTTSD2SI64rr), 0,
                        1, MVT::i64, 1, 0, 
                  10, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTTSD2SI64rr), 0,
                        1, MVT::i64, 1, 0, 
                  0, 
                0, 
              14, 
                OPC_CheckChild0Type, MVT::v4f32,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPS2DQrr), 0,
                    1, MVT::v4i32, 1, 0, 
              14, 
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_CheckType, MVT::v2i32,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTTPD2PIrr), 0,
                    1, MVT::v2i32, 1, 0, 
              0, 
            0, 
          55|128,1,  TARGET_OPCODE(X86ISD::UCOMI),
            OPC_RecordChild0,
            OPC_Scope, 89, 
              OPC_CheckChild0Type, MVT::v4f32,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VUCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_UCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VUCOMISSrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_UCOMISSrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            89, 
              OPC_CheckChild0Type, MVT::v2f64,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VUCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_UCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VUCOMISDrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_UCOMISDrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            0, 
          55|128,1,  TARGET_OPCODE(X86ISD::COMI),
            OPC_RecordChild0,
            OPC_Scope, 89, 
              OPC_CheckChild0Type, MVT::v4f32,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_COMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCOMISSrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_COMISSrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            89, 
              OPC_CheckChild0Type, MVT::v2f64,
              OPC_Scope, 56, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_COMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_VCOMISDrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_COMISDrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            0, 
          21|128,1,  TARGET_OPCODE(X86ISD::PTEST),
            OPC_RecordChild0,
            OPC_Scope, 91, 
              OPC_CheckChild0Type, MVT::v4f32,
              OPC_Scope, 58, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPTESTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PTESTrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              27, 
                OPC_RecordChild1,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPTESTrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PTESTrr), 0,
                      1, MVT::i32, 2, 0, 1, 
                0, 
              0, 
            53, 
              OPC_CheckChild0Type, MVT::v4i64,
              OPC_Scope, 35, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPTESTYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPTESTYrr), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          91|128,1,  TARGET_OPCODE(X86ISD::TESTP),
            OPC_RecordChild0,
            OPC_Scope, 53, 
              OPC_CheckChild0Type, MVT::v4f32,
              OPC_Scope, 35, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPSrr), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            53, 
              OPC_CheckChild0Type, MVT::v8f32,
              OPC_Scope, 35, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPSYrr), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            53, 
              OPC_CheckChild0Type, MVT::v2f64,
              OPC_Scope, 35, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPDrr), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            53, 
              OPC_CheckChild0Type, MVT::v4f64,
              OPC_Scope, 35, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::i32, 6, 0, 3, 4, 5, 6, 7, 
              12, 
                OPC_RecordChild1,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VTESTPDYrr), 0,
                    1, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          90,  TARGET_OPCODE(ISD::ATOMIC_SWAP),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 19,  MVT::i32,
              OPC_CheckPredicate, 45,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG32rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
            19,  MVT::i16,
              OPC_CheckPredicate, 46,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG16rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::i16, 6, 2, 3, 4, 5, 6, 7, 
            19,  MVT::i8,
              OPC_CheckPredicate, 47,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG8rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::i8, 6, 2, 3, 4, 5, 6, 7, 
            19,  MVT::i64,
              OPC_CheckPredicate, 48,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::XCHG64rm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::i64, 6, 2, 3, 4, 5, 6, 7, 
            0, 
          94,  TARGET_OPCODE(ISD::ATOMIC_LOAD_ADD),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 49,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
            20,  MVT::i16,
              OPC_CheckPredicate, 50,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
            20,  MVT::i8,
              OPC_CheckPredicate, 51,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD8), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i8, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
            20,  MVT::i64,
              OPC_CheckPredicate, 52,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LXADD64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 2, 3, 4, 5, 6, 7, 
            0, 
          94,  TARGET_OPCODE(ISD::ATOMIC_LOAD_AND),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 53,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 54,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i8,
              OPC_CheckPredicate, 55,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND8), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 56,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMAND64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          94,  TARGET_OPCODE(ISD::ATOMIC_LOAD_OR),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 57,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 58,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i8,
              OPC_CheckPredicate, 59,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR8), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 60,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMOR64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          94,  TARGET_OPCODE(ISD::ATOMIC_LOAD_XOR),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 61,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 62,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i8,
              OPC_CheckPredicate, 63,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR8), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMXOR64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          94,  TARGET_OPCODE(ISD::ATOMIC_LOAD_NAND),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 65,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 66,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i8,
              OPC_CheckPredicate, 67,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND8), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i8, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 68,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMNAND64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          72,  TARGET_OPCODE(ISD::ATOMIC_LOAD_MIN),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 69,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMIN32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 70,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMIN16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 71,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMIN64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          72,  TARGET_OPCODE(ISD::ATOMIC_LOAD_MAX),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 72,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMAX32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 73,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMAX16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 74,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMMAX64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          72,  TARGET_OPCODE(ISD::ATOMIC_LOAD_UMIN),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 75,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMIN32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 76,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMIN16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 77,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMIN64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          72,  TARGET_OPCODE(ISD::ATOMIC_LOAD_UMAX),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_SwitchType , 20,  MVT::i32,
              OPC_CheckPredicate, 78,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMAX32), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i32, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i16,
              OPC_CheckPredicate, 79,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMAX16), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i16, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            20,  MVT::i64,
              OPC_CheckPredicate, 80,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ATOMUMAX64), 0|OPFL_Chain|OPFL_MemRefs,
                  2, MVT::i64, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          60,  TARGET_OPCODE(X86ISD::MUL_IMM),
            OPC_RecordNode,
            OPC_SwitchType , 38,  MVT::i32,
              OPC_Scope, 17, 
                OPC_CheckPatternPredicate, 3,
                OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
              17, 
                OPC_CheckPatternPredicate, 4,
                OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
              0, 
            15,  MVT::i64,
              OPC_CheckComplexPat, /*CP*/4, /*#*/0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                  1, MVT::i64, 5, 1, 2, 3, 4, 5, 
            0, 
          75|128,2,  TARGET_OPCODE(ISD::SHL),
            OPC_Scope, 60, 
              OPC_RecordNode,
              OPC_SwitchType , 38,  MVT::i32,
                OPC_Scope, 17, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                17, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                      1, MVT::i32, 5, 1, 2, 3, 4, 5, 
                0, 
              15,  MVT::i64,
                OPC_CheckComplexPat, /*CP*/4, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                    1, MVT::i64, 5, 1, 2, 3, 4, 5, 
              0, 
            10|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 0|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckType, MVT::i8,
                OPC_Scope, 48, 
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8rCL), 0|OPFL_FlagInput,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  12,  MVT::i16,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16rCL), 0|OPFL_FlagInput,
                        2, MVT::i16, MVT::i32, 1, 0, 
                  12,  MVT::i32,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32rCL), 0|OPFL_FlagInput,
                        2, MVT::i32, MVT::i32, 1, 0, 
                  0, 
                18, 
                  OPC_CheckAndImm, 63, 
                  OPC_RecordChild0,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64rCL), 0|OPFL_FlagInput,
                      2, MVT::i64, MVT::i32, 1, 0, 
                53, 
                  OPC_CheckInteger, 1, 
                  OPC_MoveParent,
                  OPC_SwitchType , 10,  MVT::i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD8rr), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 0, 
                  10,  MVT::i16,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD16rr), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 0, 
                  10,  MVT::i32,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD32rr), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 0, 
                  10,  MVT::i64,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD64rr), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 0, 
                  0, 
                0, 
              3|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 66, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64ri), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                60, 
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL8rCL), 0|OPFL_FlagInput,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  12,  MVT::i16,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL16rCL), 0|OPFL_FlagInput,
                        2, MVT::i16, MVT::i32, 1, 0, 
                  12,  MVT::i32,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL32rCL), 0|OPFL_FlagInput,
                        2, MVT::i32, MVT::i32, 1, 0, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHL64rCL), 0|OPFL_FlagInput,
                        2, MVT::i64, MVT::i32, 1, 0, 
                  0, 
                0, 
              0, 
            0, 
          60,  TARGET_OPCODE(ISD::FrameIndex),
            OPC_RecordNode,
            OPC_SwitchType , 38,  MVT::i32,
              OPC_Scope, 17, 
                OPC_CheckPatternPredicate, 3,
                OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA32r), 0,
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
              17, 
                OPC_CheckPatternPredicate, 4,
                OPC_CheckComplexPat, /*CP*/3, /*#*/0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64_32r), 0,
                    1, MVT::i32, 5, 1, 2, 3, 4, 5, 
              0, 
            15,  MVT::i64,
              OPC_CheckComplexPat, /*CP*/4, /*#*/0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                  1, MVT::i64, 5, 1, 2, 3, 4, 5, 
            0, 
          18,  TARGET_OPCODE(X86ISD::WrapperRIP),
            OPC_RecordNode,
            OPC_CheckType, MVT::i64,
            OPC_CheckComplexPat, /*CP*/4, /*#*/0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::LEA64r), 0,
                1, MVT::i64, 5, 1, 2, 3, 4, 5, 
          82|128,3,  TARGET_OPCODE(ISD::SRL),
            OPC_Scope, 97, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::AND),
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckInteger, 0|128,126|128,3, 
              OPC_MoveParent,
              OPC_CheckPredicate, 19,
              OPC_MoveParent,
              OPC_MoveChild, 1,
              OPC_CheckInteger, 8, 
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckType, MVT::i32,
              OPC_Scope, 34, 
                OPC_CheckPatternPredicate, 3,
                OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::i32, 2, 0, 1, 
                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 2, 3, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                    1, MVT::i32, 1, 4, 
              34, 
                OPC_CheckPatternPredicate, 4,
                OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::i32, 2, 0, 1, 
                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 2, 3, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                    1, MVT::i32, 1, 4, 
              0, 
            108|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 98|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckType, MVT::i8,
                OPC_Scope, 48, 
                  OPC_CheckAndImm, 31, 
                  OPC_RecordChild0,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8rCL), 0|OPFL_FlagInput,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  12,  MVT::i16,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16rCL), 0|OPFL_FlagInput,
                        2, MVT::i16, MVT::i32, 1, 0, 
                  12,  MVT::i32,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32rCL), 0|OPFL_FlagInput,
                        2, MVT::i32, MVT::i32, 1, 0, 
                  0, 
                18, 
                  OPC_CheckAndImm, 63, 
                  OPC_RecordChild0,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64rCL), 0|OPFL_FlagInput,
                      2, MVT::i64, MVT::i32, 1, 0, 
                49, 
                  OPC_CheckInteger, 1, 
                  OPC_MoveParent,
                  OPC_SwitchType , 9,  MVT::i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8r1), 0,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  9,  MVT::i16,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16r1), 0,
                        2, MVT::i16, MVT::i32, 1, 0, 
                  9,  MVT::i32,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32r1), 0,
                        2, MVT::i32, MVT::i32, 1, 0, 
                  9,  MVT::i64,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64r1), 0,
                        2, MVT::i64, MVT::i32, 1, 0, 
                  0, 
                101, 
                  OPC_CheckInteger, 8, 
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i16,
                  OPC_Scope, 46, 
                    OPC_CheckPatternPredicate, 3,
                    OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1, MVT::i16, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i8, 2, 2, 3, 
                    OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                        1, MVT::i32, 1, 4, 
                    OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i16, 2, 5, 6, 
                  46, 
                    OPC_CheckPatternPredicate, 4,
                    OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1, MVT::i16, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i8, 2, 2, 3, 
                    OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                        1, MVT::i32, 1, 4, 
                    OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i16, 2, 5, 6, 
                  0, 
                0, 
              3|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 66, 
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i8,
                  OPC_MoveParent,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8ri), 0,
                        2, MVT::i8, MVT::i32, 2, 0, 2, 
                  12,  MVT::i16,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16ri), 0,
                        2, MVT::i16, MVT::i32, 2, 0, 2, 
                  12,  MVT::i32,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32ri), 0,
                        2, MVT::i32, MVT::i32, 2, 0, 2, 
                  12,  MVT::i64,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64ri), 0,
                        2, MVT::i64, MVT::i32, 2, 0, 2, 
                  0, 
                60, 
                  OPC_CheckChild1Type, MVT::i8,
                  OPC_SwitchType , 12,  MVT::i8,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR8rCL), 0|OPFL_FlagInput,
                        2, MVT::i8, MVT::i32, 1, 0, 
                  12,  MVT::i16,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR16rCL), 0|OPFL_FlagInput,
                        2, MVT::i16, MVT::i32, 1, 0, 
                  12,  MVT::i32,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR32rCL), 0|OPFL_FlagInput,
                        2, MVT::i32, MVT::i32, 1, 0, 
                  12,  MVT::i64,
                    OPC_EmitCopyToReg, 1, X86::CL,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHR64rCL), 0|OPFL_FlagInput,
                        2, MVT::i64, MVT::i32, 1, 0, 
                  0, 
                0, 
              0, 
            0, 
          120|128,1,  TARGET_OPCODE(ISD::TRUNCATE),
            OPC_Scope, 79, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SRL),
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckInteger, 8, 
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckPredicate, 13,
              OPC_SwitchType , 29,  MVT::i16,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckPatternPredicate, 3,
                OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::i16, 2, 0, 1, 
                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 2, 3, 
              29,  MVT::i32,
                OPC_MoveParent,
                OPC_CheckType, MVT::i8,
                OPC_CheckPatternPredicate, 3,
                OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::i32, 2, 0, 1, 
                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 2, 3, 
              0, 
            36|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 64, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_SwitchType , 12,  MVT::i16,
                  OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i16, 2, 0, 1, 
                44,  MVT::i8,
                  OPC_Scope, 14, 
                    OPC_CheckPatternPredicate, 4,
                    OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i8, 2, 0, 1, 
                  26, 
                    OPC_CheckPatternPredicate, 3,
                    OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1, MVT::i32, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i8, 2, 2, 3, 
                  0, 
                0, 
              46, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_SwitchType , 12,  MVT::i32,
                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i32, 2, 0, 1, 
                12,  MVT::i16,
                  OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i16, 2, 0, 1, 
                12,  MVT::i8,
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 0, 1, 
                0, 
              48, 
                OPC_CheckChild0Type, MVT::i16,
                OPC_CheckType, MVT::i8,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 0, 1, 
                26, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                0, 
              0, 
            0, 
          123|128,1,  TARGET_OPCODE(ISD::ZERO_EXTEND),
            OPC_Scope, 16|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SRL),
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckInteger, 8, 
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckPredicate, 13,
              OPC_CheckType, MVT::i16,
              OPC_MoveParent,
              OPC_SwitchType , 72,  MVT::i32,
                OPC_Scope, 34, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                      1, MVT::i32, 1, 4, 
                34, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                      1, MVT::i32, 1, 4, 
                0, 
              48,  MVT::i64,
                OPC_EmitInteger, MVT::i64, 0, 
                OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::i16, 2, 0, 2, 
                OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 3, 4, 
                OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                    1, MVT::i32, 1, 5, 
                OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
                    1, MVT::i64, 3, 1, 6, 7, 
              0, 
            102, 
              OPC_RecordChild0,
              OPC_Scope, 25, 
                OPC_MoveChild, 0,
                OPC_CheckPredicate, 81,
                OPC_CheckType, MVT::i32,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_EmitInteger, MVT::i64, 0, 
                OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
                    1, MVT::i64, 3, 1, 0, 2, 
              34, 
                OPC_CheckChild0Type, MVT::i8,
                OPC_SwitchType , 8,  MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
                      1, MVT::i16, 1, 0, 
                8,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                      1, MVT::i32, 1, 0, 
                8,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr8), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              24, 
                OPC_CheckChild0Type, MVT::i16,
                OPC_SwitchType , 8,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr16), 0,
                      1, MVT::i32, 1, 0, 
                8,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr16), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              12, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_CheckType, MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr32), 0,
                    1, MVT::i64, 1, 0, 
              0, 
            0, 
          63|128,2,  TARGET_OPCODE(ISD::ANY_EXTEND),
            OPC_Scope, 90|128,1, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 11|128,1,  TARGET_OPCODE(ISD::SRL),
                OPC_RecordChild0,
                OPC_MoveChild, 1,
                OPC_CheckInteger, 8, 
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_CheckPredicate, 13,
                OPC_CheckType, MVT::i16,
                OPC_MoveParent,
                OPC_SwitchType , 72,  MVT::i32,
                  OPC_Scope, 34, 
                    OPC_CheckPatternPredicate, 3,
                    OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1, MVT::i16, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i8, 2, 2, 3, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                        1, MVT::i32, 1, 4, 
                  34, 
                    OPC_CheckPatternPredicate, 4,
                    OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1, MVT::i16, 2, 0, 1, 
                    OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::i8, 2, 2, 3, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                        1, MVT::i32, 1, 4, 
                  0, 
                48,  MVT::i64,
                  OPC_EmitInteger, MVT::i64, 0, 
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 0, 2, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 3, 4, 
                  OPC_EmitNode, TARGET_OPCODE(X86::MOVZX32_NOREXrr8), 0,
                      1, MVT::i32, 1, 5, 
                  OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
                      1, MVT::i64, 3, 1, 6, 7, 
                0, 
              68,  TARGET_OPCODE(X86ISD::SETCC_CARRY),
                OPC_MoveChild, 0,
                OPC_CheckInteger, 2, 
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 42,  MVT::i8,
                  OPC_MoveParent,
                  OPC_SwitchType , 11,  MVT::i16,
                    OPC_EmitCopyToReg, 0, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C16r), 0|OPFL_FlagInput,
                        2, MVT::i16, MVT::i32, 0, 
                  11,  MVT::i32,
                    OPC_EmitCopyToReg, 0, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C32r), 0|OPFL_FlagInput,
                        2, MVT::i32, MVT::i32, 0, 
                  11,  MVT::i64,
                    OPC_EmitCopyToReg, 0, X86::EFLAGS,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C64r), 0|OPFL_FlagInput,
                        2, MVT::i64, MVT::i32, 0, 
                  0, 
                14,  MVT::i16,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_EmitCopyToReg, 0, X86::EFLAGS,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C32r), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 0, 
                0, 
              0, 
            96, 
              OPC_RecordChild0,
              OPC_Scope, 20, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_CheckType, MVT::i64,
                OPC_EmitInteger, MVT::i64, 0, 
                OPC_EmitInteger, MVT::i32, X86::sub_32bit,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0,
                    1, MVT::i64, 3, 1, 0, 2, 
              34, 
                OPC_CheckChild0Type, MVT::i8,
                OPC_SwitchType , 8,  MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX16rr8), 0,
                      1, MVT::i16, 1, 0, 
                8,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX32rr8), 0,
                      1, MVT::i32, 1, 0, 
                8,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr8), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              36, 
                OPC_CheckChild0Type, MVT::i16,
                OPC_SwitchType , 8,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZX64rr16), 0,
                      1, MVT::i64, 1, 0, 
                20,  MVT::i32,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
                      1, MVT::i32, 0, 
                  OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
                      1, MVT::i32, 3, 1, 0, 2, 
                0, 
              0, 
            0, 
          5|128,2,  TARGET_OPCODE(ISD::SRA),
            OPC_RecordChild0,
            OPC_Scope, 124, 
              OPC_MoveChild, 1,
              OPC_CheckType, MVT::i8,
              OPC_Scope, 48, 
                OPC_CheckAndImm, 31, 
                OPC_RecordChild0,
                OPC_MoveParent,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8rCL), 0|OPFL_FlagInput,
                      2, MVT::i8, MVT::i32, 1, 0, 
                12,  MVT::i16,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16rCL), 0|OPFL_FlagInput,
                      2, MVT::i16, MVT::i32, 1, 0, 
                12,  MVT::i32,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32rCL), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 1, 0, 
                0, 
              18, 
                OPC_CheckAndImm, 63, 
                OPC_RecordChild0,
                OPC_MoveParent,
                OPC_CheckType, MVT::i64,
                OPC_EmitCopyToReg, 1, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64rCL), 0|OPFL_FlagInput,
                    2, MVT::i64, MVT::i32, 1, 0, 
              49, 
                OPC_CheckInteger, 1, 
                OPC_MoveParent,
                OPC_SwitchType , 9,  MVT::i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8r1), 0,
                      2, MVT::i8, MVT::i32, 1, 0, 
                9,  MVT::i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16r1), 0,
                      2, MVT::i16, MVT::i32, 1, 0, 
                9,  MVT::i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32r1), 0,
                      2, MVT::i32, MVT::i32, 1, 0, 
                9,  MVT::i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64r1), 0,
                      2, MVT::i64, MVT::i32, 1, 0, 
                0, 
              0, 
            3|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8ri), 0,
                      2, MVT::i8, MVT::i32, 2, 0, 2, 
                12,  MVT::i16,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16ri), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 2, 
                12,  MVT::i32,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32ri), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 2, 
                12,  MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64ri), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                0, 
              60, 
                OPC_CheckChild1Type, MVT::i8,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR8rCL), 0|OPFL_FlagInput,
                      2, MVT::i8, MVT::i32, 1, 0, 
                12,  MVT::i16,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR16rCL), 0|OPFL_FlagInput,
                      2, MVT::i16, MVT::i32, 1, 0, 
                12,  MVT::i32,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR32rCL), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 1, 0, 
                12,  MVT::i64,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SAR64rCL), 0|OPFL_FlagInput,
                      2, MVT::i64, MVT::i32, 1, 0, 
                0, 
              0, 
            0, 
          114|128,1,  TARGET_OPCODE(ISD::EXTRACT_VECTOR_ELT),
            OPC_Scope, 50, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_RecordChild0,
              OPC_CheckChild0Type, MVT::v4f32,
              OPC_CheckType, MVT::v4i32,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckType, MVT::i32,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VEXTRACTPSrr), 0,
                    1, MVT::i32, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 5,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::EXTRACTPSrr), 0,
                    1, MVT::i32, 2, 0, 2, 
              0, 
            59|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 62, 
                OPC_CheckChild0Type, MVT::v2i64,
                OPC_Scope, 17, 
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVPQIto64rr), 0,
                      1, MVT::i64, 1, 0, 
                39, 
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i64,
                  OPC_Scope, 13, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPEXTRQrr), 0,
                        1, MVT::i64, 2, 0, 2, 
                  13, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PEXTRQrr), 0,
                        1, MVT::i64, 2, 0, 2, 
                  0, 
                0, 
              76, 
                OPC_CheckChild0Type, MVT::v4i32,
                OPC_Scope, 31, 
                  OPC_MoveChild, 1,
                  OPC_CheckInteger, 0, 
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_Scope, 10, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVPDI2DIrr), 0,
                        1, MVT::i32, 1, 0, 
                  10, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVPDI2DIrr), 0,
                        1, MVT::i32, 1, 0, 
                  0, 
                39, 
                  OPC_RecordChild1,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::i32,
                  OPC_Scope, 13, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPEXTRDrr), 0,
                        1, MVT::i32, 2, 0, 2, 
                  13, 
                    OPC_CheckPatternPredicate, 5,
                    OPC_EmitConvertToTarget, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PEXTRDrr), 0,
                        1, MVT::i32, 2, 0, 2, 
                  0, 
                0, 
              21, 
                OPC_CheckChild0Type, MVT::v4f32,
                OPC_MoveChild, 1,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_CheckType, MVT::f32,
                OPC_EmitInteger, MVT::i32, X86::sub_ss,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f32, 2, 0, 1, 
              21, 
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_MoveChild, 1,
                OPC_CheckInteger, 0, 
                OPC_MoveParent,
                OPC_CheckType, MVT::f64,
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f64, 2, 0, 1, 
              0, 
            0, 
          62|128,1,  TARGET_OPCODE(ISD::ROTL),
            OPC_RecordChild0,
            OPC_Scope, 53, 
              OPC_MoveChild, 1,
              OPC_CheckInteger, 1, 
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 9,  MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL8r1), 0,
                    2, MVT::i8, MVT::i32, 1, 0, 
              9,  MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL16r1), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              9,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL32r1), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              9,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL64r1), 0,
                    2, MVT::i64, MVT::i32, 1, 0, 
              0, 
            3|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL8ri), 0,
                      2, MVT::i8, MVT::i32, 2, 0, 2, 
                12,  MVT::i16,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL16ri), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 2, 
                12,  MVT::i32,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL32ri), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 2, 
                12,  MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL64ri), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                0, 
              60, 
                OPC_CheckChild1Type, MVT::i8,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL8rCL), 0|OPFL_FlagInput,
                      2, MVT::i8, MVT::i32, 1, 0, 
                12,  MVT::i16,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL16rCL), 0|OPFL_FlagInput,
                      2, MVT::i16, MVT::i32, 1, 0, 
                12,  MVT::i32,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL32rCL), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 1, 0, 
                12,  MVT::i64,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROL64rCL), 0|OPFL_FlagInput,
                      2, MVT::i64, MVT::i32, 1, 0, 
                0, 
              0, 
            0, 
          62|128,1,  TARGET_OPCODE(ISD::ROTR),
            OPC_RecordChild0,
            OPC_Scope, 53, 
              OPC_MoveChild, 1,
              OPC_CheckInteger, 1, 
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 9,  MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR8r1), 0,
                    2, MVT::i8, MVT::i32, 1, 0, 
              9,  MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR16r1), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              9,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR32r1), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              9,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR64r1), 0,
                    2, MVT::i64, MVT::i32, 1, 0, 
              0, 
            3|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 66, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR8ri), 0,
                      2, MVT::i8, MVT::i32, 2, 0, 2, 
                12,  MVT::i16,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR16ri), 0,
                      2, MVT::i16, MVT::i32, 2, 0, 2, 
                12,  MVT::i32,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR32ri), 0,
                      2, MVT::i32, MVT::i32, 2, 0, 2, 
                12,  MVT::i64,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR64ri), 0,
                      2, MVT::i64, MVT::i32, 2, 0, 2, 
                0, 
              60, 
                OPC_CheckChild1Type, MVT::i8,
                OPC_SwitchType , 12,  MVT::i8,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR8rCL), 0|OPFL_FlagInput,
                      2, MVT::i8, MVT::i32, 1, 0, 
                12,  MVT::i16,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR16rCL), 0|OPFL_FlagInput,
                      2, MVT::i16, MVT::i32, 1, 0, 
                12,  MVT::i32,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR32rCL), 0|OPFL_FlagInput,
                      2, MVT::i32, MVT::i32, 1, 0, 
                12,  MVT::i64,
                  OPC_EmitCopyToReg, 1, X86::CL,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ROR64rCL), 0|OPFL_FlagInput,
                      2, MVT::i64, MVT::i32, 1, 0, 
                0, 
              0, 
            0, 
          60,  TARGET_OPCODE(X86ISD::SETCC_CARRY),
            OPC_MoveChild, 0,
            OPC_CheckInteger, 2, 
            OPC_MoveParent,
            OPC_RecordChild1,
            OPC_SwitchType , 11,  MVT::i8,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C8r), 0|OPFL_FlagInput,
                  2, MVT::i8, MVT::i32, 0, 
            11,  MVT::i16,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C16r), 0|OPFL_FlagInput,
                  2, MVT::i16, MVT::i32, 0, 
            11,  MVT::i32,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C32r), 0|OPFL_FlagInput,
                  2, MVT::i32, MVT::i32, 0, 
            11,  MVT::i64,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETB_C64r), 0|OPFL_FlagInput,
                  2, MVT::i64, MVT::i32, 0, 
            0, 
          116|128,1,  TARGET_OPCODE(X86ISD::SETCC),
            OPC_MoveChild, 0,
            OPC_Scope, 14, 
              OPC_CheckInteger, 4, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETEr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 9, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNEr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 7, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETLr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 6, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETGEr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 8, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETLEr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 5, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETGr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 2, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETBr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 1, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETAEr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 3, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETBEr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 0, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETAr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 15, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETSr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 12, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNSr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 14, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETPr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 11, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNPr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 13, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETOr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            14, 
              OPC_CheckInteger, 10, 
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_EmitCopyToReg, 0, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SETNOr), 0|OPFL_FlagInput,
                  1, MVT::i8, 0, 
            0, 
          111,  TARGET_OPCODE(X86ISD::SHLD),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_Scope, 55, 
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 13,  MVT::i32,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD32rri8), 0,
                    2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
              13,  MVT::i16,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD16rri8), 0,
                    2, MVT::i16, MVT::i32, 3, 0, 1, 3, 
              13,  MVT::i64,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD64rri8), 0,
                    2, MVT::i64, MVT::i32, 3, 0, 1, 3, 
              0, 
            49, 
              OPC_CheckChild2Type, MVT::i8,
              OPC_SwitchType , 13,  MVT::i32,
                OPC_EmitCopyToReg, 2, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD32rrCL), 0|OPFL_FlagInput,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              13,  MVT::i16,
                OPC_EmitCopyToReg, 2, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD16rrCL), 0|OPFL_FlagInput,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              13,  MVT::i64,
                OPC_EmitCopyToReg, 2, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHLD64rrCL), 0|OPFL_FlagInput,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          111,  TARGET_OPCODE(X86ISD::SHRD),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_Scope, 55, 
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 13,  MVT::i32,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD32rri8), 0,
                    2, MVT::i32, MVT::i32, 3, 0, 1, 3, 
              13,  MVT::i16,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD16rri8), 0,
                    2, MVT::i16, MVT::i32, 3, 0, 1, 3, 
              13,  MVT::i64,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD64rri8), 0,
                    2, MVT::i64, MVT::i32, 3, 0, 1, 3, 
              0, 
            49, 
              OPC_CheckChild2Type, MVT::i8,
              OPC_SwitchType , 13,  MVT::i32,
                OPC_EmitCopyToReg, 2, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD32rrCL), 0|OPFL_FlagInput,
                    2, MVT::i32, MVT::i32, 2, 0, 1, 
              13,  MVT::i16,
                OPC_EmitCopyToReg, 2, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD16rrCL), 0|OPFL_FlagInput,
                    2, MVT::i16, MVT::i32, 2, 0, 1, 
              13,  MVT::i64,
                OPC_EmitCopyToReg, 2, X86::CL,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHRD64rrCL), 0|OPFL_FlagInput,
                    2, MVT::i64, MVT::i32, 2, 0, 1, 
              0, 
            0, 
          40|128,2,  TARGET_OPCODE(X86ISD::Wrapper),
            OPC_RecordChild0,
            OPC_MoveChild, 0,
            OPC_SwitchOpcode , 50,  TARGET_OPCODE(ISD::TargetConstantPool),
              OPC_MoveParent,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 0, 
              35,  MVT::i64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 21,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 22,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 23,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            50,  TARGET_OPCODE(ISD::TargetJumpTable),
              OPC_MoveParent,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 0, 
              35,  MVT::i64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 21,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 22,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 23,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            23,  TARGET_OPCODE(ISD::TargetGlobalTLSAddress),
              OPC_MoveParent,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 0, 
              8,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                    1, MVT::i64, 1, 0, 
              0, 
            50,  TARGET_OPCODE(ISD::TargetGlobalAddress),
              OPC_MoveParent,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 0, 
              35,  MVT::i64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 21,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 22,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 23,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            50,  TARGET_OPCODE(ISD::TargetExternalSymbol),
              OPC_MoveParent,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 0, 
              35,  MVT::i64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 21,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 22,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 23,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            50,  TARGET_OPCODE(ISD::TargetBlockAddress),
              OPC_MoveParent,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 0, 
              35,  MVT::i64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 21,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 22,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 23,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              0, 
            0, 
          0|128,1,  TARGET_OPCODE(ISD::Constant),
            OPC_Scope, 44, 
              OPC_CheckInteger, 0, 
              OPC_SwitchType , 8,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64r0), 0,
                    2, MVT::i64, MVT::i32, 0, 
              8,  MVT::i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8r0), 0,
                    2, MVT::i8, MVT::i32, 0, 
              8,  MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16r0), 0,
                    2, MVT::i16, MVT::i32, 0, 
              8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32r0), 0,
                    2, MVT::i32, MVT::i32, 0, 
              0, 
            80, 
              OPC_RecordNode,
              OPC_SwitchType , 39,  MVT::i64,
                OPC_Scope, 12, 
                  OPC_CheckPredicate, 43,
                  OPC_EmitConvertToTarget, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
                      1, MVT::i64, 1, 1, 
                12, 
                  OPC_CheckPredicate, 10,
                  OPC_EmitConvertToTarget, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri32), 0,
                      1, MVT::i64, 1, 1, 
                10, 
                  OPC_EmitConvertToTarget, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
                      1, MVT::i64, 1, 1, 
                0, 
              10,  MVT::i8,
                OPC_EmitConvertToTarget, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV8ri), 0,
                    1, MVT::i8, 1, 1, 
              10,  MVT::i16,
                OPC_EmitConvertToTarget, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV16ri), 0,
                    1, MVT::i16, 1, 1, 
              10,  MVT::i32,
                OPC_EmitConvertToTarget, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV32ri), 0,
                    1, MVT::i32, 1, 1, 
              0, 
            0, 
          66,  TARGET_OPCODE(X86ISD::PEXTRW),
            OPC_RecordChild0,
            OPC_Scope, 39, 
              OPC_CheckChild0Type, MVT::v8i16,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 13, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPEXTRWri), 0,
                    1, MVT::i32, 2, 0, 2, 
              13, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PEXTRWri), 0,
                    1, MVT::i32, 2, 0, 2, 
              0, 
            22, 
              OPC_CheckChild0Type, MVT::v4i16,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PEXTRWri), 0,
                  1, MVT::i32, 2, 0, 2, 
            0, 
          40,  TARGET_OPCODE(X86ISD::PEXTRB),
            OPC_RecordChild0,
            OPC_CheckChild0Type, MVT::v16i8,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_MoveParent,
            OPC_Scope, 13, 
              OPC_CheckPatternPredicate, 0,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VPEXTRBrr), 0,
                  1, MVT::i32, 2, 0, 2, 
            13, 
              OPC_CheckPatternPredicate, 5,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PEXTRBrr), 0,
                  1, MVT::i32, 2, 0, 2, 
            0, 
          89,  TARGET_OPCODE(X86ISD::INC),
            OPC_RecordChild0,
            OPC_SwitchType , 28,  MVT::i16,
              OPC_CheckChild0Type, MVT::i16,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INC16r), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              11, 
                OPC_CheckPatternPredicate, 4,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64_16r), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              0, 
            28,  MVT::i32,
              OPC_CheckChild0Type, MVT::i32,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INC32r), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              11, 
                OPC_CheckPatternPredicate, 4,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64_32r), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              0, 
            11,  MVT::i8,
              OPC_CheckChild0Type, MVT::i8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::INC8r), 0,
                  2, MVT::i8, MVT::i32, 1, 0, 
            11,  MVT::i64,
              OPC_CheckChild0Type, MVT::i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::INC64r), 0,
                  2, MVT::i64, MVT::i32, 1, 0, 
            0, 
          89,  TARGET_OPCODE(X86ISD::DEC),
            OPC_RecordChild0,
            OPC_SwitchType , 28,  MVT::i16,
              OPC_CheckChild0Type, MVT::i16,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC16r), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              11, 
                OPC_CheckPatternPredicate, 4,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64_16r), 0,
                    2, MVT::i16, MVT::i32, 1, 0, 
              0, 
            28,  MVT::i32,
              OPC_CheckChild0Type, MVT::i32,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC32r), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              11, 
                OPC_CheckPatternPredicate, 4,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64_32r), 0,
                    2, MVT::i32, MVT::i32, 1, 0, 
              0, 
            11,  MVT::i8,
              OPC_CheckChild0Type, MVT::i8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC8r), 0,
                  2, MVT::i8, MVT::i32, 1, 0, 
            11,  MVT::i64,
              OPC_CheckChild0Type, MVT::i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::DEC64r), 0,
                  2, MVT::i64, MVT::i32, 1, 0, 
            0, 
          23,  TARGET_OPCODE(ISD::BSWAP),
            OPC_RecordChild0,
            OPC_SwitchType , 8,  MVT::i32,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::BSWAP32r), 0,
                  1, MVT::i32, 1, 0, 
            8,  MVT::i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::BSWAP64r), 0,
                  1, MVT::i64, 1, 0, 
            0, 
          76,  TARGET_OPCODE(ISD::SIGN_EXTEND),
            OPC_RecordChild0,
            OPC_Scope, 34, 
              OPC_CheckChild0Type, MVT::i8,
              OPC_SwitchType , 8,  MVT::i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX16rr8), 0,
                    1, MVT::i16, 1, 0, 
              8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rr8), 0,
                    1, MVT::i32, 1, 0, 
              8,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rr8), 0,
                    1, MVT::i64, 1, 0, 
              0, 
            24, 
              OPC_CheckChild0Type, MVT::i16,
              OPC_SwitchType , 8,  MVT::i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rr16), 0,
                    1, MVT::i32, 1, 0, 
              8,  MVT::i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rr16), 0,
                    1, MVT::i64, 1, 0, 
              0, 
            12, 
              OPC_CheckChild0Type, MVT::i32,
              OPC_CheckType, MVT::i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rr32), 0,
                  1, MVT::i64, 1, 0, 
            0, 
          111|128,5,  TARGET_OPCODE(ISD::BIT_CONVERT),
            OPC_Scope, 92, 
              OPC_RecordChild0,
              OPC_SwitchType , 59,  MVT::i64,
                OPC_Scope, 12, 
                  OPC_CheckChild0Type, MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDto64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v1i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64from64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v2i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64from64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v4i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64from64rr), 0,
                      1, MVT::i64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v8i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64from64rr), 0,
                      1, MVT::i64, 1, 0, 
                0, 
              26,  MVT::i32,
                OPC_CheckChild0Type, MVT::f32,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSS2DIrr), 0,
                      1, MVT::i32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSS2DIrr), 0,
                      1, MVT::i32, 1, 0, 
                0, 
              0, 
            86, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 25,  MVT::i64,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckType, MVT::f64,
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64toSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              45,  MVT::i32,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckType, MVT::f32,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                0, 
              0, 
            92, 
              OPC_RecordChild0,
              OPC_SwitchType , 59,  MVT::f64,
                OPC_Scope, 12, 
                  OPC_CheckChild0Type, MVT::i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64toSDrr), 0,
                      1, MVT::f64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v1i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2FR64rr), 0,
                      1, MVT::f64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v2i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2FR64rr), 0,
                      1, MVT::f64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v4i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2FR64rr), 0,
                      1, MVT::f64, 1, 0, 
                10, 
                  OPC_CheckChild0Type, MVT::v8i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2FR64rr), 0,
                      1, MVT::f64, 1, 0, 
                0, 
              26,  MVT::f32,
                OPC_CheckChild0Type, MVT::i32,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDI2SSrr), 0,
                      1, MVT::f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2SSrr), 0,
                      1, MVT::f32, 1, 0, 
                0, 
              0, 
            60, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::EXTRACT_VECTOR_ELT),
              OPC_RecordChild0,
              OPC_CheckChild0Type, MVT::v2i64,
              OPC_MoveChild, 1,
              OPC_CheckInteger, 0, 
              OPC_MoveParent,
              OPC_CheckType, MVT::i64,
              OPC_MoveParent,
              OPC_SwitchType , 10,  MVT::v1i64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVDQ2Qrr), 0,
                    1, MVT::v1i64, 1, 0, 
              8,  MVT::v2i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVDQ2Qrr), 0,
                    1, MVT::v2i32, 1, 0, 
              8,  MVT::v4i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVDQ2Qrr), 0,
                    1, MVT::v4i16, 1, 0, 
              8,  MVT::v8i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVDQ2Qrr), 0,
                    1, MVT::v8i8, 1, 0, 
              0, 
            29|128,3, 
              OPC_RecordChild0,
              OPC_Scope, 39, 
                OPC_CheckChild0Type, MVT::v4i32,
                OPC_SwitchType , 5,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              39, 
                OPC_CheckChild0Type, MVT::v8i16,
                OPC_SwitchType , 5,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              39, 
                OPC_CheckChild0Type, MVT::v16i8,
                OPC_SwitchType , 5,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              39, 
                OPC_CheckChild0Type, MVT::v2f64,
                OPC_SwitchType , 5,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              39, 
                OPC_CheckChild0Type, MVT::v4f32,
                OPC_SwitchType , 5,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              39, 
                OPC_CheckChild0Type, MVT::v2i64,
                OPC_SwitchType , 5,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                5,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              19, 
                OPC_CheckChild0Type, MVT::v1i64,
                OPC_SwitchType , 3,  MVT::v8i8,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v4i16,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v2i32,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              19, 
                OPC_CheckChild0Type, MVT::v2i32,
                OPC_SwitchType , 3,  MVT::v8i8,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v4i16,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v1i64,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              19, 
                OPC_CheckChild0Type, MVT::v4i16,
                OPC_SwitchType , 3,  MVT::v8i8,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v2i32,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v1i64,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              19, 
                OPC_CheckChild0Type, MVT::v8i8,
                OPC_SwitchType , 3,  MVT::v4i16,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v2i32,
                  OPC_CompleteMatch, 1, 0, 

                3,  MVT::v1i64,
                  OPC_CompleteMatch, 1, 0, 

                0, 
              44, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_SwitchType , 8,  MVT::v1i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64to64rr), 0,
                      1, MVT::v1i64, 1, 0, 
                8,  MVT::v2i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64to64rr), 0,
                      1, MVT::v2i32, 1, 0, 
                8,  MVT::v4i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64to64rr), 0,
                      1, MVT::v4i16, 1, 0, 
                8,  MVT::v8i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64to64rr), 0,
                      1, MVT::v8i8, 1, 0, 
                0, 
              44, 
                OPC_CheckChild0Type, MVT::f64,
                OPC_SwitchType , 8,  MVT::v1i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVFR642Qrr), 0,
                      1, MVT::v1i64, 1, 0, 
                8,  MVT::v2i32,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVFR642Qrr), 0,
                      1, MVT::v2i32, 1, 0, 
                8,  MVT::v4i16,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVFR642Qrr), 0,
                      1, MVT::v4i16, 1, 0, 
                8,  MVT::v8i8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVFR642Qrr), 0,
                      1, MVT::v8i8, 1, 0, 
                0, 
              0, 
            0, 
          106|128,1,  TARGET_OPCODE(ISD::SIGN_EXTEND_INREG),
            OPC_RecordChild0,
            OPC_MoveChild, 1,
            OPC_Scope, 49, 
              OPC_CheckValueType, MVT::i16,
              OPC_MoveParent,
              OPC_SwitchType , 20,  MVT::i32,
                OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i16, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rr16), 0,
                    1, MVT::i32, 1, 2, 
              20,  MVT::i64,
                OPC_EmitInteger, MVT::i32, X86::sub_16bit,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i16, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rr16), 0,
                    1, MVT::i64, 1, 2, 
              0, 
            25, 
              OPC_CheckValueType, MVT::i32,
              OPC_MoveParent,
              OPC_CheckType, MVT::i64,
              OPC_EmitInteger, MVT::i32, X86::sub_32bit,
              OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                  1, MVT::i32, 2, 0, 1, 
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rr32), 0,
                  1, MVT::i64, 1, 2, 
            23|128,1, 
              OPC_CheckValueType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 20,  MVT::i64,
                OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::i8, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX64rr8), 0,
                    1, MVT::i64, 1, 2, 
              60,  MVT::i32,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rr8), 0,
                      1, MVT::i32, 1, 2, 
                34, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i32, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX32rr8), 0,
                      1, MVT::i32, 1, 4, 
                0, 
              60,  MVT::i16,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 4,
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX16rr8), 0,
                      1, MVT::i16, 1, 2, 
                34, 
                  OPC_CheckPatternPredicate, 3,
                  OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::i16, 2, 0, 1, 
                  OPC_EmitInteger, MVT::i32, X86::sub_8bit,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::i8, 2, 2, 3, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSX16rr8), 0,
                      1, MVT::i16, 1, 4, 
                0, 
              0, 
            0, 
          7|128,10,  TARGET_OPCODE(ISD::FADD),
            OPC_Scope, 10|128,1, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 49, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              73, 
                OPC_CheckPredicate, 32,
                OPC_Scope, 45, 
                  OPC_CheckPredicate, 39,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                  17,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                22, 
                  OPC_CheckPredicate, 40,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            12|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 50, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              75, 
                OPC_CheckPredicate, 32,
                OPC_Scope, 46, 
                  OPC_CheckPredicate, 39,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_SwitchType , 19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                  17,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                23, 
                  OPC_CheckPredicate, 40,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            105, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            105, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            21|128,1, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::FILD),
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_MoveChild, 2,
              OPC_Scope, 67, 
                OPC_CheckValueType, MVT::i16,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI16m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI16m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI16m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_CheckValueType, MVT::i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI32m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI32m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI32m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            22|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::FILD),
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_MoveChild, 2,
              OPC_Scope, 68, 
                OPC_CheckValueType, MVT::i16,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI16m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI16m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI16m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              68, 
                OPC_CheckValueType, MVT::i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI32m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI32m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_FpI32m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            120|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 94, 
                OPC_RecordChild1,
                OPC_SwitchType , 38,  MVT::f32,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 7,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp32), 0,
                        1, MVT::f32, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSSrr), 0,
                        1, MVT::f32, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSSrr), 0,
                        1, MVT::f32, 2, 0, 1, 
                  0, 
                38,  MVT::f64,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp64), 0,
                        1, MVT::f64, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDSDrr), 0,
                        1, MVT::f64, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDSDrr), 0,
                        1, MVT::f64, 2, 0, 1, 
                  0, 
                9,  MVT::f80,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADD_Fp80), 0,
                      1, MVT::f80, 2, 0, 1, 
                0, 
              20|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_SwitchType , 42,  MVT::v4f32,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                42,  MVT::v2f64,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                19,  MVT::v8f32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4f64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            21|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::v4f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              19,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 2, 3, 4, 5, 6, 7, 
              19,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            86, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v4f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              26,  MVT::v2f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::ADDPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              11,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              11,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VADDPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            0, 
          47|128,7,  TARGET_OPCODE(ISD::FSUB),
            OPC_RecordChild0,
            OPC_Scope, 95|128,4, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 94|128,2,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 49, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                  19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                73, 
                  OPC_CheckPredicate, 32,
                  OPC_Scope, 45, 
                    OPC_CheckPredicate, 39,
                    OPC_MoveParent,
                    OPC_SwitchType , 19,  MVT::f64,
                      OPC_CheckPatternPredicate, 8,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    17,  MVT::f80,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_CheckPredicate, 40,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                49, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                  19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                73, 
                  OPC_CheckPredicate, 32,
                  OPC_Scope, 45, 
                    OPC_CheckPredicate, 39,
                    OPC_MoveParent,
                    OPC_SwitchType , 19,  MVT::f64,
                      OPC_CheckPatternPredicate, 8,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    17,  MVT::f80,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_CheckPredicate, 40,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                93, 
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 42,  MVT::f32,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 1,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  42,  MVT::f64,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                0, 
              117|128,1,  TARGET_OPCODE(X86ISD::FILD),
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_Scope, 118, 
                  OPC_CheckValueType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 36,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_FpI16m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_FpI16m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  36,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_FpI16m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_FpI16m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  34,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_FpI16m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_FpI16m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                118, 
                  OPC_CheckValueType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 36,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_FpI32m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_FpI32m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  36,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_FpI32m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_FpI32m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  34,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_FpI32m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBR_FpI32m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                0, 
              0, 
            94, 
              OPC_RecordChild1,
              OPC_SwitchType , 38,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 7,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp32), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              38,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp64), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              9,  MVT::f80,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SUB_Fp80), 0,
                    1, MVT::f80, 2, 0, 1, 
              0, 
            20|128,1, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::v4f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              19,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              19,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            85, 
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v4f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              26,  MVT::v2f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SUBPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              11,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              11,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSUBPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            0, 
          7|128,10,  TARGET_OPCODE(ISD::FMUL),
            OPC_Scope, 10|128,1, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 49, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              73, 
                OPC_CheckPredicate, 32,
                OPC_Scope, 45, 
                  OPC_CheckPredicate, 39,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                  17,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                22, 
                  OPC_CheckPredicate, 40,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            12|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 50, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              75, 
                OPC_CheckPredicate, 32,
                OPC_Scope, 46, 
                  OPC_CheckPredicate, 39,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_SwitchType , 19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                  17,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                  0, 
                23, 
                  OPC_CheckPredicate, 40,
                  OPC_MoveParent,
                  OPC_RecordChild1,
                  OPC_CheckType, MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            105, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            105, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            21|128,1, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::FILD),
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_MoveChild, 2,
              OPC_Scope, 67, 
                OPC_CheckValueType, MVT::i16,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI16m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI16m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI16m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_CheckValueType, MVT::i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI32m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI32m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI32m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            22|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(X86ISD::FILD),
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_MoveChild, 2,
              OPC_Scope, 68, 
                OPC_CheckValueType, MVT::i16,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI16m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI16m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI16m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              68, 
                OPC_CheckValueType, MVT::i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_SwitchType , 19,  MVT::f32,
                  OPC_CheckPatternPredicate, 7,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI32m32), 0|OPFL_Chain,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19,  MVT::f64,
                  OPC_CheckPatternPredicate, 8,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI32m64), 0|OPFL_Chain,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                17,  MVT::f80,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_FpI32m80), 0|OPFL_Chain,
                      1, MVT::f80, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            120|128,1, 
              OPC_RecordChild0,
              OPC_Scope, 94, 
                OPC_RecordChild1,
                OPC_SwitchType , 38,  MVT::f32,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 7,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp32), 0,
                        1, MVT::f32, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSSrr), 0,
                        1, MVT::f32, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSSrr), 0,
                        1, MVT::f32, 2, 0, 1, 
                  0, 
                38,  MVT::f64,
                  OPC_Scope, 11, 
                    OPC_CheckPatternPredicate, 8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp64), 0,
                        1, MVT::f64, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULSDrr), 0,
                        1, MVT::f64, 2, 0, 1, 
                  11, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MULSDrr), 0,
                        1, MVT::f64, 2, 0, 1, 
                  0, 
                9,  MVT::f80,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MUL_Fp80), 0,
                      1, MVT::f80, 2, 0, 1, 
                0, 
              20|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_SwitchType , 42,  MVT::v4f32,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 1,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                42,  MVT::v2f64,
                  OPC_Scope, 19, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                  19, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                19,  MVT::v8f32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4f64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            21|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::v4f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              19,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 2, 3, 4, 5, 6, 7, 
              19,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 2, 3, 4, 5, 6, 7, 
              0, 
            86, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v4f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              26,  MVT::v2f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MULPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              11,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              11,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMULPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            0, 
          47|128,7,  TARGET_OPCODE(ISD::FDIV),
            OPC_RecordChild0,
            OPC_Scope, 95|128,4, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 94|128,2,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 49, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                  19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                73, 
                  OPC_CheckPredicate, 32,
                  OPC_Scope, 45, 
                    OPC_CheckPredicate, 39,
                    OPC_MoveParent,
                    OPC_SwitchType , 19,  MVT::f64,
                      OPC_CheckPatternPredicate, 8,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    17,  MVT::f80,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_CheckPredicate, 40,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                49, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_SwitchType , 19,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                  19,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                73, 
                  OPC_CheckPredicate, 32,
                  OPC_Scope, 45, 
                    OPC_CheckPredicate, 39,
                    OPC_MoveParent,
                    OPC_SwitchType , 19,  MVT::f64,
                      OPC_CheckPatternPredicate, 8,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    17,  MVT::f80,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  22, 
                    OPC_CheckPredicate, 40,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                93, 
                  OPC_CheckPredicate, 3,
                  OPC_MoveParent,
                  OPC_SwitchType , 42,  MVT::f32,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 1,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  42,  MVT::f64,
                    OPC_Scope, 19, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    19, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                      OPC_EmitMergeInputChains1_1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                0, 
              117|128,1,  TARGET_OPCODE(X86ISD::FILD),
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_MoveChild, 2,
                OPC_Scope, 118, 
                  OPC_CheckValueType, MVT::i16,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 36,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_FpI16m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_FpI16m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  36,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_FpI16m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_FpI16m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  34,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_FpI16m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_FpI16m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                118, 
                  OPC_CheckValueType, MVT::i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 36,  MVT::f32,
                    OPC_CheckPatternPredicate, 7,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_FpI32m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_FpI32m32), 0|OPFL_Chain,
                          1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  36,  MVT::f64,
                    OPC_CheckPatternPredicate, 8,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_FpI32m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_FpI32m64), 0|OPFL_Chain,
                          1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  34,  MVT::f80,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_Scope, 13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_FpI32m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    13, 
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVR_FpI32m80), 0|OPFL_Chain,
                          1, MVT::f80, 6, 0, 3, 4, 5, 6, 7, 
                    0, 
                  0, 
                0, 
              0, 
            94, 
              OPC_RecordChild1,
              OPC_SwitchType , 38,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 7,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp32), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              38,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp64), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              9,  MVT::f80,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::DIV_Fp80), 0,
                    1, MVT::f80, 2, 0, 1, 
              0, 
            20|128,1, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::v4f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              19,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              19,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            85, 
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v4f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              26,  MVT::v2f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::DIVPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              11,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              11,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VDIVPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            0, 
          87|128,1,  TARGET_OPCODE(ISD::SINT_TO_FP),
            OPC_Scope, 120, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 50,  MVT::i32,
                OPC_Scope, 23, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                23, 
                  OPC_CheckPredicate, 8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                0, 
              54,  MVT::i64,
                OPC_Scope, 25, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SS64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                25, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                0, 
              0, 
            91, 
              OPC_RecordChild0,
              OPC_Scope, 28, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_SwitchType , 10,  MVT::f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SSrr), 0,
                      1, MVT::f32, 1, 0, 
                10,  MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SDrr), 0,
                      1, MVT::f64, 1, 0, 
                0, 
              28, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_SwitchType , 10,  MVT::f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SS64rr), 0,
                      1, MVT::f32, 1, 0, 
                10,  MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSI2SD64rr), 0,
                      1, MVT::f64, 1, 0, 
                0, 
              14, 
                OPC_CheckChild0Type, MVT::v4i32,
                OPC_CheckType, MVT::v4f32,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTDQ2PSrr), 0,
                    1, MVT::v4f32, 1, 0, 
              14, 
                OPC_CheckChild0Type, MVT::v2i32,
                OPC_CheckType, MVT::v2f64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_CVTPI2PDrr), 0,
                    1, MVT::v2f64, 1, 0, 
              0, 
            0, 
          111,  TARGET_OPCODE(ISD::FP_ROUND),
            OPC_Scope, 37, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::f64,
              OPC_MoveParent,
              OPC_CheckType, MVT::f32,
              OPC_CheckPatternPredicate, 19,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::f32, 5, 2, 3, 4, 5, 6, 
            70, 
              OPC_RecordChild0,
              OPC_SwitchType , 49,  MVT::f32,
                OPC_Scope, 16, 
                  OPC_CheckChild0Type, MVT::f64,
                  OPC_CheckPatternPredicate, 7,
                  OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::f32, 2, 0, 1, 
                16, 
                  OPC_CheckChild0Type, MVT::f80,
                  OPC_CheckPatternPredicate, 7,
                  OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::f32, 2, 0, 1, 
                12, 
                  OPC_CheckChild0Type, MVT::f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSD2SSrr), 0,
                      1, MVT::f32, 1, 0, 
                0, 
              14,  MVT::f64,
                OPC_CheckPatternPredicate, 8,
                OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::f64, 2, 0, 1, 
              0, 
            0, 
          23|128,2,  TARGET_OPCODE(X86ISD::FAND),
            OPC_Scope, 107, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            107, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsANDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            60, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsANDPSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsANDPSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              26,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsANDPDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsANDPDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              0, 
            0, 
          23|128,2,  TARGET_OPCODE(X86ISD::FOR),
            OPC_Scope, 107, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            107, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            60, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsORPSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsORPSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              26,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsORPDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsORPDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              0, 
            0, 
          23|128,2,  TARGET_OPCODE(X86ISD::FXOR),
            OPC_Scope, 107, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            107, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsXORPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 2, 3, 4, 5, 6, 7, 
                0, 
              0, 
            60, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsXORPSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsXORPSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              26,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VFsXORPDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::FsXORPDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              0, 
            0, 
          20|128,3,  TARGET_OPCODE(X86ISD::FMAX),
            OPC_RecordChild0,
            OPC_Scope, 104, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            59, 
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              26,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              0, 
            20|128,1, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::v4f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              19,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              19,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            85, 
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v4f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              26,  MVT::v2f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MAXPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              11,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              11,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMAXPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            0, 
          20|128,3,  TARGET_OPCODE(X86ISD::FMIN),
            OPC_RecordChild0,
            OPC_Scope, 104, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            59, 
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSSrr), 0,
                      1, MVT::f32, 2, 0, 1, 
                0, 
              26,  MVT::f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINSDrr), 0,
                      1, MVT::f64, 2, 0, 1, 
                0, 
              0, 
            20|128,1, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 42,  MVT::v4f32,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              42,  MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                19, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              19,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
              19,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            85, 
              OPC_RecordChild1,
              OPC_SwitchType , 26,  MVT::v4f32,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPSrr), 0,
                      1, MVT::v4f32, 2, 0, 1, 
                0, 
              26,  MVT::v2f64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                11, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MINPDrr), 0,
                      1, MVT::v2f64, 2, 0, 1, 
                0, 
              11,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPSYrr), 0,
                    1, MVT::v8f32, 2, 0, 1, 
              11,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMINPDYrr), 0,
                    1, MVT::v4f64, 2, 0, 1, 
              0, 
            0, 
          91|128,2,  TARGET_OPCODE(ISD::FSQRT),
            OPC_Scope, 55, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::f32,
                OPC_CheckPatternPredicate, 24,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
              18,  MVT::f64,
                OPC_CheckPatternPredicate, 19,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              0, 
            65, 
              OPC_RecordChild0,
              OPC_SwitchType , 24,  MVT::f32,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 7,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRT_Fp32), 0,
                      1, MVT::f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSSr), 0,
                      1, MVT::f32, 1, 0, 
                0, 
              24,  MVT::f64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 8,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRT_Fp64), 0,
                      1, MVT::f64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTSDr), 0,
                      1, MVT::f64, 1, 0, 
                0, 
              8,  MVT::f80,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRT_Fp80), 0,
                    1, MVT::f80, 1, 0, 
              0, 
            13|128,1, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 40,  MVT::v4f32,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              40,  MVT::v2f64,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              18,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              18,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
              0, 
            79, 
              OPC_RecordChild0,
              OPC_SwitchType , 24,  MVT::v4f32,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSr), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPSr), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              24,  MVT::v2f64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDr), 0,
                      1, MVT::v2f64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SQRTPDr), 0,
                      1, MVT::v2f64, 1, 0, 
                0, 
              10,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPSYr), 0,
                    1, MVT::v8f32, 1, 0, 
              10,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSQRTPDYr), 0,
                    1, MVT::v4f64, 1, 0, 
              0, 
            0, 
          44|128,1,  TARGET_OPCODE(X86ISD::FRSQRT),
            OPC_Scope, 33, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_CheckType, MVT::f32,
              OPC_CheckPatternPredicate, 24,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::f32, 5, 2, 3, 4, 5, 6, 
            13, 
              OPC_RecordChild0,
              OPC_CheckType, MVT::f32,
              OPC_CheckPatternPredicate, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTSSr), 0,
                  1, MVT::f32, 1, 0, 
            79, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 40,  MVT::v4f32,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              18,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              0, 
            41, 
              OPC_RecordChild0,
              OPC_SwitchType , 24,  MVT::v4f32,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSr), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RSQRTPSr), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              10,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRSQRTPSYr), 0,
                    1, MVT::v8f32, 1, 0, 
              0, 
            0, 
          44|128,1,  TARGET_OPCODE(X86ISD::FRCP),
            OPC_Scope, 33, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_CheckType, MVT::f32,
              OPC_CheckPatternPredicate, 24,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPSSm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::f32, 5, 2, 3, 4, 5, 6, 
            13, 
              OPC_RecordChild0,
              OPC_CheckType, MVT::f32,
              OPC_CheckPatternPredicate, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPSSr), 0,
                  1, MVT::f32, 1, 0, 
            79, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 40,  MVT::v4f32,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPPSm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                0, 
              18,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
              0, 
            41, 
              OPC_RecordChild0,
              OPC_SwitchType , 24,  MVT::v4f32,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSr), 0,
                      1, MVT::v4f32, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::RCPPSr), 0,
                      1, MVT::v4f32, 1, 0, 
                0, 
              10,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VRCPPSYr), 0,
                    1, MVT::v8f32, 1, 0, 
              0, 
            0, 
          114,  TARGET_OPCODE(ISD::FP_EXTEND),
            OPC_Scope, 37, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::f32,
              OPC_MoveParent,
              OPC_CheckType, MVT::f64,
              OPC_CheckPatternPredicate, 2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::f64, 5, 2, 3, 4, 5, 6, 
            73, 
              OPC_RecordChild0,
              OPC_Scope, 50, 
                OPC_CheckChild0Type, MVT::f32,
                OPC_SwitchType , 28,  MVT::f64,
                  OPC_Scope, 14, 
                    OPC_CheckPatternPredicate, 7,
                    OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                        1, MVT::f64, 2, 0, 1, 
                  10, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CVTSS2SDrr), 0,
                        1, MVT::f64, 1, 0, 
                  0, 
                14,  MVT::f80,
                  OPC_CheckPatternPredicate, 7,
                  OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                      1, MVT::f80, 2, 0, 1, 
                0, 
              18, 
                OPC_CheckChild0Type, MVT::f64,
                OPC_CheckType, MVT::f80,
                OPC_CheckPatternPredicate, 8,
                OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::COPY_TO_REGCLASS), 0,
                    1, MVT::f80, 2, 0, 1, 
              0, 
            0, 
          70|128,1,  TARGET_OPCODE(X86ISD::FILD),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 2,
            OPC_Scope, 63, 
              OPC_CheckValueType, MVT::i16,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::f32,
                OPC_CheckPatternPredicate, 7,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp16m32), 0|OPFL_Chain,
                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
              18,  MVT::f64,
                OPC_CheckPatternPredicate, 8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp16m64), 0|OPFL_Chain,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              16,  MVT::f80,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp16m80), 0|OPFL_Chain,
                    1, MVT::f80, 5, 2, 3, 4, 5, 6, 
              0, 
            63, 
              OPC_CheckValueType, MVT::i32,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::f32,
                OPC_CheckPatternPredicate, 7,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp32m32), 0|OPFL_Chain,
                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
              18,  MVT::f64,
                OPC_CheckPatternPredicate, 8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp32m64), 0|OPFL_Chain,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              16,  MVT::f80,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp32m80), 0|OPFL_Chain,
                    1, MVT::f80, 5, 2, 3, 4, 5, 6, 
              0, 
            63, 
              OPC_CheckValueType, MVT::i64,
              OPC_MoveParent,
              OPC_SwitchType , 18,  MVT::f32,
                OPC_CheckPatternPredicate, 7,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp64m32), 0|OPFL_Chain,
                    1, MVT::f32, 5, 2, 3, 4, 5, 6, 
              18,  MVT::f64,
                OPC_CheckPatternPredicate, 8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp64m64), 0|OPFL_Chain,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              16,  MVT::f80,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp64m80), 0|OPFL_Chain,
                    1, MVT::f80, 5, 2, 3, 4, 5, 6, 
              0, 
            0, 
          72,  TARGET_OPCODE(X86ISD::FLD),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 2,
            OPC_Scope, 21, 
              OPC_CheckValueType, MVT::f32,
              OPC_MoveParent,
              OPC_CheckType, MVT::f32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp32m), 0|OPFL_Chain,
                  1, MVT::f32, 5, 2, 3, 4, 5, 6, 
            21, 
              OPC_CheckValueType, MVT::f64,
              OPC_MoveParent,
              OPC_CheckType, MVT::f64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp64m), 0|OPFL_Chain,
                  1, MVT::f64, 5, 2, 3, 4, 5, 6, 
            21, 
              OPC_CheckValueType, MVT::f80,
              OPC_MoveParent,
              OPC_CheckType, MVT::f80,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp80m), 0|OPFL_Chain,
                  1, MVT::f80, 5, 2, 3, 4, 5, 6, 
            0, 
          25,  TARGET_OPCODE(X86ISD::FILD_FLAG),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 2,
            OPC_CheckValueType, MVT::i64,
            OPC_MoveParent,
            OPC_CheckType, MVT::f64,
            OPC_CheckComplexPat, /*CP*/0, /*#*/1,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::ILD_Fp64m64), 0|OPFL_Chain|OPFL_FlagOutput,
                1, MVT::f64, 5, 2, 3, 4, 5, 6, 
          94|128,1,  TARGET_OPCODE(ISD::ConstantFP),
            OPC_SwitchType , 78,  MVT::f32,
              OPC_Scope, 11, 
                OPC_CheckPredicate, 82,
                OPC_CheckPatternPredicate, 7,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp032), 0,
                    1, MVT::f32, 0, 
              11, 
                OPC_CheckPredicate, 83,
                OPC_CheckPatternPredicate, 7,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp132), 0,
                    1, MVT::f32, 0, 
              11, 
                OPC_CheckPredicate, 84,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FsFLD0SS), 0,
                    1, MVT::f32, 0, 
              19, 
                OPC_CheckPredicate, 85,
                OPC_CheckPatternPredicate, 7,
                OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp032), 0,
                    1, MVT::f32, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp32), 0,
                    1, MVT::f32, 1, 0, 
              19, 
                OPC_CheckPredicate, 86,
                OPC_CheckPatternPredicate, 7,
                OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp132), 0,
                    1, MVT::f32, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp32), 0,
                    1, MVT::f32, 1, 0, 
              0, 
            78,  MVT::f64,
              OPC_Scope, 11, 
                OPC_CheckPredicate, 82,
                OPC_CheckPatternPredicate, 8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp064), 0,
                    1, MVT::f64, 0, 
              11, 
                OPC_CheckPredicate, 83,
                OPC_CheckPatternPredicate, 8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp164), 0,
                    1, MVT::f64, 0, 
              11, 
                OPC_CheckPredicate, 82,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FsFLD0SD), 0,
                    1, MVT::f64, 0, 
              19, 
                OPC_CheckPredicate, 85,
                OPC_CheckPatternPredicate, 8,
                OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp064), 0,
                    1, MVT::f64, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp64), 0,
                    1, MVT::f64, 1, 0, 
              19, 
                OPC_CheckPredicate, 86,
                OPC_CheckPatternPredicate, 8,
                OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp164), 0,
                    1, MVT::f64, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp64), 0,
                    1, MVT::f64, 1, 0, 
              0, 
            58,  MVT::f80,
              OPC_Scope, 9, 
                OPC_CheckPredicate, 82,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp080), 0,
                    1, MVT::f80, 0, 
              9, 
                OPC_CheckPredicate, 83,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp180), 0,
                    1, MVT::f80, 0, 
              17, 
                OPC_CheckPredicate, 85,
                OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp080), 0,
                    1, MVT::f80, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp80), 0,
                    1, MVT::f80, 1, 0, 
              17, 
                OPC_CheckPredicate, 86,
                OPC_EmitNode, TARGET_OPCODE(X86::LD_Fp180), 0,
                    1, MVT::f80, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp80), 0,
                    1, MVT::f80, 1, 0, 
              0, 
            0, 
          37,  TARGET_OPCODE(ISD::FNEG),
            OPC_RecordChild0,
            OPC_SwitchType , 10,  MVT::f32,
              OPC_CheckPatternPredicate, 7,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp32), 0,
                  1, MVT::f32, 1, 0, 
            10,  MVT::f64,
              OPC_CheckPatternPredicate, 8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp64), 0,
                  1, MVT::f64, 1, 0, 
            8,  MVT::f80,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CHS_Fp80), 0,
                  1, MVT::f80, 1, 0, 
            0, 
          37,  TARGET_OPCODE(ISD::FABS),
            OPC_RecordChild0,
            OPC_SwitchType , 10,  MVT::f32,
              OPC_CheckPatternPredicate, 7,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ABS_Fp32), 0,
                  1, MVT::f32, 1, 0, 
            10,  MVT::f64,
              OPC_CheckPatternPredicate, 8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ABS_Fp64), 0,
                  1, MVT::f64, 1, 0, 
            8,  MVT::f80,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ABS_Fp80), 0,
                  1, MVT::f80, 1, 0, 
            0, 
          37,  TARGET_OPCODE(ISD::FSIN),
            OPC_RecordChild0,
            OPC_SwitchType , 10,  MVT::f32,
              OPC_CheckPatternPredicate, 7,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SIN_Fp32), 0,
                  1, MVT::f32, 1, 0, 
            10,  MVT::f64,
              OPC_CheckPatternPredicate, 8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SIN_Fp64), 0,
                  1, MVT::f64, 1, 0, 
            8,  MVT::f80,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SIN_Fp80), 0,
                  1, MVT::f80, 1, 0, 
            0, 
          37,  TARGET_OPCODE(ISD::FCOS),
            OPC_RecordChild0,
            OPC_SwitchType , 10,  MVT::f32,
              OPC_CheckPatternPredicate, 7,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::COS_Fp32), 0,
                  1, MVT::f32, 1, 0, 
            10,  MVT::f64,
              OPC_CheckPatternPredicate, 8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::COS_Fp64), 0,
                  1, MVT::f64, 1, 0, 
            8,  MVT::f80,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::COS_Fp80), 0,
                  1, MVT::f80, 1, 0, 
            0, 
          121|128,33,  TARGET_OPCODE(ISD::VECTOR_SHUFFLE),
            OPC_Scope, 76, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_Scope, 20, 
                OPC_CheckPredicate, 87,
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              20, 
                OPC_CheckPredicate, 88,
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              0, 
            57, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_CheckPredicate, 11,
              OPC_SwitchType , 17,  MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
              17,  MVT::v2i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            83, 
              OPC_RecordNode,
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
              OPC_MoveParent,
              OPC_CheckPredicate, 89,
              OPC_CheckType, MVT::v4i32,
              OPC_Scope, 22, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
              22, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
              0, 
            96, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 47,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 90,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              39,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 90,
                OPC_CheckType, MVT::v2i64,
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
              0, 
            86|128,1, 
              OPC_RecordNode,
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_Scope, 26|128,1, 
                OPC_CheckPredicate, 21,
                OPC_SwitchType , 112,  MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v8i16,
                  OPC_Scope, 24, 
                    OPC_CheckPredicate, 91,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitNodeXForm, 3, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
                  24, 
                    OPC_CheckPredicate, 92,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitNodeXForm, 4, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
                  24, 
                    OPC_CheckPredicate, 91,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitNodeXForm, 3, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
                  24, 
                    OPC_CheckPredicate, 92,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitNodeXForm, 4, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
                  0, 
                34,  MVT::v4f32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_MoveChild, 1,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                  OPC_MoveParent,
                  OPC_CheckPredicate, 89,
                  OPC_CheckType, MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              36, 
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 93,
                OPC_CheckType, MVT::v4i16,
                OPC_CheckPatternPredicate, 9,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitNodeXForm, 5, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSHUFWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 3, 4, 5, 6, 7, 8, 
              0, 
            43|128,2, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_Scope, 67, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 19,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 19,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 19,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              67, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 19,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            55, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckPredicate, 95,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckPatternPredicate, 2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/3,
              OPC_EmitMergeInputChains, 1, 2, 
              OPC_EmitNodeXForm, 2, 0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i32, 7, 1, 4, 5, 6, 7, 8, 9, 
            23|128,3, 
              OPC_RecordChild0,
              OPC_Scope, 79|128,2, 
                OPC_MoveChild, 1,
                OPC_SwitchOpcode , 61|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
                  OPC_MoveChild, 0,
                  OPC_SwitchOpcode , 22|128,1,  TARGET_OPCODE(ISD::LOAD),
                    OPC_RecordMemRef,
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckPredicate, 2,
                    OPC_CheckPredicate, 3,
                    OPC_CheckType, MVT::v1i64,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_Scope, 67, 
                      OPC_CheckPredicate, 96,
                      OPC_SwitchType , 19,  MVT::v8i8,
                        OPC_CheckPatternPredicate, 9,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
                      19,  MVT::v4i16,
                        OPC_CheckPatternPredicate, 9,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
                      19,  MVT::v2i32,
                        OPC_CheckPatternPredicate, 9,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
                      0, 
                    67, 
                      OPC_CheckPredicate, 97,
                      OPC_SwitchType , 19,  MVT::v8i8,
                        OPC_CheckPatternPredicate, 9,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
                      19,  MVT::v4i16,
                        OPC_CheckPatternPredicate, 9,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
                      19,  MVT::v2i32,
                        OPC_CheckPatternPredicate, 9,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                        OPC_EmitMergeInputChains1_1,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
                      0, 
                    0, 
                  28,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                    OPC_RecordNode,
                    OPC_CheckFoldableChainNode,
                    OPC_RecordChild1,
                    OPC_CheckType, MVT::v2i64,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 98,
                    OPC_CheckType, MVT::v4i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain,
                        1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                29,  TARGET_OPCODE(ISD::UNDEF),
                  OPC_MoveParent,
                  OPC_SwitchType , 11,  MVT::v2i64,
                    OPC_CheckPredicate, 90,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                        1, MVT::v2i64, 2, 0, 0, 
                  11,  MVT::v4i32,
                    OPC_CheckPredicate, 99,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
                        1, MVT::v4i32, 2, 0, 0, 
                  0, 
                103,  TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 21,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_Scope, 21, 
                    OPC_CheckPredicate, 94,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  21, 
                    OPC_CheckPredicate, 12,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  21, 
                    OPC_CheckPredicate, 94,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  21, 
                    OPC_CheckPredicate, 12,
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
                  0, 
                0, 
              29, 
                OPC_RecordChild1,
                OPC_CheckType, MVT::v4i32,
                OPC_Scope, 11, 
                  OPC_CheckPredicate, 98,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11, 
                  OPC_CheckPredicate, 100,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                0, 
              36, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_Scope, 12, 
                  OPC_CheckPredicate, 87,
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
                      1, MVT::v4i32, 1, 0, 
                12, 
                  OPC_CheckPredicate, 88,
                  OPC_CheckPatternPredicate, 14,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
                      1, MVT::v4i32, 1, 0, 
                0, 
              0, 
            46, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_Scope, 16, 
                OPC_CheckPredicate, 101,
                OPC_CheckPatternPredicate, 25,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                    1, MVT::v4i32, 2, 1, 2, 
              16, 
                OPC_CheckPredicate, 102,
                OPC_CheckPatternPredicate, 25,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                    1, MVT::v4i32, 2, 1, 2, 
              0, 
            24|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 82, 
                OPC_RecordChild1,
                OPC_Scope, 50, 
                  OPC_CheckPredicate, 103,
                  OPC_SwitchType , 21,  MVT::v4i32,
                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::f32, 2, 1, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                        1, MVT::v4i32, 2, 0, 3, 
                  21,  MVT::v2i64,
                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::f64, 2, 1, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                        1, MVT::v2i64, 2, 0, 3, 
                  0, 
                27, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckType, MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::f64, 2, 1, 2, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                      1, MVT::v4i32, 2, 0, 3, 
                0, 
              64|128,1, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_Scope, 15, 
                  OPC_CheckPredicate, 104,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
                      1, MVT::v2i64, 2, 0, 0, 
                15, 
                  OPC_CheckPredicate, 12,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
                      1, MVT::v2i64, 2, 0, 0, 
                37, 
                  OPC_CheckPredicate, 101,
                  OPC_SwitchType , 9,  MVT::v16i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
                        1, MVT::v16i8, 2, 0, 0, 
                  9,  MVT::v8i16,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
                        1, MVT::v8i16, 2, 0, 0, 
                  9,  MVT::v4i32,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
                        1, MVT::v4i32, 2, 0, 0, 
                  0, 
                37, 
                  OPC_CheckPredicate, 102,
                  OPC_SwitchType , 9,  MVT::v16i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
                        1, MVT::v16i8, 2, 0, 0, 
                  9,  MVT::v8i16,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
                        1, MVT::v8i16, 2, 0, 0, 
                  9,  MVT::v4i32,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
                        1, MVT::v4i32, 2, 0, 0, 
                  0, 
                37, 
                  OPC_CheckPredicate, 105,
                  OPC_SwitchType , 9,  MVT::v8i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrr), 0,
                        1, MVT::v8i8, 2, 0, 0, 
                  9,  MVT::v4i16,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrr), 0,
                        1, MVT::v4i16, 2, 0, 0, 
                  9,  MVT::v2i32,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
                        1, MVT::v2i32, 2, 0, 0, 
                  0, 
                37, 
                  OPC_CheckPredicate, 106,
                  OPC_SwitchType , 9,  MVT::v8i8,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrr), 0,
                        1, MVT::v8i8, 2, 0, 0, 
                  9,  MVT::v4i16,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrr), 0,
                        1, MVT::v4i16, 2, 0, 0, 
                  9,  MVT::v2i32,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrr), 0,
                        1, MVT::v2i32, 2, 0, 0, 
                  0, 
                0, 
              0, 
            39, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BUILD_VECTOR),
              OPC_CheckPredicate, 107,
              OPC_MoveParent,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_RecordChild0,
              OPC_CheckChild0Type, MVT::v1i64,
              OPC_CheckType, MVT::i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckPredicate, 103,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
                  1, MVT::v2i64, 1, 0, 
            44|128,1, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_Scope, 42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 89,
                OPC_CheckType, MVT::v4i32,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
                      1, MVT::v4i32, 2, 1, 2, 
                14, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                      1, MVT::v4i32, 2, 1, 2, 
                0, 
              124, 
                OPC_RecordChild1,
                OPC_CheckPredicate, 108,
                OPC_SwitchType , 15,  MVT::v1i64,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                      1, MVT::v1i64, 3, 2, 1, 3, 
                15,  MVT::v2i32,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                      1, MVT::v2i32, 3, 2, 1, 3, 
                15,  MVT::v4i16,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                      1, MVT::v4i16, 3, 2, 1, 3, 
                15,  MVT::v8i8,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                      1, MVT::v8i8, 3, 2, 1, 3, 
                15,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                      1, MVT::v4i32, 3, 2, 1, 3, 
                15,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                      1, MVT::v8i16, 3, 2, 1, 3, 
                15,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 11,
                  OPC_EmitNodeXForm, 6, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                      1, MVT::v16i8, 3, 2, 1, 3, 
                0, 
              0, 
            39|128,2, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 119,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::f64,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4f32,
                OPC_Scope, 21, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPredicate, 98,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPredicate, 98,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              111,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::f64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_Scope, 21, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPredicate, 98,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPredicate, 98,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              51,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckPredicate, 11,
                OPC_SwitchType , 17,  MVT::v4f32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                17,  MVT::v2f64,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            52, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2f64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
              OPC_MoveParent,
              OPC_CheckPredicate, 90,
              OPC_CheckType, MVT::v4f32,
              OPC_CheckPatternPredicate, 14,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
            45|128,2, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_Scope, 46, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 19,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              46, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 19,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              46, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 19,  MVT::v8f32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4f64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              46, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 19,  MVT::v8f32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v8f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v4f64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              46, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 19,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              46, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 19,  MVT::v4f32,
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
                19,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            11|128,2, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 55,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::i64,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 90,
                OPC_CheckType, MVT::v2f64,
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
              1|128,1,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_SwitchType , 20,  MVT::v2f64,
                  OPC_CheckPredicate, 90,
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                86,  MVT::v4f32,
                  OPC_Scope, 20, 
                    OPC_CheckPredicate, 87,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  20, 
                    OPC_CheckPredicate, 88,
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  20, 
                    OPC_CheckPredicate, 87,
                    OPC_CheckPatternPredicate, 14,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  20, 
                    OPC_CheckPredicate, 88,
                    OPC_CheckPatternPredicate, 14,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              69,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::f64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 90,
                OPC_CheckType, MVT::v2f64,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                18, 
                  OPC_CheckPatternPredicate, 14,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              0, 
            35, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
              OPC_MoveParent,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 11, 
                OPC_CheckPredicate, 90,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                    1, MVT::v4f32, 2, 0, 0, 
              11, 
                OPC_CheckPredicate, 99,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
                    1, MVT::v4f32, 2, 0, 0, 
              0, 
            60|128,1, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckPredicate, 95,
              OPC_SwitchType , 54,  MVT::v4f32,
                OPC_Scope, 25, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 1, 4, 5, 6, 7, 8, 9, 
                25, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 7, 1, 4, 5, 6, 7, 8, 9, 
                0, 
              25,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                OPC_EmitMergeInputChains, 1, 2, 
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8f32, 7, 1, 4, 5, 6, 7, 8, 9, 
              54,  MVT::v2f64,
                OPC_Scope, 25, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 1, 4, 5, 6, 7, 8, 9, 
                25, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                  OPC_EmitMergeInputChains, 1, 2, 
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 7, 1, 4, 5, 6, 7, 8, 9, 
                0, 
              25,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/3,
                OPC_EmitMergeInputChains, 1, 2, 
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f64, 7, 1, 4, 5, 6, 7, 8, 9, 
              0, 
            62, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 13, 
                OPC_CheckPredicate, 98,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLHPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              13, 
                OPC_CheckPredicate, 100,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHLPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              13, 
                OPC_CheckPredicate, 98,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              13, 
                OPC_CheckPredicate, 100,
                OPC_CheckPatternPredicate, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            46, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
              OPC_MoveParent,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 16, 
                OPC_CheckPredicate, 101,
                OPC_CheckPatternPredicate, 25,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                    1, MVT::v4f32, 2, 1, 2, 
              16, 
                OPC_CheckPredicate, 102,
                OPC_CheckPatternPredicate, 25,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                    1, MVT::v4f32, 2, 1, 2, 
              0, 
            90|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 82, 
                OPC_RecordChild1,
                OPC_Scope, 50, 
                  OPC_CheckPredicate, 103,
                  OPC_SwitchType , 21,  MVT::v4f32,
                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::f32, 2, 1, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                        1, MVT::v4f32, 2, 0, 3, 
                  21,  MVT::v2f64,
                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
                    OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                        1, MVT::f64, 2, 1, 2, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                        1, MVT::v2f64, 2, 0, 3, 
                  0, 
                27, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckType, MVT::v4f32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
                  OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                      1, MVT::f64, 2, 1, 2, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                      1, MVT::v4f32, 2, 0, 3, 
                0, 
              68, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_SwitchType , 30,  MVT::v2f64,
                  OPC_Scope, 13, 
                    OPC_CheckPredicate, 104,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
                        1, MVT::v2f64, 2, 0, 0, 
                  13, 
                    OPC_CheckPredicate, 12,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
                        1, MVT::v2f64, 2, 0, 0, 
                  0, 
                26,  MVT::v4f32,
                  OPC_Scope, 11, 
                    OPC_CheckPredicate, 101,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
                        1, MVT::v4f32, 2, 0, 0, 
                  11, 
                    OPC_CheckPredicate, 102,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
                        1, MVT::v4f32, 2, 0, 0, 
                  0, 
                0, 
              61|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 30, 
                  OPC_CheckPredicate, 12,
                  OPC_SwitchType , 11,  MVT::v4f32,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrr), 0,
                        1, MVT::v4f32, 2, 0, 1, 
                  11,  MVT::v2f64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrr), 0,
                        1, MVT::v2f64, 2, 0, 1, 
                  0, 
                30, 
                  OPC_CheckPredicate, 94,
                  OPC_SwitchType , 11,  MVT::v4f32,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrr), 0,
                        1, MVT::v4f32, 2, 0, 1, 
                  11,  MVT::v2f64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrr), 0,
                        1, MVT::v2f64, 2, 0, 1, 
                  0, 
                30, 
                  OPC_CheckPredicate, 12,
                  OPC_SwitchType , 11,  MVT::v8f32,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSYrr), 0,
                        1, MVT::v8f32, 2, 0, 1, 
                  11,  MVT::v4f64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDYrr), 0,
                        1, MVT::v4f64, 2, 0, 1, 
                  0, 
                30, 
                  OPC_CheckPredicate, 94,
                  OPC_SwitchType , 11,  MVT::v8f32,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSYrr), 0,
                        1, MVT::v8f32, 2, 0, 1, 
                  11,  MVT::v4f64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDYrr), 0,
                        1, MVT::v4f64, 2, 0, 1, 
                  0, 
                30, 
                  OPC_CheckPredicate, 12,
                  OPC_SwitchType , 11,  MVT::v4f32,
                    OPC_CheckPatternPredicate, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
                        1, MVT::v4f32, 2, 0, 1, 
                  11,  MVT::v2f64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
                        1, MVT::v2f64, 2, 0, 1, 
                  0, 
                30, 
                  OPC_CheckPredicate, 94,
                  OPC_SwitchType , 11,  MVT::v4f32,
                    OPC_CheckPatternPredicate, 1,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
                        1, MVT::v4f32, 2, 0, 1, 
                  11,  MVT::v2f64,
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
                        1, MVT::v2f64, 2, 0, 1, 
                  0, 
                0, 
              0, 
            40|128,1, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_Scope, 24, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 89,
                OPC_CheckType, MVT::v4f32,
                OPC_CheckPatternPredicate, 2,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                    1, MVT::v4f32, 2, 1, 2, 
              20, 
                OPC_RecordChild1,
                OPC_CheckPredicate, 108,
                OPC_CheckType, MVT::v4f32,
                OPC_CheckPatternPredicate, 11,
                OPC_EmitNodeXForm, 6, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                    1, MVT::v4f32, 3, 2, 1, 3, 
              117, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_SwitchType , 70,  MVT::v8i16,
                  OPC_Scope, 16, 
                    OPC_CheckPredicate, 91,
                    OPC_CheckPatternPredicate, 0,
                    OPC_EmitNodeXForm, 3, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWri), 0,
                        1, MVT::v8i16, 2, 1, 2, 
                  16, 
                    OPC_CheckPredicate, 92,
                    OPC_CheckPatternPredicate, 0,
                    OPC_EmitNodeXForm, 4, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWri), 0,
                        1, MVT::v8i16, 2, 1, 2, 
                  16, 
                    OPC_CheckPredicate, 91,
                    OPC_CheckPatternPredicate, 2,
                    OPC_EmitNodeXForm, 3, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
                        1, MVT::v8i16, 2, 1, 2, 
                  16, 
                    OPC_CheckPredicate, 92,
                    OPC_CheckPatternPredicate, 2,
                    OPC_EmitNodeXForm, 4, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
                        1, MVT::v8i16, 2, 1, 2, 
                  0, 
                17,  MVT::v2i64,
                  OPC_CheckPredicate, 89,
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
                      1, MVT::v2i64, 3, 1, 1, 2, 
                16,  MVT::v4i16,
                  OPC_CheckPredicate, 93,
                  OPC_CheckPatternPredicate, 9,
                  OPC_EmitNodeXForm, 5, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSHUFWri), 0,
                      1, MVT::v4i16, 2, 1, 2, 
                0, 
              0, 
            104|128,1, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_Scope, 56, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 11,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLBWrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLWDrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLDQrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKLQDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              56, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 11,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHBWrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHWDrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHDQrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPUNPCKHQDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              56, 
                OPC_CheckPredicate, 94,
                OPC_SwitchType , 11,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              56, 
                OPC_CheckPredicate, 12,
                OPC_SwitchType , 11,  MVT::v16i8,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
                      1, MVT::v16i8, 2, 0, 1, 
                11,  MVT::v8i16,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
                      1, MVT::v8i16, 2, 0, 1, 
                11,  MVT::v4i32,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
                      1, MVT::v4i32, 2, 0, 1, 
                11,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
                      1, MVT::v2i64, 2, 0, 1, 
                0, 
              0, 
            41, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_CheckPredicate, 95,
              OPC_SwitchType , 15,  MVT::v4i32,
                OPC_CheckPatternPredicate, 2,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
                    1, MVT::v4i32, 3, 1, 2, 3, 
              15,  MVT::v2i64,
                OPC_CheckPatternPredicate, 2,
                OPC_EmitNodeXForm, 2, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
                    1, MVT::v2i64, 3, 1, 2, 3, 
              0, 
            9|128,2, 
              OPC_RecordChild0,
              OPC_Scope, 91, 
                OPC_RecordChild1,
                OPC_Scope, 43, 
                  OPC_CheckPredicate, 96,
                  OPC_SwitchType , 11,  MVT::v8i8,
                    OPC_CheckPatternPredicate, 9,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHBWrr), 0,
                        1, MVT::v8i8, 2, 0, 1, 
                  11,  MVT::v4i16,
                    OPC_CheckPatternPredicate, 9,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHWDrr), 0,
                        1, MVT::v4i16, 2, 0, 1, 
                  11,  MVT::v2i32,
                    OPC_CheckPatternPredicate, 9,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKHDQrr), 0,
                        1, MVT::v2i32, 2, 0, 1, 
                  0, 
                43, 
                  OPC_CheckPredicate, 97,
                  OPC_SwitchType , 11,  MVT::v8i8,
                    OPC_CheckPatternPredicate, 9,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLBWrr), 0,
                        1, MVT::v8i8, 2, 0, 1, 
                  11,  MVT::v4i16,
                    OPC_CheckPatternPredicate, 9,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLWDrr), 0,
                        1, MVT::v4i16, 2, 0, 1, 
                  11,  MVT::v2i32,
                    OPC_CheckPatternPredicate, 9,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
                        1, MVT::v2i32, 2, 0, 1, 
                  0, 
                0, 
              40|128,1, 
                OPC_MoveChild, 1,
                OPC_SwitchOpcode , 71,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                  OPC_RecordChild0,
                  OPC_Scope, 33, 
                    OPC_CheckChild0Type, MVT::f32,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 103,
                    OPC_CheckType, MVT::v4f32,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSSrr), 0,
                          1, MVT::v4f32, 2, 0, 1, 
                    11, 
                      OPC_CheckPatternPredicate, 1,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                          1, MVT::v4f32, 2, 0, 1, 
                    0, 
                  33, 
                    OPC_CheckChild0Type, MVT::f64,
                    OPC_MoveParent,
                    OPC_CheckPredicate, 103,
                    OPC_CheckType, MVT::v2f64,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSDrr), 0,
                          1, MVT::v2f64, 2, 0, 1, 
                    11, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                          1, MVT::v2f64, 2, 0, 1, 
                    0, 
                  0, 
                87,  TARGET_OPCODE(ISD::UNDEF),
                  OPC_MoveParent,
                  OPC_SwitchType , 54,  MVT::v4f32,
                    OPC_Scope, 12, 
                      OPC_CheckPredicate, 87,
                      OPC_CheckPatternPredicate, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrr), 0,
                          1, MVT::v4f32, 1, 0, 
                    12, 
                      OPC_CheckPredicate, 88,
                      OPC_CheckPatternPredicate, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrr), 0,
                          1, MVT::v4f32, 1, 0, 
                    12, 
                      OPC_CheckPredicate, 87,
                      OPC_CheckPatternPredicate, 14,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
                          1, MVT::v4f32, 1, 0, 
                    12, 
                      OPC_CheckPredicate, 88,
                      OPC_CheckPatternPredicate, 14,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
                          1, MVT::v4f32, 1, 0, 
                    0, 
                  26,  MVT::v2f64,
                    OPC_CheckPredicate, 90,
                    OPC_Scope, 10, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrr), 0,
                          1, MVT::v2f64, 1, 0, 
                    10, 
                      OPC_CheckPatternPredicate, 14,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrr), 0,
                          1, MVT::v2f64, 1, 0, 
                    0, 
                  0, 
                0, 
              0, 
            53|128,1, 
              OPC_RecordNode,
              OPC_RecordChild0,
              OPC_Scope, 42, 
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
                OPC_MoveParent,
                OPC_CheckPredicate, 89,
                OPC_SwitchType , 13,  MVT::v4f32,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
                      1, MVT::v4f32, 3, 1, 1, 2, 
                15,  MVT::v2f64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
                      1, MVT::v2f64, 3, 1, 1, 2, 
                0, 
              4|128,1, 
                OPC_RecordChild1,
                OPC_Scope, 110, 
                  OPC_CheckPredicate, 95,
                  OPC_SwitchType , 34,  MVT::v4f32,
                    OPC_Scope, 15, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_EmitNodeXForm, 2, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
                          1, MVT::v4f32, 3, 1, 2, 3, 
                    15, 
                      OPC_CheckPatternPredicate, 1,
                      OPC_EmitNodeXForm, 2, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
                          1, MVT::v4f32, 3, 1, 2, 3, 
                    0, 
                  15,  MVT::v8f32,
                    OPC_CheckPatternPredicate, 0,
                    OPC_EmitNodeXForm, 2, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSYrri), 0,
                        1, MVT::v8f32, 3, 1, 2, 3, 
                  34,  MVT::v2f64,
                    OPC_Scope, 15, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_EmitNodeXForm, 2, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrri), 0,
                          1, MVT::v2f64, 3, 1, 2, 3, 
                    15, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_EmitNodeXForm, 2, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
                          1, MVT::v2f64, 3, 1, 2, 3, 
                    0, 
                  15,  MVT::v4f64,
                    OPC_CheckPatternPredicate, 0,
                    OPC_EmitNodeXForm, 2, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDYrri), 0,
                        1, MVT::v4f64, 3, 1, 2, 3, 
                  0, 
                17, 
                  OPC_CheckPredicate, 11,
                  OPC_CheckType, MVT::v4f32,
                  OPC_EmitNodeXForm, 2, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
                      1, MVT::v4f32, 3, 2, 1, 3, 
                0, 
              0, 
            0, 
          94|128,6,  TARGET_OPCODE(X86ISD::VZEXT_MOVL),
            OPC_Scope, 61|128,3, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 93|128,1,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_Scope, 11|128,1, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_SwitchType , 74,  MVT::i32,
                    OPC_Scope, 46, 
                      OPC_CheckPredicate, 8,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v4i32,
                      OPC_Scope, 18, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                      18, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                        OPC_EmitMergeInputChains1_0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                            1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                      0, 
                    24, 
                      OPC_CheckPredicate, 8,
                      OPC_MoveParent,
                      OPC_MoveParent,
                      OPC_CheckType, MVT::v2i32,
                      OPC_CheckPatternPredicate, 9,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
                    0, 
                  48,  MVT::i64,
                    OPC_CheckPredicate, 3,
                    OPC_CheckPredicate, 4,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_Scope, 18, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                    18, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                    0, 
                  0, 
                77, 
                  OPC_RecordChild0,
                  OPC_Scope, 43, 
                    OPC_CheckChild0Type, MVT::i32,
                    OPC_MoveParent,
                    OPC_SwitchType , 24,  MVT::v4i32,
                      OPC_Scope, 10, 
                        OPC_CheckPatternPredicate, 0,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZDI2PDIrr), 0,
                            1, MVT::v4i32, 1, 0, 
                      10, 
                        OPC_CheckPatternPredicate, 2,
                        OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrr), 0,
                            1, MVT::v4i32, 1, 0, 
                      0, 
                    10,  MVT::v2i32,
                      OPC_CheckPatternPredicate, 9,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrr), 0,
                          1, MVT::v2i32, 1, 0, 
                    0, 
                  29, 
                    OPC_CheckChild0Type, MVT::i64,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2i64,
                    OPC_Scope, 10, 
                      OPC_CheckPatternPredicate, 0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZQI2PQIrr), 0,
                          1, MVT::v2i64, 1, 0, 
                    10, 
                      OPC_CheckPatternPredicate, 2,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrr), 0,
                          1, MVT::v2i64, 1, 0, 
                    0, 
                  0, 
                0, 
              123,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_SwitchType , 40,  MVT::v4f32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_SwitchType , 16,  MVT::v4i32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  16,  MVT::v2i64,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                20,  MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                20,  MVT::v4i32,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                20,  MVT::v1i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
                0, 
              87,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_SwitchType , 16,  MVT::v4i32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                57,  MVT::v2i64,
                  OPC_Scope, 16, 
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              0, 
            77, 
              OPC_RecordChild0,
              OPC_SwitchType , 24,  MVT::v2i64,
                OPC_Scope, 10, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVZPQILo2PQIrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              16,  MVT::v2i32,
                OPC_EmitNode, TARGET_OPCODE(X86::MMX_V_SET0), 0,
                    1, MVT::v2i32, 0, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PUNPCKLDQrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              28,  MVT::v4i32,
                OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PI), 0,
                    1, MVT::v4i32, 0, 
                OPC_EmitInteger, MVT::i32, X86::sub_ss,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f32, 2, 0, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                    1, MVT::v4i32, 2, 1, 3, 
              0, 
            31|128,2, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 16|128,1,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_Scope, 93, 
                  OPC_MoveChild, 0,
                  OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                  OPC_RecordMemRef,
                  OPC_RecordNode,
                  OPC_CheckFoldableChainNode,
                  OPC_RecordChild1,
                  OPC_CheckPredicate, 2,
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_SwitchType , 36,  MVT::f32,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v4f32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitInteger, MVT::i32, 0, 
                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
                        1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 3, 7, 8, 9, 
                  36,  MVT::f64,
                    OPC_MoveParent,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2f64,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitInteger, MVT::i64, 0, 
                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 3, 7, 8, 9, 
                  0, 
                47, 
                  OPC_RecordChild0,
                  OPC_Scope, 21, 
                    OPC_CheckChild0Type, MVT::f64,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2f64,
                    OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
                        1, MVT::v2f64, 0, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                        1, MVT::v2f64, 2, 1, 0, 
                  21, 
                    OPC_CheckChild0Type, MVT::f32,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v4f32,
                    OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
                        1, MVT::v4f32, 0, 
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                        1, MVT::v4f32, 2, 1, 0, 
                  0, 
                0, 
              51,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v4f32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitInteger, MVT::i64, 0, 
                OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
                    1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 3, 7, 8, 9, 
              78,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_SwitchType , 32,  MVT::v4f32,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitInteger, MVT::i32, 0, 
                  OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
                      1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                  OPC_EmitInteger, MVT::i32, X86::sub_ss,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4f32, 3, 7, 8, 9, 
                32,  MVT::v2f64,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitInteger, MVT::i64, 0, 
                  OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
                      1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                  OPC_EmitInteger, MVT::i32, X86::sub_sd,
                  OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 3, 7, 8, 9, 
                0, 
              0, 
            45, 
              OPC_RecordChild0,
              OPC_SwitchType , 28,  MVT::v4f32,
                OPC_EmitNode, TARGET_OPCODE(X86::V_SET0PS), 0,
                    1, MVT::v4f32, 0, 
                OPC_EmitInteger, MVT::i32, X86::sub_ss,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f32, 2, 0, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                    1, MVT::v4f32, 2, 1, 3, 
              10,  MVT::v2f64,
                OPC_CheckPatternPredicate, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZPQILo2PQIrr), 0,
                    1, MVT::v2f64, 1, 0, 
              0, 
            0, 
          56,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_SwitchType , 16,  MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVZQI2PQIrm), 0|OPFL_Chain,
                  1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
            32,  MVT::v2f64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitInteger, MVT::i64, 0, 
              OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
                  1, MVT::f64, 5, 2, 3, 4, 5, 6, 
              OPC_EmitInteger, MVT::i32, X86::sub_sd,
              OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                  1, MVT::v2f64, 3, 7, 8, 9, 
            0, 
          63|128,1,  TARGET_OPCODE(X86ISD::PSHUFD),
            OPC_Scope, 115, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_SwitchType , 57,  MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
                19, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
                0, 
              32,  MVT::v4f32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild1,
                OPC_MoveChild, 1,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 3, 4, 5, 6, 7, 8, 
              0, 
            72, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 28,  MVT::v4i32,
                OPC_Scope, 13, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
                      1, MVT::v4i32, 2, 0, 2, 
                11, 
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                      1, MVT::v4i32, 2, 0, 2, 
                0, 
              28,  MVT::v4f32,
                OPC_Scope, 13, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
                      1, MVT::v4f32, 2, 0, 2, 
                11, 
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
                      1, MVT::v4f32, 2, 0, 2, 
                0, 
              0, 
            0, 
          30|128,2,  TARGET_OPCODE(X86ISD::SHUFPS),
            OPC_RecordChild0,
            OPC_Scope, 76|128,1, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 76,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                20, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              118,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_CheckType, MVT::i8,
                OPC_MoveParent,
                OPC_SwitchType , 46,  MVT::v2f64,
                  OPC_Scope, 22, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                  20, 
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 7, 0, 4, 5, 6, 7, 8, 9, 
                  0, 
                46,  MVT::v4f32,
                  OPC_Scope, 22, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                  20, 
                    OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                    OPC_EmitMergeInputChains1_1,
                    OPC_EmitConvertToTarget, 3,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
                  0, 
                0, 
              0, 
            76, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_SwitchType , 30,  MVT::v4i32,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
                      1, MVT::v4i32, 3, 0, 1, 3, 
                12, 
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
                      1, MVT::v4i32, 3, 0, 1, 3, 
                0, 
              30,  MVT::v4f32,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                12, 
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
                      1, MVT::v4f32, 3, 0, 1, 3, 
                0, 
              0, 
            0, 
          81,  TARGET_OPCODE(X86ISD::PSHUFHW),
            OPC_Scope, 54, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
            23, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
                  1, MVT::v8i16, 2, 0, 2, 
            0, 
          81,  TARGET_OPCODE(X86ISD::PSHUFLW),
            OPC_Scope, 54, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i16, 6, 3, 4, 5, 6, 7, 8, 
            23, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_CheckType, MVT::i8,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_EmitConvertToTarget, 1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
                  1, MVT::v8i16, 2, 0, 2, 
            0, 
          78,  TARGET_OPCODE(X86ISD::MMX_PINSRW),
            OPC_RecordChild0,
            OPC_Scope, 51, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::ANY_EXTEND),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 7,
              OPC_CheckType, MVT::i16,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_EmitConvertToTarget, 3,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i16, 7, 0, 4, 5, 6, 7, 8, 9, 
            22, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PINSRWrri), 0,
                  1, MVT::v4i16, 3, 0, 1, 3, 
            0, 
          88,  TARGET_OPCODE(X86ISD::MOVQ2DQ),
            OPC_Scope, 75, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 41,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 8,
                OPC_CheckType, MVT::i32,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i32,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
              24,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
              0, 
            9, 
              OPC_RecordChild0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
                  1, MVT::v2i64, 1, 0, 
            0, 
          98,  TARGET_OPCODE(ISD::PREFETCH),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 2,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i32,
            OPC_MoveParent,
            OPC_MoveChild, 3,
            OPC_Scope, 20, 
              OPC_CheckInteger, 3, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 1,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PREFETCHT0), 0|OPFL_Chain,
                  0, 5, 2, 3, 4, 5, 6, 
            20, 
              OPC_CheckInteger, 2, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 1,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PREFETCHT1), 0|OPFL_Chain,
                  0, 5, 2, 3, 4, 5, 6, 
            20, 
              OPC_CheckInteger, 1, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 1,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PREFETCHT2), 0|OPFL_Chain,
                  0, 5, 2, 3, 4, 5, 6, 
            20, 
              OPC_CheckInteger, 0, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 1,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PREFETCHNTA), 0|OPFL_Chain,
                  0, 5, 2, 3, 4, 5, 6, 
            0, 
          114|128,1,  TARGET_OPCODE(X86ISD::TC_RETURN),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_Scope, 73, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 24, 
                OPC_CheckPatternPredicate, 26,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains, 2, 0, 1, 
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNmi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs|OPFL_Variadic2,
                    1, MVT::i32, 6, 4, 5, 6, 7, 8, 9, 
              24, 
                OPC_CheckPatternPredicate, 4,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains, 2, 0, 1, 
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNmi64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_MemRefs|OPFL_Variadic2,
                    1, MVT::i64, 6, 4, 5, 6, 7, 8, 9, 
              0, 
            34|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 110, 
                OPC_MoveChild, 1,
                OPC_SwitchOpcode , 50,  TARGET_OPCODE(ISD::TargetGlobalAddress),
                  OPC_SwitchType , 22,  MVT::i32,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_MoveChild, 2,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckPatternPredicate, 3,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNdi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
                        1, MVT::i32, 2, 1, 3, 
                  22,  MVT::i64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_MoveChild, 2,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckPatternPredicate, 4,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNdi64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
                        1, MVT::i64, 2, 1, 3, 
                  0, 
                50,  TARGET_OPCODE(ISD::TargetExternalSymbol),
                  OPC_SwitchType , 22,  MVT::i32,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_MoveChild, 2,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckPatternPredicate, 3,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNdi), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
                        1, MVT::i32, 2, 1, 3, 
                  22,  MVT::i64,
                    OPC_MoveParent,
                    OPC_RecordChild2,
                    OPC_MoveChild, 2,
                    OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                    OPC_MoveParent,
                    OPC_CheckPatternPredicate, 4,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitConvertToTarget, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNdi64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
                        1, MVT::i64, 2, 1, 3, 
                  0, 
                0, 
              23, 
                OPC_CheckChild1Type, MVT::i32,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 3,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNri), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
                    1, MVT::i32, 2, 1, 3, 
              23, 
                OPC_CheckChild1Type, MVT::i64,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 4,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::TCRETURNri64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic2,
                    1, MVT::i64, 2, 1, 3, 
              0, 
            0, 
          74,  TARGET_OPCODE(X86ISD::CMPPS),
            OPC_RecordChild0,
            OPC_CheckChild0Type, MVT::v4f32,
            OPC_Scope, 45, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_EmitConvertToTarget, 3,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
            22, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPSrri), 0,
                  1, MVT::v4i32, 3, 0, 1, 3, 
            0, 
          74,  TARGET_OPCODE(X86ISD::CMPPD),
            OPC_RecordChild0,
            OPC_CheckChild0Type, MVT::v2f64,
            OPC_Scope, 45, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_EmitConvertToTarget, 3,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i64, 7, 0, 4, 5, 6, 7, 8, 9, 
            22, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CMPPDrri), 0,
                  1, MVT::v2i64, 3, 0, 1, 3, 
            0, 
          116,  TARGET_OPCODE(X86ISD::PINSRW),
            OPC_RecordChild0,
            OPC_Scope, 71, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 32,
              OPC_CheckPredicate, 35,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 22, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i16, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i16, 7, 0, 4, 5, 6, 7, 8, 9, 
              0, 
            40, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRWrri), 0,
                    1, MVT::v8i16, 3, 0, 1, 3, 
              14, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRWrri), 0,
                    1, MVT::v8i16, 3, 0, 1, 3, 
              0, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PSHUFB),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 11,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrm128), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckPatternPredicate, 11,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFBrr128), 0,
                  1, MVT::v16i8, 2, 0, 1, 
            0, 
          116,  TARGET_OPCODE(X86ISD::PINSRB),
            OPC_RecordChild0,
            OPC_Scope, 71, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 32,
              OPC_CheckPredicate, 34,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 22, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v16i8, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_CheckPatternPredicate, 5,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v16i8, 7, 0, 4, 5, 6, 7, 8, 9, 
              0, 
            40, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRBrr), 0,
                    1, MVT::v16i8, 3, 0, 1, 3, 
              14, 
                OPC_CheckPatternPredicate, 5,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRBrr), 0,
                    1, MVT::v16i8, 3, 0, 1, 3, 
              0, 
            0, 
          93|128,1,  TARGET_OPCODE(ISD::INSERT_VECTOR_ELT),
            OPC_RecordChild0,
            OPC_Scope, 9|128,1, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_Scope, 60, 
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v4i32, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              62, 
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_Scope, 22, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 7, 0, 4, 5, 6, 7, 8, 9, 
                22, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_EmitConvertToTarget, 3,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 7, 0, 4, 5, 6, 7, 8, 9, 
                0, 
              0, 
            78, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_SwitchType , 32,  MVT::v4i32,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRDrr), 0,
                      1, MVT::v4i32, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRDrr), 0,
                      1, MVT::v4i32, 3, 0, 1, 3, 
                0, 
              32,  MVT::v2i64,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VPINSRQrr), 0,
                      1, MVT::v2i64, 3, 0, 1, 3, 
                14, 
                  OPC_CheckPatternPredicate, 5,
                  OPC_EmitConvertToTarget, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::PINSRQrr), 0,
                      1, MVT::v2i64, 3, 0, 1, 3, 
                0, 
              0, 
            0, 
          81|128,2,  TARGET_OPCODE(X86ISD::MOVDDUP),
            OPC_MoveChild, 0,
            OPC_SwitchOpcode , 44|128,1,  TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 100,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_SwitchType , 42,  MVT::v2i64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  16, 
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                42,  MVT::v2f64,
                  OPC_MoveParent,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4f32,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  16, 
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
                  0, 
                0, 
              62,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::i64,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                16, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              0, 
            92,  TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_SwitchType , 38,  MVT::v2i64,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                16, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                0, 
              38,  MVT::v2f64,
                OPC_Scope, 18, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                16, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
                0, 
              0, 
            59,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::f64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2f64,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
              0, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PUNPCKLBW),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v16i8,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v16i8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLBWrr), 0,
                  1, MVT::v16i8, 2, 0, 1, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PUNPCKLWD),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v8i16,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLWDrr), 0,
                  1, MVT::v8i16, 2, 0, 1, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PUNPCKLDQ),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4i32,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLDQrr), 0,
                  1, MVT::v4i32, 2, 0, 1, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PUNPCKHBW),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v16i8,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v16i8,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHBWrr), 0,
                  1, MVT::v16i8, 2, 0, 1, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PUNPCKHWD),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v8i16,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHWDrr), 0,
                  1, MVT::v8i16, 2, 0, 1, 
            0, 
          60,  TARGET_OPCODE(X86ISD::PUNPCKHDQ),
            OPC_RecordChild0,
            OPC_Scope, 43, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_CheckType, MVT::v2i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4i32,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHDQrr), 0,
                  1, MVT::v4i32, 2, 0, 1, 
            0, 
          115,  TARGET_OPCODE(X86ISD::MOVSS),
            OPC_RecordChild0,
            OPC_Scope, 61, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 36,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
              15,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_RecordChild0,
                OPC_CheckChild0Type, MVT::f32,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4f32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            49, 
              OPC_RecordChild1,
              OPC_SwitchType , 21,  MVT::v4i32,
                OPC_EmitInteger, MVT::i32, X86::sub_ss,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f32, 2, 1, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                    1, MVT::v4i32, 2, 0, 3, 
              21,  MVT::v4f32,
                OPC_EmitInteger, MVT::i32, X86::sub_ss,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f32, 2, 1, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSSrr), 0,
                    1, MVT::v4f32, 2, 0, 3, 
              0, 
            0, 
          102,  TARGET_OPCODE(X86ISD::MOVSHDUP),
            OPC_Scope, 75, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 37,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              28,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4f32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
              0, 
            23, 
              OPC_RecordChild0,
              OPC_SwitchType , 8,  MVT::v4i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
                    1, MVT::v4i32, 1, 0, 
              8,  MVT::v4f32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
                    1, MVT::v4f32, 1, 0, 
              0, 
            0, 
          102,  TARGET_OPCODE(X86ISD::MOVSLDUP),
            OPC_Scope, 75, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 37,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
              28,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4f32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
              0, 
            23, 
              OPC_RecordChild0,
              OPC_SwitchType , 8,  MVT::v4i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
                    1, MVT::v4i32, 1, 0, 
              8,  MVT::v4f32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
                    1, MVT::v4f32, 1, 0, 
              0, 
            0, 
          61|128,1,  TARGET_OPCODE(X86ISD::PCMPEQB),
            OPC_Scope, 42, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::v1i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i8,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
            42, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::v1i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v8i8,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i8, 6, 2, 3, 4, 5, 6, 7, 
            36, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v16i8,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
            36, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v16i8,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v16i8, 6, 2, 3, 4, 5, 6, 7, 
            26, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v16i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQBrr), 0,
                    1, MVT::v16i8, 2, 0, 1, 
              9,  MVT::v8i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            0, 
          61|128,1,  TARGET_OPCODE(X86ISD::PCMPEQW),
            OPC_Scope, 42, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::v1i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
            42, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::v1i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i16, 6, 2, 3, 4, 5, 6, 7, 
            36, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v8i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
            36, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v8i16,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
            26, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v8i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQWrr), 0,
                    1, MVT::v8i16, 2, 0, 1, 
              9,  MVT::v4i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            0, 
          61|128,1,  TARGET_OPCODE(X86ISD::PCMPEQD),
            OPC_Scope, 42, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::v1i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
            42, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckType, MVT::v1i64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i32, 6, 2, 3, 4, 5, 6, 7, 
            36, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
            36, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4i32, 6, 2, 3, 4, 5, 6, 7, 
            26, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v4i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQDrr), 0,
                    1, MVT::v4i32, 2, 0, 1, 
              9,  MVT::v2i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPEQDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            0, 
          106,  TARGET_OPCODE(X86ISD::PCMPGTB),
            OPC_RecordChild0,
            OPC_Scope, 76, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 36,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v8i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i8, 6, 0, 3, 4, 5, 6, 7, 
              30,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v16i8,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v16i8, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            25, 
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v16i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTBrr), 0,
                    1, MVT::v16i8, 2, 0, 1, 
              9,  MVT::v8i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTBrr), 0,
                    1, MVT::v8i8, 2, 0, 1, 
              0, 
            0, 
          106,  TARGET_OPCODE(X86ISD::PCMPGTW),
            OPC_RecordChild0,
            OPC_Scope, 76, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 36,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i16, 6, 0, 3, 4, 5, 6, 7, 
              30,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v8i16,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v8i16, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            25, 
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v8i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTWrr), 0,
                    1, MVT::v8i16, 2, 0, 1, 
              9,  MVT::v4i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTWrr), 0,
                    1, MVT::v4i16, 2, 0, 1, 
              0, 
            0, 
          106,  TARGET_OPCODE(X86ISD::PCMPGTD),
            OPC_RecordChild0,
            OPC_Scope, 76, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 36,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckType, MVT::v1i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i32, 6, 0, 3, 4, 5, 6, 7, 
              30,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            25, 
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v4i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTDrr), 0,
                    1, MVT::v4i32, 2, 0, 1, 
              9,  MVT::v2i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PCMPGTDrr), 0,
                    1, MVT::v2i32, 2, 0, 1, 
              0, 
            0, 
          123,  TARGET_OPCODE(X86ISD::MOVLHPS),
            OPC_RecordChild0,
            OPC_Scope, 82, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 26,  TARGET_OPCODE(X86ISD::VZEXT_LOAD),
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckType, MVT::v2i64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain,
                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
              41,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::f64,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v4f32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            36, 
              OPC_RecordChild1,
              OPC_SwitchType , 9,  MVT::v4i32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                    1, MVT::v4i32, 2, 0, 1, 
              9,  MVT::v2i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                    1, MVT::v2i64, 2, 0, 1, 
              9,  MVT::v4f32,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            0, 
          106,  TARGET_OPCODE(X86ISD::LCMPXCHG_DAG),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_Scope, 24, 
              OPC_CheckChild2Type, MVT::i32,
              OPC_MoveChild, 3,
              OPC_CheckInteger, 4, 
              OPC_MoveParent,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LCMPXCHG32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 6, 3, 4, 5, 6, 7, 2, 
            24, 
              OPC_CheckChild2Type, MVT::i16,
              OPC_MoveChild, 3,
              OPC_CheckInteger, 2, 
              OPC_MoveParent,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LCMPXCHG16), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i16, 6, 3, 4, 5, 6, 7, 2, 
            24, 
              OPC_CheckChild2Type, MVT::i8,
              OPC_MoveChild, 3,
              OPC_CheckInteger, 1, 
              OPC_MoveParent,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LCMPXCHG8), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i8, 6, 3, 4, 5, 6, 7, 2, 
            24, 
              OPC_CheckChild2Type, MVT::i64,
              OPC_MoveChild, 3,
              OPC_CheckInteger, 8, 
              OPC_MoveParent,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LCMPXCHG64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i64, 6, 3, 4, 5, 6, 7, 2, 
            0, 
          27|128,8,  TARGET_OPCODE(ISD::INTRINSIC_VOID),
            OPC_RecordNode,
            OPC_MoveChild, 1,
            OPC_Scope, 22, 
              OPC_CheckInteger, 112|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSYmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            22, 
              OPC_CheckInteger, 111|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDYmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            46, 
              OPC_CheckInteger, 58|128,6, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            46, 
              OPC_CheckInteger, 64|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPDmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            46, 
              OPC_CheckInteger, 48|128,6, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPSmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTPSmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            46, 
              OPC_CheckInteger, 9|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPDmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTPDmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            46, 
              OPC_CheckInteger, 7|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTDQmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            22, 
              OPC_CheckInteger, 98|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQYmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            22, 
              OPC_CheckInteger, 99|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPDYmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            22, 
              OPC_CheckInteger, 100|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTPSYmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            24, 
              OPC_CheckInteger, 8|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTImr_Int), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            43, 
              OPC_CheckInteger, 41|128,6, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 17, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VLDMXCSR), 0|OPFL_Chain,
                    0, 5, 2, 3, 4, 5, 6, 
              17, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LDMXCSR), 0|OPFL_Chain,
                    0, 5, 2, 3, 4, 5, 6, 
              0, 
            43, 
              OPC_CheckInteger, 57|128,6, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 17, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSTMXCSR), 0|OPFL_Chain,
                    0, 5, 2, 3, 4, 5, 6, 
              17, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::STMXCSR), 0|OPFL_Chain,
                    0, 5, 2, 3, 4, 5, 6, 
              0, 
            46, 
              OPC_CheckInteger, 63|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDQUmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDQUmr_Int), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            22, 
              OPC_CheckInteger, 110|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDQUYmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            46, 
              OPC_CheckInteger, 62|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLQ128mr), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLQ128mr), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 2, 
              0, 
            22, 
              OPC_CheckInteger, 99|128,4, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckPatternPredicate, 2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::CLFLUSH), 0|OPFL_Chain,
                  0, 5, 2, 3, 4, 5, 6, 
            26, 
              OPC_CheckInteger, 90|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPSmr), 0|OPFL_Chain,
                  0, 7, 4, 5, 6, 7, 8, 2, 3, 
            26, 
              OPC_CheckInteger, 91|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPSYmr), 0|OPFL_Chain,
                  0, 7, 4, 5, 6, 7, 8, 2, 3, 
            26, 
              OPC_CheckInteger, 88|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPDmr), 0|OPFL_Chain,
                  0, 7, 4, 5, 6, 7, 8, 2, 3, 
            26, 
              OPC_CheckInteger, 89|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPDYmr), 0|OPFL_Chain,
                  0, 7, 4, 5, 6, 7, 8, 2, 3, 
            24, 
              OPC_CheckInteger, 27|128,4, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 9,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVNTQmr), 0|OPFL_Chain,
                  0, 6, 3, 4, 5, 6, 7, 2, 
            37, 
              OPC_CheckInteger, 21|128,4, 
              OPC_MoveParent,
              OPC_Scope, 12, 
                OPC_MoveChild, 2,
                OPC_CheckInteger, 3, 
                OPC_MoveParent,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INT3), 0|OPFL_Chain,
                    0, 0, 
              17, 
                OPC_RecordChild2,
                OPC_MoveChild, 2,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
                OPC_MoveParent,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitConvertToTarget, 1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INT), 0|OPFL_Chain,
                    0, 1, 2, 
              0, 
            13, 
              OPC_CheckInteger, 54|128,6, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::SFENCE), 0|OPFL_Chain,
                  0, 0, 
            79, 
              OPC_CheckInteger, 0|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_Scope, 34, 
                OPC_CheckChild4Type, MVT::i32,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 3, X86::EDI,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVDQU), 0|OPFL_Chain|OPFL_FlagInput,
                      0, 2, 1, 2, 
                14, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 3, X86::EDI,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MASKMOVDQU), 0|OPFL_Chain|OPFL_FlagInput,
                      0, 2, 1, 2, 
                0, 
              34, 
                OPC_CheckChild4Type, MVT::i64,
                OPC_Scope, 14, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 3, X86::RDI,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVDQU64), 0|OPFL_Chain|OPFL_FlagInput,
                      0, 2, 1, 2, 
                14, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitCopyToReg, 3, X86::RDI,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MASKMOVDQU64), 0|OPFL_Chain|OPFL_FlagInput,
                      0, 2, 1, 2, 
                0, 
              0, 
            13, 
              OPC_CheckInteger, 125|128,4, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 2,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::LFENCE), 0|OPFL_Chain,
                  0, 0, 
            13, 
              OPC_CheckInteger, 3|128,5, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 2,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MFENCE), 0|OPFL_Chain,
                  0, 0, 
            27, 
              OPC_CheckInteger, 79|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckChild2Type, MVT::i32,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_CheckPatternPredicate, 14,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 1, X86::EAX,
              OPC_EmitCopyToReg, 2, X86::ECX,
              OPC_EmitCopyToReg, 3, X86::EDX,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MONITOR), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 0, 
            21, 
              OPC_CheckInteger, 80|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 14,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 1, X86::ECX,
              OPC_EmitCopyToReg, 2, X86::EAX,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MWAIT), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 0, 
            13, 
              OPC_CheckInteger, 19|128,4, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 0,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VZEROALL), 0|OPFL_Chain,
                  0, 0, 
            13, 
              OPC_CheckInteger, 20|128,4, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 0,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VZEROUPPER), 0|OPFL_Chain,
                  0, 0, 
            13, 
              OPC_CheckInteger, 24|128,4, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_EMMS), 0|OPFL_Chain,
                  0, 0, 
            13, 
              OPC_CheckInteger, 25|128,4, 
              OPC_MoveParent,
              OPC_CheckPatternPredicate, 9,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_FEMMS), 0|OPFL_Chain,
                  0, 0, 
            43, 
              OPC_CheckInteger, 26|128,4, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_RecordChild4,
              OPC_Scope, 16, 
                OPC_CheckChild4Type, MVT::i32,
                OPC_CheckPatternPredicate, 9,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::EDI,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MASKMOVQ), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 2, 1, 2, 
              16, 
                OPC_CheckChild4Type, MVT::i64,
                OPC_CheckPatternPredicate, 27,
                OPC_EmitMergeInputChains1_0,
                OPC_EmitCopyToReg, 3, X86::RDI,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MASKMOVQ64), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 2, 1, 2, 
              0, 
            0, 
          35|128,4,  TARGET_OPCODE(ISD::INTRINSIC_W_CHAIN),
            OPC_RecordNode,
            OPC_MoveChild, 1,
            OPC_Scope, 45, 
              OPC_CheckInteger, 126|128,4, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDQUrm_Int), 0|OPFL_Chain,
                    1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDQUrm_Int), 0|OPFL_Chain,
                    1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
              0, 
            21, 
              OPC_CheckInteger, 81|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDQUYrm), 0|OPFL_Chain,
                  1, MVT::v32i8, 5, 2, 3, 4, 5, 6, 
            45, 
              OPC_CheckInteger, 78|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VLDDQUrm), 0|OPFL_Chain,
                    1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
              18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::LDDQUrm), 0|OPFL_Chain,
                    1, MVT::v16i8, 5, 2, 3, 4, 5, 6, 
              0, 
            23, 
              OPC_CheckInteger, 80|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VLDDQUYrm), 0|OPFL_Chain,
                  1, MVT::v32i8, 5, 2, 3, 4, 5, 6, 
            45, 
              OPC_CheckInteger, 89|128,5, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVNTDQArm), 0|OPFL_Chain,
                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
              18, 
                OPC_CheckPatternPredicate, 5,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVNTDQArm), 0|OPFL_Chain,
                    1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
              0, 
            21, 
              OPC_CheckInteger, 83|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSYrm), 0|OPFL_Chain,
                  1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
            21, 
              OPC_CheckInteger, 82|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDYrm), 0|OPFL_Chain,
                  1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
            45, 
              OPC_CheckInteger, 42|128,6, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
              18, 
                OPC_CheckPatternPredicate, 1,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPSrm_Int), 0|OPFL_Chain,
                    1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
              0, 
            45, 
              OPC_CheckInteger, 127|128,4, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVUPDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
              18, 
                OPC_CheckPatternPredicate, 2,
                OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVUPDrm_Int), 0|OPFL_Chain,
                    1, MVT::v2f64, 5, 2, 3, 4, 5, 6, 
              0, 
            23, 
              OPC_CheckInteger, 116|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VBROADCASTSS), 0|OPFL_Chain,
                  1, MVT::v4f32, 5, 2, 3, 4, 5, 6, 
            23, 
              OPC_CheckInteger, 117|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VBROADCASTSSY), 0|OPFL_Chain,
                  1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
            23, 
              OPC_CheckInteger, 113|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VBROADCASTSD), 0|OPFL_Chain,
                  1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
            23, 
              OPC_CheckInteger, 114|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VBROADCASTF128), 0|OPFL_Chain,
                  1, MVT::v4f64, 5, 2, 3, 4, 5, 6, 
            25, 
              OPC_CheckInteger, 86|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPSrm), 0|OPFL_Chain,
                  1, MVT::v4f32, 6, 2, 3, 4, 5, 6, 7, 
            25, 
              OPC_CheckInteger, 87|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPSYrm), 0|OPFL_Chain,
                  1, MVT::v8f32, 6, 2, 3, 4, 5, 6, 7, 
            25, 
              OPC_CheckInteger, 84|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPDrm), 0|OPFL_Chain,
                  1, MVT::v2f64, 6, 2, 3, 4, 5, 6, 7, 
            25, 
              OPC_CheckInteger, 85|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_RecordChild3,
              OPC_CheckPatternPredicate, 0,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VMASKMOVPDYrm), 0|OPFL_Chain,
                  1, MVT::v4f64, 6, 2, 3, 4, 5, 6, 7, 
            21, 
              OPC_CheckInteger, 115|128,3, 
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VBROADCASTF128), 0|OPFL_Chain,
                  1, MVT::v8f32, 5, 2, 3, 4, 5, 6, 
            0, 
          99,  TARGET_OPCODE(ISD::BRIND),
            OPC_RecordNode,
            OPC_Scope, 65, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 23,  MVT::i32,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 3,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::JMP32m), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 5, 3, 4, 5, 6, 7, 
              25,  MVT::i64,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_CheckPatternPredicate, 4,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::JMP64m), 0|OPFL_Chain|OPFL_MemRefs,
                    0, 5, 3, 4, 5, 6, 7, 
              0, 
            29, 
              OPC_RecordChild1,
              OPC_Scope, 12, 
                OPC_CheckChild1Type, MVT::i32,
                OPC_CheckPatternPredicate, 3,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::JMP32r), 0|OPFL_Chain,
                    0, 1, 1, 
              12, 
                OPC_CheckChild1Type, MVT::i64,
                OPC_CheckPatternPredicate, 4,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::JMP64r), 0|OPFL_Chain,
                    0, 1, 1, 
              0, 
            0, 
          1|128,2,  TARGET_OPCODE(X86ISD::CALL),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_Scope, 90, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_SwitchType , 22,  MVT::i32,
                OPC_CheckPredicate, 8,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains, 2, 0, 1, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CALL32m), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs|OPFL_Variadic1,
                    1, MVT::i32, 5, 3, 4, 5, 6, 7, 
              51,  MVT::i64,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_MoveParent,
                OPC_Scope, 21, 
                  OPC_CheckPatternPredicate, 28,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CALL64m), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs|OPFL_Variadic1,
                      1, MVT::i64, 5, 3, 4, 5, 6, 7, 
                21, 
                  OPC_CheckPatternPredicate, 29,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains, 2, 0, 1, 
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::WINCALL64m), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_MemRefs|OPFL_Variadic1,
                      1, MVT::i64, 5, 3, 4, 5, 6, 7, 
                0, 
              0, 
            32|128,1, 
              OPC_RecordChild1,
              OPC_Scope, 115, 
                OPC_MoveChild, 1,
                OPC_SwitchOpcode , 43,  TARGET_OPCODE(ISD::TargetGlobalAddress),
                  OPC_SwitchType , 10,  MVT::i32,
                    OPC_MoveParent,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                        1, MVT::i32, 1, 1, 
                  27,  MVT::i64,
                    OPC_MoveParent,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 28,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CALL64pcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                          1, MVT::i64, 1, 1, 
                    11, 
                      OPC_CheckPatternPredicate, 29,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::WINCALL64pcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                          1, MVT::i64, 1, 1, 
                    0, 
                  0, 
                43,  TARGET_OPCODE(ISD::TargetExternalSymbol),
                  OPC_SwitchType , 10,  MVT::i32,
                    OPC_MoveParent,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                        1, MVT::i32, 1, 1, 
                  27,  MVT::i64,
                    OPC_MoveParent,
                    OPC_Scope, 11, 
                      OPC_CheckPatternPredicate, 28,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::CALL64pcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                          1, MVT::i64, 1, 1, 
                    11, 
                      OPC_CheckPatternPredicate, 29,
                      OPC_EmitMergeInputChains1_0,
                      OPC_MorphNodeTo, TARGET_OPCODE(X86::WINCALL64pcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                          1, MVT::i64, 1, 1, 
                    0, 
                  0, 
                16,  TARGET_OPCODE(ISD::Constant),
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckPatternPredicate, 30,
                  OPC_EmitMergeInputChains1_0,
                  OPC_EmitConvertToTarget, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CALLpcrel32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                      1, MVT::i32, 1, 2, 
                0, 
              11, 
                OPC_CheckChild1Type, MVT::i32,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::CALL32r), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                    1, MVT::i32, 1, 1, 
              28, 
                OPC_CheckChild1Type, MVT::i64,
                OPC_Scope, 11, 
                  OPC_CheckPatternPredicate, 28,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::CALL64r), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                      1, MVT::i64, 1, 1, 
                11, 
                  OPC_CheckPatternPredicate, 29,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::WINCALL64r), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput|OPFL_Variadic1,
                      1, MVT::i64, 1, 1, 
                0, 
              0, 
            0, 
          30|128,3,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
            OPC_Scope, 28|128,2, 
              OPC_MoveChild, 0,
              OPC_SwitchOpcode , 84|128,1,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_Scope, 47, 
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v4i32,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4i32, 5, 2, 3, 4, 5, 6, 
                  0, 
                49, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_CheckType, MVT::i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_Scope, 18, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  18, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2i64, 5, 2, 3, 4, 5, 6, 
                  0, 
                25, 
                  OPC_CheckPredicate, 8,
                  OPC_CheckType, MVT::i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i32,
                  OPC_CheckPatternPredicate, 9,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                  OPC_EmitMergeInputChains1_0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2i32, 5, 2, 3, 4, 5, 6, 
                80, 
                  OPC_CheckPredicate, 3,
                  OPC_CheckPredicate, 4,
                  OPC_SwitchType , 35,  MVT::f32,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v4f32,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitInteger, MVT::i32, 0, 
                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSSrm), 0|OPFL_Chain,
                        1, MVT::f32, 5, 2, 3, 4, 5, 6, 
                    OPC_EmitInteger, MVT::i32, X86::sub_ss,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v4f32, 3, 7, 8, 9, 
                  35,  MVT::f64,
                    OPC_MoveParent,
                    OPC_CheckType, MVT::v2f64,
                    OPC_CheckComplexPat, /*CP*/0, /*#*/1,
                    OPC_EmitMergeInputChains1_0,
                    OPC_EmitInteger, MVT::i64, 0, 
                    OPC_EmitNode, TARGET_OPCODE(X86::MOVSDrm), 0|OPFL_Chain,
                        1, MVT::f64, 5, 2, 3, 4, 5, 6, 
                    OPC_EmitInteger, MVT::i32, X86::sub_sd,
                    OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain|OPFL_MemRefs,
                        1, MVT::v2f64, 3, 7, 8, 9, 
                  0, 
                0, 
              61,  TARGET_OPCODE(ISD::BIT_CONVERT),
                OPC_RecordChild0,
                OPC_CheckType, MVT::i64,
                OPC_Scope, 13, 
                  OPC_CheckChild0Type, MVT::v8i8,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                13, 
                  OPC_CheckChild0Type, MVT::v4i16,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                13, 
                  OPC_CheckChild0Type, MVT::v2i32,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                13, 
                  OPC_CheckChild0Type, MVT::v1i64,
                  OPC_MoveParent,
                  OPC_CheckType, MVT::v2i64,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
                      1, MVT::v2i64, 1, 0, 
                0, 
              0, 
            125, 
              OPC_RecordChild0,
              OPC_Scope, 28, 
                OPC_CheckChild0Type, MVT::i64,
                OPC_SwitchType , 10,  MVT::v2i64,
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64toPQIrr), 0,
                      1, MVT::v2i64, 1, 0, 
                10,  MVT::v1i64,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64rrv164), 0,
                      1, MVT::v1i64, 1, 0, 
                0, 
              42, 
                OPC_CheckChild0Type, MVT::i32,
                OPC_SwitchType , 24,  MVT::v4i32,
                  OPC_Scope, 10, 
                    OPC_CheckPatternPredicate, 0,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDI2PDIrr), 0,
                        1, MVT::v4i32, 1, 0, 
                  10, 
                    OPC_CheckPatternPredicate, 2,
                    OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDI2PDIrr), 0,
                        1, MVT::v4i32, 1, 0, 
                  0, 
                10,  MVT::v2i32,
                  OPC_CheckPatternPredicate, 9,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVD64rr), 0,
                      1, MVT::v2i32, 1, 0, 
                0, 
              24, 
                OPC_CheckChild0Type, MVT::f32,
                OPC_CheckType, MVT::v4f32,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
                    1, MVT::v4f32, 0, 
                OPC_EmitInteger, MVT::i32, X86::sub_ss,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
                    1, MVT::v4f32, 3, 1, 0, 2, 
              24, 
                OPC_CheckChild0Type, MVT::f64,
                OPC_CheckType, MVT::v2f64,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::IMPLICIT_DEF), 0,
                    1, MVT::v2f64, 0, 
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_MorphNodeTo, TARGET_OPCODE(TargetOpcode::INSERT_SUBREG), 0,
                    1, MVT::v2f64, 3, 1, 0, 2, 
              0, 
            0, 
          90,  TARGET_OPCODE(X86ISD::PCMPEQQ),
            OPC_Scope, 36, 
              OPC_RecordChild0,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
            36, 
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i64, 6, 2, 3, 4, 5, 6, 7, 
            13, 
              OPC_RecordChild0,
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPEQQrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            0, 
          52,  TARGET_OPCODE(X86ISD::PCMPGTQ),
            OPC_RecordChild0,
            OPC_Scope, 35, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PCMPGTQrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            0, 
          52,  TARGET_OPCODE(X86ISD::PUNPCKLQDQ),
            OPC_RecordChild0,
            OPC_Scope, 35, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKLQDQrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            0, 
          52,  TARGET_OPCODE(X86ISD::PUNPCKHQDQ),
            OPC_RecordChild0,
            OPC_Scope, 35, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2i64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
            12, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2i64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PUNPCKHQDQrr), 0,
                  1, MVT::v2i64, 2, 0, 1, 
            0, 
          106,  TARGET_OPCODE(X86ISD::MOVLPS),
            OPC_RecordChild0,
            OPC_MoveChild, 1,
            OPC_SwitchOpcode , 49,  TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 17,  MVT::v4i32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4i32, 6, 0, 3, 4, 5, 6, 7, 
              17,  MVT::v4f32,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            46,  TARGET_OPCODE(ISD::BIT_CONVERT),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::f64,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2f64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4f32,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
            0, 
          98,  TARGET_OPCODE(X86ISD::MOVLPD),
            OPC_RecordChild0,
            OPC_MoveChild, 1,
            OPC_SwitchOpcode , 49,  TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_MoveParent,
              OPC_SwitchType , 17,  MVT::v2i64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2i64, 6, 0, 3, 4, 5, 6, 7, 
              17,  MVT::v2f64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            38,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::f64,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2f64,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_1,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                  1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
            0, 
          30,  TARGET_OPCODE(X86ISD::PSHUFHW_LD),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i8,
            OPC_MoveParent,
            OPC_CheckType, MVT::v8i16,
            OPC_CheckComplexPat, /*CP*/0, /*#*/0,
            OPC_EmitConvertToTarget, 1,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWmi), 0|OPFL_Chain,
                1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
          30,  TARGET_OPCODE(X86ISD::PSHUFLW_LD),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i8,
            OPC_MoveParent,
            OPC_CheckType, MVT::v8i16,
            OPC_CheckComplexPat, /*CP*/0, /*#*/0,
            OPC_EmitConvertToTarget, 1,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWmi), 0|OPFL_Chain,
                1, MVT::v8i16, 6, 2, 3, 4, 5, 6, 7, 
          2|128,1,  TARGET_OPCODE(X86ISD::FP_TO_INT16_IN_MEM),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_Scope, 41, 
              OPC_CheckChild1Type, MVT::f32,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp16m32), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP32_TO_INT16_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            41, 
              OPC_CheckChild1Type, MVT::f64,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp16m64), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP64_TO_INT16_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            41, 
              OPC_CheckChild1Type, MVT::f80,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp16m80), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP80_TO_INT16_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            0, 
          2|128,1,  TARGET_OPCODE(X86ISD::FP_TO_INT32_IN_MEM),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_Scope, 41, 
              OPC_CheckChild1Type, MVT::f32,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp32m32), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP32_TO_INT32_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            41, 
              OPC_CheckChild1Type, MVT::f64,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp32m64), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP64_TO_INT32_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            41, 
              OPC_CheckChild1Type, MVT::f80,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp32m80), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP80_TO_INT32_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            0, 
          2|128,1,  TARGET_OPCODE(X86ISD::FP_TO_INT64_IN_MEM),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_Scope, 41, 
              OPC_CheckChild1Type, MVT::f32,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp64m32), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP32_TO_INT64_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            41, 
              OPC_CheckChild1Type, MVT::f64,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp64m64), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP64_TO_INT64_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            41, 
              OPC_CheckChild1Type, MVT::f80,
              OPC_RecordChild2,
              OPC_Scope, 18, 
                OPC_CheckPatternPredicate, 14,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ISTT_Fp64m80), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              16, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::FP80_TO_INT64_IN_MEM), 0|OPFL_Chain,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            0, 
          18|128,1,  TARGET_OPCODE(X86ISD::FST),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_RecordChild1,
            OPC_Scope, 24, 
              OPC_CheckChild1Type, MVT::f32,
              OPC_RecordChild2,
              OPC_MoveChild, 3,
              OPC_CheckValueType, MVT::f32,
              OPC_MoveParent,
              OPC_CheckComplexPat, /*CP*/0, /*#*/2,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp32m), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 6, 3, 4, 5, 6, 7, 1, 
            47, 
              OPC_CheckChild1Type, MVT::f64,
              OPC_RecordChild2,
              OPC_MoveChild, 3,
              OPC_Scope, 19, 
                OPC_CheckValueType, MVT::f32,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp64m32), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              19, 
                OPC_CheckValueType, MVT::f64,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp64m), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            67, 
              OPC_CheckChild1Type, MVT::f80,
              OPC_RecordChild2,
              OPC_MoveChild, 3,
              OPC_Scope, 19, 
                OPC_CheckValueType, MVT::f32,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp80m32), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              19, 
                OPC_CheckValueType, MVT::f64,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_Fp80m64), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              19, 
                OPC_CheckValueType, MVT::f80,
                OPC_MoveParent,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::ST_FpP80m), 0|OPFL_Chain|OPFL_FlagInput,
                    0, 6, 3, 4, 5, 6, 7, 1, 
              0, 
            0, 
          47,  TARGET_OPCODE(X86ISD::TLSADDR),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_RecordChild1,
            OPC_Scope, 20, 
              OPC_CheckChild1Type, MVT::i32,
              OPC_CheckPatternPredicate, 3,
              OPC_CheckComplexPat, /*CP*/5, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::TLS_addr32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 5, 2, 3, 4, 5, 6, 
            20, 
              OPC_CheckChild1Type, MVT::i64,
              OPC_CheckPatternPredicate, 4,
              OPC_CheckComplexPat, /*CP*/6, /*#*/1,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::TLS_addr64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i64, 5, 2, 3, 4, 5, 6, 
            0, 
          19,  TARGET_OPCODE(X86ISD::LCMPXCHG8_DAG),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_RecordChild1,
            OPC_CheckComplexPat, /*CP*/0, /*#*/1,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::LCMPXCHG8B), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                1, MVT::i32, 5, 2, 3, 4, 5, 6, 
          17,  TARGET_OPCODE(X86ISD::FNSTCW16m),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_CheckComplexPat, /*CP*/0, /*#*/1,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::FNSTCW16m), 0|OPFL_Chain,
                0, 5, 2, 3, 4, 5, 6, 
          39,  TARGET_OPCODE(X86ISD::TLSCALL),
            OPC_RecordChild0,
            OPC_Scope, 17, 
              OPC_CheckPatternPredicate, 3,
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::TLSCall_32), 0,
                  1, MVT::i32, 5, 1, 2, 3, 4, 5, 
            17, 
              OPC_CheckPatternPredicate, 4,
              OPC_CheckComplexPat, /*CP*/0, /*#*/0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::TLSCall_64), 0,
                  1, MVT::i64, 5, 1, 2, 3, 4, 5, 
            0, 
          124,  TARGET_OPCODE(X86ISD::INSERTPS),
            OPC_RecordChild0,
            OPC_Scope, 79, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
              OPC_MoveChild, 0,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 4,
              OPC_CheckType, MVT::f32,
              OPC_MoveParent,
              OPC_MoveParent,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 22, 
                OPC_CheckPatternPredicate, 5,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
              22, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_EmitConvertToTarget, 3,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 7, 0, 4, 5, 6, 7, 8, 9, 
              0, 
            40, 
              OPC_RecordChild1,
              OPC_RecordChild2,
              OPC_MoveChild, 2,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
              OPC_MoveParent,
              OPC_Scope, 14, 
                OPC_CheckPatternPredicate, 5,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::INSERTPSrr), 0,
                    1, MVT::v4f32, 3, 0, 1, 3, 
              14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VINSERTPSrr), 0,
                    1, MVT::v4f32, 3, 0, 1, 3, 
              0, 
            0, 
          44,  TARGET_OPCODE(X86ISD::MOVLHPD),
            OPC_RecordChild0,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
            OPC_MoveChild, 0,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
            OPC_RecordMemRef,
            OPC_RecordNode,
            OPC_CheckFoldableChainNode,
            OPC_RecordChild1,
            OPC_CheckPredicate, 2,
            OPC_CheckPredicate, 3,
            OPC_CheckPredicate, 4,
            OPC_CheckType, MVT::f64,
            OPC_MoveParent,
            OPC_MoveParent,
            OPC_CheckType, MVT::v2f64,
            OPC_CheckComplexPat, /*CP*/0, /*#*/2,
            OPC_EmitMergeInputChains1_1,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
          5|128,1,  TARGET_OPCODE(X86ISD::UNPCKLPD),
            OPC_RecordChild0,
            OPC_Scope, 101, 
              OPC_MoveChild, 1,
              OPC_SwitchOpcode , 38,  TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
                OPC_MoveChild, 0,
                OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 4,
                OPC_CheckType, MVT::f64,
                OPC_MoveParent,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
              53,  TARGET_OPCODE(ISD::LOAD),
                OPC_RecordMemRef,
                OPC_RecordNode,
                OPC_CheckFoldableChainNode,
                OPC_RecordChild1,
                OPC_CheckPredicate, 2,
                OPC_CheckPredicate, 3,
                OPC_CheckPredicate, 21,
                OPC_MoveParent,
                OPC_CheckType, MVT::v2f64,
                OPC_Scope, 19, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                17, 
                  OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                  OPC_EmitMergeInputChains1_1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
                0, 
              0, 
            27, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2f64,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPDrr), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              9, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPDrr), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            0, 
          90,  TARGET_OPCODE(X86ISD::UNPCKLPS),
            OPC_RecordChild0,
            OPC_Scope, 58, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 19, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              17, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            27, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              9, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            0, 
          90,  TARGET_OPCODE(X86ISD::UNPCKHPS),
            OPC_RecordChild0,
            OPC_Scope, 58, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 19, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              17, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            27, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v4f32,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              9, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPSrr), 0,
                    1, MVT::v4f32, 2, 0, 1, 
              0, 
            0, 
          90,  TARGET_OPCODE(X86ISD::UNPCKHPD),
            OPC_RecordChild0,
            OPC_Scope, 58, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
              OPC_RecordMemRef,
              OPC_RecordNode,
              OPC_CheckFoldableChainNode,
              OPC_RecordChild1,
              OPC_CheckPredicate, 2,
              OPC_CheckPredicate, 3,
              OPC_CheckPredicate, 21,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2f64,
              OPC_Scope, 19, 
                OPC_CheckPatternPredicate, 0,
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
              17, 
                OPC_CheckComplexPat, /*CP*/0, /*#*/2,
                OPC_EmitMergeInputChains1_1,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    1, MVT::v2f64, 6, 0, 3, 4, 5, 6, 7, 
              0, 
            27, 
              OPC_RecordChild1,
              OPC_CheckType, MVT::v2f64,
              OPC_Scope, 11, 
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VUNPCKHPDrr), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              9, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKHPDrr), 0,
                    1, MVT::v2f64, 2, 0, 1, 
              0, 
            0, 
          44,  TARGET_OPCODE(ISD::CALLSEQ_END),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
            OPC_MoveParent,
            OPC_RecordChild2,
            OPC_MoveChild, 2,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
            OPC_MoveParent,
            OPC_Scope, 12, 
              OPC_CheckPatternPredicate, 3,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ADJCALLSTACKUP32), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 2, 1, 2, 
            12, 
              OPC_CheckPatternPredicate, 4,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ADJCALLSTACKUP64), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i64, 2, 1, 2, 
            0, 
          30,  TARGET_OPCODE(X86ISD::VASTART_SAVE_XMM_REGS),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_MoveChild, 2,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_MoveParent,
            OPC_RecordChild3,
            OPC_MoveChild, 3,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_MoveParent,
            OPC_EmitMergeInputChains1_0,
            OPC_EmitConvertToTarget, 2,
            OPC_EmitConvertToTarget, 3,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::VASTART_SAVE_XMM_REGS), 0|OPFL_Chain|OPFL_Variadic3,
                0, 3, 1, 4, 5, 
          33,  TARGET_OPCODE(X86ISD::RET_FLAG),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_Scope, 12, 
              OPC_MoveChild, 1,
              OPC_CheckInteger, 0, 
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::RET), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic1,
                  0, 0, 
            15, 
              OPC_RecordChild1,
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::RETI), 0|OPFL_Chain|OPFL_FlagInput|OPFL_Variadic1,
                  0, 1, 1, 
            0, 
          12|128,2,  TARGET_OPCODE(X86ISD::BRCOND),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::BasicBlock),
            OPC_MoveParent,
            OPC_MoveChild, 2,
            OPC_Scope, 15, 
              OPC_CheckInteger, 13, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JO_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 10, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JNO_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 2, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JB_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 1, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JAE_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 4, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JE_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 9, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JNE_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 3, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JBE_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 0, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JA_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 15, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JS_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 12, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JNS_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 14, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JP_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 11, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JNP_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 7, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JL_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 6, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JGE_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 8, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JLE_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            15, 
              OPC_CheckInteger, 5, 
              OPC_MoveParent,
              OPC_RecordChild3,
              OPC_EmitMergeInputChains1_0,
              OPC_EmitCopyToReg, 2, X86::EFLAGS,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::JG_4), 0|OPFL_Chain|OPFL_FlagInput,
                  0, 1, 1, 
            0, 
          34,  TARGET_OPCODE(ISD::CALLSEQ_START),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::TargetConstant),
            OPC_MoveParent,
            OPC_Scope, 11, 
              OPC_CheckPatternPredicate, 3,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ADJCALLSTACKDOWN32), 0|OPFL_Chain|OPFL_FlagOutput,
                  1, MVT::i32, 1, 1, 
            11, 
              OPC_CheckPatternPredicate, 4,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::ADJCALLSTACKDOWN64), 0|OPFL_Chain|OPFL_FlagOutput,
                  1, MVT::i64, 1, 1, 
            0, 
          66,  TARGET_OPCODE(X86ISD::VSHL),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i8,
            OPC_MoveParent,
            OPC_SwitchType , 36,  MVT::v2i64,
              OPC_Scope, 16, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              16, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              0, 
            14,  MVT::v1i64,
              OPC_EmitConvertToTarget, 1,
              OPC_EmitNodeXForm, 1, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSLLQri), 0,
                  1, MVT::v1i64, 2, 0, 3, 
            0, 
          66,  TARGET_OPCODE(X86ISD::VSRL),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i8,
            OPC_MoveParent,
            OPC_SwitchType , 36,  MVT::v2i64,
              OPC_Scope, 16, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              16, 
                OPC_CheckPatternPredicate, 2,
                OPC_EmitConvertToTarget, 1,
                OPC_EmitNodeXForm, 0, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              0, 
            14,  MVT::v1i64,
              OPC_EmitConvertToTarget, 1,
              OPC_EmitNodeXForm, 1, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_PSRLQri), 0,
                  1, MVT::v1i64, 2, 0, 3, 
            0, 
          77,  TARGET_OPCODE(X86ISD::SHUFPD),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_MoveChild, 2,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i8,
            OPC_MoveParent,
            OPC_SwitchType , 30,  MVT::v2i64,
              OPC_Scope, 14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrri), 0,
                    1, MVT::v2i64, 3, 0, 1, 3, 
              12, 
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
                    1, MVT::v2i64, 3, 0, 1, 3, 
              0, 
            30,  MVT::v2f64,
              OPC_Scope, 14, 
                OPC_CheckPatternPredicate, 0,
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrri), 0,
                    1, MVT::v2f64, 3, 0, 1, 3, 
              12, 
                OPC_EmitConvertToTarget, 2,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
                    1, MVT::v2f64, 3, 0, 1, 3, 
              0, 
            0, 
          125,  TARGET_OPCODE(X86ISD::PALIGN),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_RecordChild2,
            OPC_MoveChild, 2,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckType, MVT::i8,
            OPC_MoveParent,
            OPC_SwitchType , 12,  MVT::v1i64,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                  1, MVT::v1i64, 3, 1, 0, 3, 
            12,  MVT::v2i32,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                  1, MVT::v2i32, 3, 1, 0, 3, 
            12,  MVT::v4i16,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                  1, MVT::v4i16, 3, 1, 0, 3, 
            12,  MVT::v8i8,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
                  1, MVT::v8i8, 3, 1, 0, 3, 
            12,  MVT::v4i32,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                  1, MVT::v4i32, 3, 1, 0, 3, 
            12,  MVT::v8i16,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                  1, MVT::v8i16, 3, 1, 0, 3, 
            12,  MVT::v16i8,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                  1, MVT::v16i8, 3, 1, 0, 3, 
            12,  MVT::v4f32,
              OPC_EmitConvertToTarget, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
                  1, MVT::v4f32, 3, 1, 0, 3, 
            0, 
          80|128,1,  TARGET_OPCODE(ISD::BUILD_VECTOR),
            OPC_Scope, 55, 
              OPC_CheckPredicate, 107,
              OPC_SwitchType , 22,  MVT::v4i32,
                OPC_Scope, 9, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SET0PI), 0,
                      1, MVT::v4i32, 0, 
                9, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AVX_SET0PI), 0,
                      1, MVT::v4i32, 0, 
                0, 
              7,  MVT::v2i64,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SET0PI), 0,
                    1, MVT::v2i64, 0, 
              7,  MVT::v8i16,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SET0PI), 0,
                    1, MVT::v8i16, 0, 
              7,  MVT::v16i8,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SET0PI), 0,
                    1, MVT::v16i8, 0, 
              0, 
            13, 
              OPC_CheckPredicate, 44,
              OPC_CheckType, MVT::v4i32,
              OPC_CheckPatternPredicate, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SETALLONES), 0,
                  1, MVT::v4i32, 0, 
            13, 
              OPC_CheckPredicate, 107,
              OPC_CheckType, MVT::v2i32,
              OPC_CheckPatternPredicate, 9,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
                  1, MVT::v2i32, 0, 
            13, 
              OPC_CheckPredicate, 44,
              OPC_CheckType, MVT::v2i32,
              OPC_CheckPatternPredicate, 9,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SETALLONES), 0,
                  1, MVT::v2i32, 0, 
            107, 
              OPC_CheckPredicate, 107,
              OPC_SwitchType , 9,  MVT::v1i64,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
                    1, MVT::v1i64, 0, 
              9,  MVT::v4i16,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
                    1, MVT::v4i16, 0, 
              9,  MVT::v8i8,
                OPC_CheckPatternPredicate, 9,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
                    1, MVT::v8i8, 0, 
              22,  MVT::v4f32,
                OPC_Scope, 9, 
                  OPC_CheckPatternPredicate, 1,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SET0PS), 0,
                      1, MVT::v4f32, 0, 
                9, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AVX_SET0PS), 0,
                      1, MVT::v4f32, 0, 
                0, 
              22,  MVT::v2f64,
                OPC_Scope, 9, 
                  OPC_CheckPatternPredicate, 2,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SET0PD), 0,
                      1, MVT::v2f64, 0, 
                9, 
                  OPC_CheckPatternPredicate, 0,
                  OPC_MorphNodeTo, TARGET_OPCODE(X86::AVX_SET0PD), 0,
                      1, MVT::v2f64, 0, 
                0, 
              9,  MVT::v8f32,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AVX_SET0PSY), 0,
                    1, MVT::v8f32, 0, 
              9,  MVT::v4f64,
                OPC_CheckPatternPredicate, 0,
                OPC_MorphNodeTo, TARGET_OPCODE(X86::AVX_SET0PDY), 0,
                    1, MVT::v4f64, 0, 
              0, 
            0, 
          16,  TARGET_OPCODE(ISD::BR),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::BasicBlock),
            OPC_MoveParent,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::JMP_4), 0|OPFL_Chain,
                0, 1, 1, 
          54,  TARGET_OPCODE(X86ISD::REP_MOVS),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_MoveChild, 1,
            OPC_Scope, 11, 
              OPC_CheckValueType, MVT::i8,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_MOVSB), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 0, 
            11, 
              OPC_CheckValueType, MVT::i16,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_MOVSW), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 0, 
            11, 
              OPC_CheckValueType, MVT::i32,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_MOVSD), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 0, 
            11, 
              OPC_CheckValueType, MVT::i64,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_MOVSQ), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i64, 0, 
            0, 
          54,  TARGET_OPCODE(X86ISD::REP_STOS),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_MoveChild, 1,
            OPC_Scope, 11, 
              OPC_CheckValueType, MVT::i8,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_STOSB), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 0, 
            11, 
              OPC_CheckValueType, MVT::i16,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_STOSW), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 0, 
            11, 
              OPC_CheckValueType, MVT::i32,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_STOSD), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i32, 0, 
            11, 
              OPC_CheckValueType, MVT::i64,
              OPC_MoveParent,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::REP_STOSQ), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                  1, MVT::i64, 0, 
            0, 
          9,  TARGET_OPCODE(X86ISD::RDTSC_DAG),
            OPC_RecordNode,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::RDTSC), 0|OPFL_Chain|OPFL_FlagOutput,
                1, MVT::i64, 0, 
          8,  TARGET_OPCODE(ISD::TRAP),
            OPC_RecordNode,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::TRAP), 0|OPFL_Chain,
                0, 0, 
          26,  TARGET_OPCODE(X86ISD::EH_RETURN),
            OPC_RecordNode,
            OPC_RecordChild1,
            OPC_Scope, 10, 
              OPC_CheckChild1Type, MVT::i32,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::EH_RETURN), 0|OPFL_Chain,
                  0, 1, 1, 
            10, 
              OPC_CheckChild1Type, MVT::i64,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::EH_RETURN64), 0|OPFL_Chain,
                  0, 1, 1, 
            0, 
          28,  TARGET_OPCODE(X86ISD::MEMBARRIER),
            OPC_RecordNode,
            OPC_Scope, 9, 
              OPC_CheckPatternPredicate, 2,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_MemBarrier), 0|OPFL_Chain,
                  0, 0, 
            14, 
              OPC_RecordChild1,
              OPC_CheckChild1Type, MVT::i64,
              OPC_CheckPatternPredicate, 4,
              OPC_EmitMergeInputChains1_0,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::Int_MemBarrierNoSSE64), 0|OPFL_Chain,
                  1, MVT::i32, 1, 1, 
            0, 
          8,  TARGET_OPCODE(X86ISD::SFENCE),
            OPC_RecordNode,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::SFENCE), 0|OPFL_Chain,
                0, 0, 
          50,  TARGET_OPCODE(X86ISD::FSRL),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_MoveChild, 1,
            OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
            OPC_CheckPredicate, 9,
            OPC_CheckType, MVT::i32,
            OPC_MoveParent,
            OPC_CheckType, MVT::v2f64,
            OPC_Scope, 16, 
              OPC_CheckPatternPredicate, 0,
              OPC_EmitConvertToTarget, 1,
              OPC_EmitNodeXForm, 0, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
                  1, MVT::v2f64, 2, 0, 3, 
            16, 
              OPC_CheckPatternPredicate, 2,
              OPC_EmitConvertToTarget, 1,
              OPC_EmitNodeXForm, 0, 2,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
                  1, MVT::v2f64, 2, 0, 3, 
            0, 
          120,  TARGET_OPCODE(X86ISD::MOVSD),
            OPC_RecordChild0,
            OPC_Scope, 20, 
              OPC_MoveChild, 1,
              OPC_CheckOpcode, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
              OPC_RecordChild0,
              OPC_CheckChild0Type, MVT::f64,
              OPC_MoveParent,
              OPC_CheckType, MVT::v2f64,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                  1, MVT::v2f64, 2, 0, 1, 
            95, 
              OPC_RecordChild1,
              OPC_SwitchType , 21,  MVT::v2i64,
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f64, 2, 1, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                    1, MVT::v2i64, 2, 0, 3, 
              21,  MVT::v4i32,
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f64, 2, 1, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                    1, MVT::v4i32, 2, 0, 3, 
              21,  MVT::v2f64,
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f64, 2, 1, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                    1, MVT::v2f64, 2, 0, 3, 
              21,  MVT::v4f32,
                OPC_EmitInteger, MVT::i32, X86::sub_sd,
                OPC_EmitNode, TARGET_OPCODE(TargetOpcode::EXTRACT_SUBREG), 0,
                    1, MVT::f64, 2, 1, 2, 
                OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSDrr), 0,
                    1, MVT::v4f32, 2, 0, 3, 
              0, 
            0, 
          8,  TARGET_OPCODE(X86ISD::LFENCE),
            OPC_RecordNode,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::LFENCE), 0|OPFL_Chain,
                0, 0, 
          8,  TARGET_OPCODE(X86ISD::MFENCE),
            OPC_RecordNode,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::MFENCE), 0|OPFL_Chain,
                0, 0, 
          26,  TARGET_OPCODE(X86ISD::MOVHLPS),
            OPC_RecordChild0,
            OPC_RecordChild1,
            OPC_SwitchType , 9,  MVT::v4i32,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
                  1, MVT::v4i32, 2, 0, 1, 
            9,  MVT::v4f32,
              OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVHLPSrr), 0,
                  1, MVT::v4f32, 2, 0, 1, 
            0, 
          10,  TARGET_OPCODE(X86ISD::MINGW_ALLOCA),
            OPC_RecordNode,
            OPC_CaptureFlagInput,
            OPC_EmitMergeInputChains1_0,
            OPC_MorphNodeTo, TARGET_OPCODE(X86::MINGW_ALLOCA), 0|OPFL_Chain|OPFL_FlagInput|OPFL_FlagOutput,
                1, MVT::i32, 0, 
          0, 
    0
  }; // Total Array size is 92012 bytes

  #undef TARGET_OPCODE
  return SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
}

bool CheckPatternPredicate(unsigned PredNo) const {
  switch (PredNo) {
  default: assert(0 && "Invalid predicate in table?");
  case 0: return (Subtarget->hasAVX());
  case 1: return (Subtarget->hasSSE1() && !Subtarget->hasAVX());
  case 2: return (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 3: return (!Subtarget->is64Bit());
  case 4: return (Subtarget->is64Bit());
  case 5: return (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 6: return (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel) && (TM.getRelocationModel() == Reloc::Static);
  case 7: return (!Subtarget->hasSSE1());
  case 8: return (!Subtarget->hasSSE2());
  case 9: return (Subtarget->hasMMX() && !Subtarget->hasAVX());
  case 10: return (Subtarget->hasSSE42() && !Subtarget->hasAVX());
  case 11: return (Subtarget->hasSSSE3() && !Subtarget->hasAVX());
  case 12: return (Subtarget->hasAVX()) && (Subtarget->hasAES());
  case 13: return (Subtarget->hasAES());
  case 14: return (Subtarget->hasSSE3() && !Subtarget->hasAVX());
  case 15: return (Subtarget->hasCMov());
  case 16: return (!Subtarget->hasCMov());
  case 17: return (!Subtarget->hasSSE1()) && (Subtarget->hasCMov());
  case 18: return (!Subtarget->hasSSE2()) && (Subtarget->hasCMov());
  case 19: return (Subtarget->hasSSE2() && !Subtarget->hasAVX()) && (OptForSize);
  case 20: return (Subtarget->hasSSE2() && !Subtarget->hasAVX()) && (!OptForSize);
  case 21: return (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel);
  case 22: return (TM.getCodeModel() == CodeModel::Small);
  case 23: return (TM.getCodeModel() == CodeModel::Kernel);
  case 24: return (Subtarget->hasSSE1() && !Subtarget->hasAVX()) && (OptForSize);
  case 25: return (!OptForSize) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 26: return (!Subtarget->is64Bit()) && (TM.getRelocationModel() != Reloc::PIC_);
  case 27: return (Subtarget->hasMMX() && !Subtarget->hasAVX()) && (Subtarget->is64Bit());
  case 28: return (!Subtarget->isTargetWin64());
  case 29: return (Subtarget->isTargetWin64());
  case 30: return (Subtarget->IsLegalToCallImmediateAddr(TM));
  }
}

bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const {
  switch (PredNo) {
  default: assert(0 && "Invalid predicate in table?");
  case 0: { // Predicate_alignednontemporalstore
    SDNode *N = Node;

  if (StoreSDNode *ST = dyn_cast<StoreSDNode>(N))
    return ST->isNonTemporal() && !ST->isTruncatingStore() &&
           ST->getAddressingMode() == ISD::UNINDEXED &&
           ST->getAlignment() >= 16;
  return false;

  }
  case 1: { // Predicate_nontemporalstore
    SDNode *N = Node;

  if (StoreSDNode *ST = dyn_cast<StoreSDNode>(N))
    return ST->isNonTemporal();
  return false;

  }
  case 2: { // Predicate_unindexedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;

  }
  case 3: { // Predicate_load
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;

  }
  case 4: { // Predicate_dsload
    SDNode *N = Node;

  if (const Value *Src = cast<LoadSDNode>(N)->getSrcValue())
    if (const PointerType *PT = dyn_cast<PointerType>(Src->getType()))
      if (PT->getAddressSpace() > 255)
        return false;
  return true;

  }
  case 5: { // Predicate_unindexedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;

  }
  case 6: { // Predicate_store
    SDNode *N = Node;

  return !cast<StoreSDNode>(N)->isTruncatingStore();

  }
  case 7: { // Predicate_loadi16
    SDNode *N = Node;

  LoadSDNode *LD = cast<LoadSDNode>(N);
  if (const Value *Src = LD->getSrcValue())
    if (const PointerType *PT = dyn_cast<PointerType>(Src->getType()))
      if (PT->getAddressSpace() > 255)
        return false;
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType == ISD::NON_EXTLOAD)
    return true;
  if (ExtType == ISD::EXTLOAD)
    return LD->getAlignment() >= 2 && !LD->isVolatile();
  return false;

  }
  case 8: { // Predicate_loadi32
    SDNode *N = Node;

  LoadSDNode *LD = cast<LoadSDNode>(N);
  if (const Value *Src = LD->getSrcValue())
    if (const PointerType *PT = dyn_cast<PointerType>(Src->getType()))
      if (PT->getAddressSpace() > 255)
        return false;
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType == ISD::NON_EXTLOAD)
    return true;
  if (ExtType == ISD::EXTLOAD)
    return LD->getAlignment() >= 4 && !LD->isVolatile();
  return false;

  }
  case 9: { // Predicate_immSext8
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 return immSext8(N); 
  }
  case 10: { // Predicate_i64immSExt32
    ConstantSDNode*N = cast<ConstantSDNode>(Node);
 return i64immSExt32(N); 
  }
  case 11: { // Predicate_movlp
    SDNode *N = Node;

  return X86::isMOVLPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 12: { // Predicate_unpckh
    SDNode *N = Node;

  return X86::isUNPCKHMask(cast<ShuffleVectorSDNode>(N));

  }
  case 13: { // Predicate_srl_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 14: { // Predicate_trunc_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 15: { // Predicate_truncstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->isTruncatingStore();

  }
  case 16: { // Predicate_truncstoref32
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f32;

  }
  case 17: { // Predicate_truncstoref64
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getMemoryVT() == MVT::f64;

  }
  case 18: { // Predicate_alignedstore
    SDNode *N = Node;

  return cast<StoreSDNode>(N)->getAlignment() >= 16;

  }
  case 19: { // Predicate_and_su
    SDNode *N = Node;

  return N->hasOneUse();

  }
  case 20: { // Predicate_loadi16_anyext
    SDNode *N = Node;

  LoadSDNode *LD = cast<LoadSDNode>(N);
  if (const Value *Src = LD->getSrcValue())
    if (const PointerType *PT = dyn_cast<PointerType>(Src->getType()))
      if (PT->getAddressSpace() > 255)
        return false;
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType == ISD::EXTLOAD)
    return LD->getAlignment() >= 2 && !LD->isVolatile();
  return false;

  }
  case 21: { // Predicate_memop
    SDNode *N = Node;

  return    Subtarget->hasVectorUAMem()
         || cast<LoadSDNode>(N)->getAlignment() >= 16;

  }
  case 22: { // Predicate_memop64
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 8;

  }
  case 23: { // Predicate_gsload
    SDNode *N = Node;

  if (const Value *Src = cast<LoadSDNode>(N)->getSrcValue())
    if (const PointerType *PT = dyn_cast<PointerType>(Src->getType()))
      return PT->getAddressSpace() == 256;
  return false;

  }
  case 24: { // Predicate_fsload
    SDNode *N = Node;

  if (const Value *Src = cast<LoadSDNode>(N)->getSrcValue())
    if (const PointerType *PT = dyn_cast<PointerType>(Src->getType()))
      return PT->getAddressSpace() == 257;
  return false;

  }
  case 25: { // Predicate_sextload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;

  }
  case 26: { // Predicate_sextloadi8
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 27: { // Predicate_sextloadi16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 28: { // Predicate_zextload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;

  }
  case 29: { // Predicate_zextloadi8
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 30: { // Predicate_zextloadi16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 31: { // Predicate_zextloadi1
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;

  }
  case 32: { // Predicate_extload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;

  }
  case 33: { // Predicate_extloadi1
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;

  }
  case 34: { // Predicate_extloadi8
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;

  }
  case 35: { // Predicate_extloadi16
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;

  }
  case 36: { // Predicate_sextloadi32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 37: { // Predicate_zextloadi32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 38: { // Predicate_extloadi32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 39: { // Predicate_extloadf32
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;

  }
  case 40: { // Predicate_extloadf64
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f64;

  }
  case 41: { // Predicate_alignedload
    SDNode *N = Node;

  return cast<LoadSDNode>(N)->getAlignment() >= 16;

  }
  case 42: { // Predicate_or_is_add
    SDNode *N = Node;

  if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N->getOperand(1)))
    return CurDAG->MaskedValueIsZero(N->getOperand(0), CN->getAPIntValue());

  unsigned BitWidth = N->getValueType(0).getScalarType().getSizeInBits();
  APInt Mask = APInt::getAllOnesValue(BitWidth);
  APInt KnownZero0, KnownOne0;
  CurDAG->ComputeMaskedBits(N->getOperand(0), Mask, KnownZero0, KnownOne0, 0);
  APInt KnownZero1, KnownOne1;
  CurDAG->ComputeMaskedBits(N->getOperand(1), Mask, KnownZero1, KnownOne1, 0);
  return (~KnownZero0 & ~KnownZero1) == 0;

  }
  case 43: { // Predicate_i64immZExt32
    ConstantSDNode*N = cast<ConstantSDNode>(Node);

  // i64immZExt32 predicate - True if the 64-bit immediate fits in a 32-bit
  // unsignedsign extended field.
  return (uint64_t)N->getZExtValue() == (uint32_t)N->getZExtValue();

  }
  case 44: { // Predicate_immAllOnesV
    SDNode *N = Node;

  return ISD::isBuildVectorAllOnes(N);

  }
  case 45: { // Predicate_atomic_swap_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 46: { // Predicate_atomic_swap_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 47: { // Predicate_atomic_swap_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 48: { // Predicate_atomic_swap_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 49: { // Predicate_atomic_load_add_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 50: { // Predicate_atomic_load_add_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 51: { // Predicate_atomic_load_add_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 52: { // Predicate_atomic_load_add_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 53: { // Predicate_atomic_load_and_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 54: { // Predicate_atomic_load_and_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 55: { // Predicate_atomic_load_and_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 56: { // Predicate_atomic_load_and_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 57: { // Predicate_atomic_load_or_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 58: { // Predicate_atomic_load_or_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 59: { // Predicate_atomic_load_or_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 60: { // Predicate_atomic_load_or_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 61: { // Predicate_atomic_load_xor_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 62: { // Predicate_atomic_load_xor_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 63: { // Predicate_atomic_load_xor_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 64: { // Predicate_atomic_load_xor_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 65: { // Predicate_atomic_load_nand_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 66: { // Predicate_atomic_load_nand_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 67: { // Predicate_atomic_load_nand_8
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
  
  }
  case 68: { // Predicate_atomic_load_nand_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 69: { // Predicate_atomic_load_min_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 70: { // Predicate_atomic_load_min_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 71: { // Predicate_atomic_load_min_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 72: { // Predicate_atomic_load_max_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 73: { // Predicate_atomic_load_max_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 74: { // Predicate_atomic_load_max_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 75: { // Predicate_atomic_load_umin_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 76: { // Predicate_atomic_load_umin_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 77: { // Predicate_atomic_load_umin_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 78: { // Predicate_atomic_load_umax_32
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
  
  }
  case 79: { // Predicate_atomic_load_umax_16
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
  
  }
  case 80: { // Predicate_atomic_load_umax_64
    SDNode *N = Node;

    return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
  
  }
  case 81: { // Predicate_def32
    SDNode *N = Node;

  return N->getOpcode() != ISD::TRUNCATE &&
         N->getOpcode() != TargetOpcode::EXTRACT_SUBREG &&
         N->getOpcode() != ISD::CopyFromReg &&
         N->getOpcode() != X86ISD::CMOV;

  }
  case 82: { // Predicate_fpimm0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

  }
  case 83: { // Predicate_fpimm1
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+1.0);

  }
  case 84: { // Predicate_fp32imm0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(+0.0);

  }
  case 85: { // Predicate_fpimmneg0
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(-0.0);

  }
  case 86: { // Predicate_fpimmneg1
    ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);

  return N->isExactlyValue(-1.0);

  }
  case 87: { // Predicate_movshdup
    SDNode *N = Node;

  return X86::isMOVSHDUPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 88: { // Predicate_movsldup
    SDNode *N = Node;

  return X86::isMOVSLDUPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 89: { // Predicate_pshufd
    SDNode *N = Node;

  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));

  }
  case 90: { // Predicate_movddup
    SDNode *N = Node;

  return X86::isMOVDDUPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 91: { // Predicate_pshufhw
    SDNode *N = Node;

  return X86::isPSHUFHWMask(cast<ShuffleVectorSDNode>(N));

  }
  case 92: { // Predicate_pshuflw
    SDNode *N = Node;

  return X86::isPSHUFLWMask(cast<ShuffleVectorSDNode>(N));

  }
  case 93: { // Predicate_mmx_pshufw
    SDNode *N = Node;

  return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));

  }
  case 94: { // Predicate_unpckl
    SDNode *N = Node;

  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));

  }
  case 95: { // Predicate_shufp
    SDNode *N = Node;

  return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N));

  }
  case 96: { // Predicate_mmx_unpckh
    SDNode *N = Node;

  return X86::isUNPCKHMask(cast<ShuffleVectorSDNode>(N));

  }
  case 97: { // Predicate_mmx_unpckl
    SDNode *N = Node;

  return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));

  }
  case 98: { // Predicate_movlhps
    SDNode *N = Node;

  return X86::isMOVLHPSMask(cast<ShuffleVectorSDNode>(N));

  }
  case 99: { // Predicate_movhlps_undef
    SDNode *N = Node;

  return X86::isMOVHLPS_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 100: { // Predicate_movhlps
    SDNode *N = Node;

  return X86::isMOVHLPSMask(cast<ShuffleVectorSDNode>(N));

  }
  case 101: { // Predicate_unpckl_undef
    SDNode *N = Node;

  return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 102: { // Predicate_unpckh_undef
    SDNode *N = Node;

  return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 103: { // Predicate_movl
    SDNode *N = Node;

  return X86::isMOVLMask(cast<ShuffleVectorSDNode>(N));

  }
  case 104: { // Predicate_splat_lo
    SDNode *N = Node;

  ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
  return SVOp->isSplat() && SVOp->getSplatIndex() == 0;

  }
  case 105: { // Predicate_mmx_unpckl_undef
    SDNode *N = Node;

  return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 106: { // Predicate_mmx_unpckh_undef
    SDNode *N = Node;

  return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));

  }
  case 107: { // Predicate_immAllZerosV
    SDNode *N = Node;

  return ISD::isBuildVectorAllZeros(N);

  }
  case 108: { // Predicate_palign
    SDNode *N = Node;

  return X86::isPALIGNRMask(cast<ShuffleVectorSDNode>(N));

  }
  }
}

bool CheckComplexPattern(SDNode *Root, SDValue N,
      unsigned PatternNo, SmallVectorImpl<SDValue> &Result) {
  unsigned NextRes = Result.size();
  switch (PatternNo) {
  default: assert(0 && "Invalid pattern # in table?");
  case 0:
    Result.resize(NextRes+5);
    return SelectAddr(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4]);
  case 1:
    Result.resize(NextRes+6);
    return SelectScalarSSELoad(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4], Result[NextRes+5]);
  case 2:
    Result.resize(NextRes+6);
    return SelectScalarSSELoad(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4], Result[NextRes+5]);
  case 3:
    Result.resize(NextRes+5);
    return SelectLEAAddr(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4]);
  case 4:
    Result.resize(NextRes+5);
    return SelectLEAAddr(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4]);
  case 5:
    Result.resize(NextRes+5);
    return SelectTLSADDRAddr(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4]);
  case 6:
    Result.resize(NextRes+5);
    return SelectTLSADDRAddr(Root, N, Result[NextRes+0], Result[NextRes+1], Result[NextRes+2], Result[NextRes+3], Result[NextRes+4]);
  }
}

SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) {
  switch (XFormNo) {
  default: assert(0 && "Invalid xform # in table?");
  case 0: {  
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  // Transformation function: imm >> 3
  return getI32Imm(N->getZExtValue() >> 3);

  }
  case 1: {  
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  // Transformation function: get the low 32 bits.
  return getI32Imm((unsigned)N->getZExtValue());

  }
  case 2: {  
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShuffleSHUFImmediate(N));

  }
  case 3: {  
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShufflePSHUFHWImmediate(N));

  }
  case 4: {  
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShufflePSHUFLWImmediate(N));

  }
  case 5: {  
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShuffleSHUFImmediate(N));

  }
  case 6: {  
    SDNode *N = V.getNode();

  return getI8Imm(X86::getShufflePALIGNRImmediate(N));

  }
  }
}

