37913 lines
1.6 MiB
37913 lines
1.6 MiB
//===- 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,
|
|
120|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, 19,
|
|
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, 20,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 21,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 22,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_Scope, 22,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 0, 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, 0, 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, 19,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 23,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 19,
|
|
OPC_MoveParent,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 23,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 19,
|
|
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, 24,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 1, 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, 25,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 2, 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, 24,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 1, 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, 25,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 2, 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, 22,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 0, 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, 26,
|
|
OPC_CheckType, MVT::v4i16,
|
|
OPC_CheckPatternPredicate, 9,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/2,
|
|
OPC_EmitMergeInputChains1_1,
|
|
OPC_EmitNodeXForm, 3, 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, 19,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_Scope, 67,
|
|
OPC_CheckPredicate, 27,
|
|
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, 27,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 28,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/3,
|
|
OPC_EmitMergeInputChains, 1, 2,
|
|
OPC_EmitNodeXForm, 0, 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, 29,
|
|
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, 30,
|
|
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, 31,
|
|
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, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
|
|
1, MVT::v2i64, 2, 0, 0,
|
|
11, MVT::v4i32,
|
|
OPC_CheckPredicate, 32,
|
|
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, 19,
|
|
OPC_MoveParent,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_Scope, 21,
|
|
OPC_CheckPredicate, 27,
|
|
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, 27,
|
|
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, 31,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
|
|
1, MVT::v4i32, 2, 0, 1,
|
|
11,
|
|
OPC_CheckPredicate, 33,
|
|
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, 20,
|
|
OPC_CheckPatternPredicate, 10,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
|
|
1, MVT::v4i32, 1, 0,
|
|
12,
|
|
OPC_CheckPredicate, 21,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 34,
|
|
OPC_CheckPatternPredicate, 11,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
|
|
1, MVT::v4i32, 2, 1, 2,
|
|
16,
|
|
OPC_CheckPredicate, 35,
|
|
OPC_CheckPatternPredicate, 11,
|
|
OPC_EmitNodeXForm, 0, 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, 36,
|
|
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, 37,
|
|
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, 34,
|
|
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, 35,
|
|
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, 38,
|
|
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, 39,
|
|
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, 40,
|
|
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, 36,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_MOVQ2DQrr), 0,
|
|
1, MVT::v2i64, 1, 0,
|
|
34|128,2,
|
|
OPC_RecordNode,
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 42,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 22,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_Scope, 14,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFDri), 0,
|
|
1, MVT::v4i32, 2, 1, 2,
|
|
14,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
|
|
1, MVT::v4i32, 2, 1, 2,
|
|
0,
|
|
124,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 41,
|
|
OPC_SwitchType , 15, MVT::v1i64,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
|
|
1, MVT::v1i64, 3, 2, 1, 3,
|
|
15, MVT::v2i32,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
|
|
1, MVT::v2i32, 3, 2, 1, 3,
|
|
15, MVT::v4i16,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
|
|
1, MVT::v4i16, 3, 2, 1, 3,
|
|
15, MVT::v8i8,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR64rr), 0,
|
|
1, MVT::v8i8, 3, 2, 1, 3,
|
|
15, MVT::v4i32,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
|
|
1, MVT::v4i32, 3, 2, 1, 3,
|
|
15, MVT::v8i16,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
|
|
1, MVT::v8i16, 3, 2, 1, 3,
|
|
15, MVT::v16i8,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
|
|
1, MVT::v16i8, 3, 2, 1, 3,
|
|
0,
|
|
117,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_SwitchType , 70, MVT::v8i16,
|
|
OPC_Scope, 16,
|
|
OPC_CheckPredicate, 24,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_EmitNodeXForm, 1, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFHWri), 0,
|
|
1, MVT::v8i16, 2, 1, 2,
|
|
16,
|
|
OPC_CheckPredicate, 25,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_EmitNodeXForm, 2, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSHUFLWri), 0,
|
|
1, MVT::v8i16, 2, 1, 2,
|
|
16,
|
|
OPC_CheckPredicate, 24,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 1, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFHWri), 0,
|
|
1, MVT::v8i16, 2, 1, 2,
|
|
16,
|
|
OPC_CheckPredicate, 25,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 2, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFLWri), 0,
|
|
1, MVT::v8i16, 2, 1, 2,
|
|
0,
|
|
17, MVT::v2i64,
|
|
OPC_CheckPredicate, 22,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
|
|
1, MVT::v2i64, 3, 1, 1, 2,
|
|
16, MVT::v4i16,
|
|
OPC_CheckPredicate, 26,
|
|
OPC_CheckPatternPredicate, 9,
|
|
OPC_EmitNodeXForm, 3, 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, 27,
|
|
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, 27,
|
|
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, 28,
|
|
OPC_SwitchType , 15, MVT::v4i32,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
|
|
1, MVT::v4i32, 3, 1, 2, 3,
|
|
15, MVT::v2i64,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
|
|
1, MVT::v2i64, 3, 1, 2, 3,
|
|
0,
|
|
7|128,3,
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 91,
|
|
OPC_RecordChild1,
|
|
OPC_Scope, 43,
|
|
OPC_CheckPredicate, 29,
|
|
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, 30,
|
|
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,
|
|
38|128,2,
|
|
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, 31,
|
|
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, 31,
|
|
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, 31,
|
|
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, 31,
|
|
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,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v2f64,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 23,
|
|
OPC_CheckType, MVT::v4f32,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 19,
|
|
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, 27,
|
|
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, 27,
|
|
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, 27,
|
|
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, 23,
|
|
OPC_CheckType, MVT::v2f64,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 19,
|
|
OPC_MoveParent,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_SwitchType , 20, MVT::v2f64,
|
|
OPC_CheckPredicate, 23,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 20,
|
|
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, 21,
|
|
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, 20,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 21,
|
|
OPC_CheckPatternPredicate, 10,
|
|
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, 23,
|
|
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, 10,
|
|
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, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
|
|
1, MVT::v4f32, 2, 0, 0,
|
|
11,
|
|
OPC_CheckPredicate, 32,
|
|
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, 19,
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 28,
|
|
OPC_SwitchType , 54, MVT::v4f32,
|
|
OPC_Scope, 25,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_CheckComplexPat, /*CP*/0, /*#*/3,
|
|
OPC_EmitMergeInputChains, 1, 2,
|
|
OPC_EmitNodeXForm, 0, 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, 0, 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, 0, 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, 0, 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, 0, 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, 0, 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, 31,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVLHPSrr), 0,
|
|
1, MVT::v4f32, 2, 0, 1,
|
|
13,
|
|
OPC_CheckPredicate, 33,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVHLPSrr), 0,
|
|
1, MVT::v4f32, 2, 0, 1,
|
|
13,
|
|
OPC_CheckPredicate, 31,
|
|
OPC_CheckPatternPredicate, 1,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
|
|
1, MVT::v4f32, 2, 0, 1,
|
|
13,
|
|
OPC_CheckPredicate, 33,
|
|
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, 34,
|
|
OPC_CheckPatternPredicate, 11,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
|
|
1, MVT::v4f32, 2, 1, 2,
|
|
16,
|
|
OPC_CheckPredicate, 35,
|
|
OPC_CheckPatternPredicate, 11,
|
|
OPC_EmitNodeXForm, 0, 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, 36,
|
|
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, 37,
|
|
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, 34,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::UNPCKLPSrr), 0,
|
|
1, MVT::v4f32, 2, 0, 0,
|
|
11,
|
|
OPC_CheckPredicate, 35,
|
|
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, 27,
|
|
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, 27,
|
|
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, 27,
|
|
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,
|
|
50,
|
|
OPC_RecordNode,
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 24,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::UNDEF),
|
|
OPC_MoveParent,
|
|
OPC_CheckPredicate, 22,
|
|
OPC_CheckType, MVT::v4f32,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSHUFDri), 0,
|
|
1, MVT::v4f32, 2, 1, 2,
|
|
20,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 41,
|
|
OPC_CheckType, MVT::v4f32,
|
|
OPC_CheckPatternPredicate, 12,
|
|
OPC_EmitNodeXForm, 4, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PALIGNR128rr), 0,
|
|
1, MVT::v4f32, 3, 2, 1, 3,
|
|
0,
|
|
41|128,1,
|
|
OPC_RecordChild0,
|
|
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, 36,
|
|
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, 36,
|
|
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, 20,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSHDUPrr), 0,
|
|
1, MVT::v4f32, 1, 0,
|
|
12,
|
|
OPC_CheckPredicate, 21,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVSLDUPrr), 0,
|
|
1, MVT::v4f32, 1, 0,
|
|
12,
|
|
OPC_CheckPredicate, 20,
|
|
OPC_CheckPatternPredicate, 10,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
|
|
1, MVT::v4f32, 1, 0,
|
|
12,
|
|
OPC_CheckPredicate, 21,
|
|
OPC_CheckPatternPredicate, 10,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
|
|
1, MVT::v4f32, 1, 0,
|
|
0,
|
|
26, MVT::v2f64,
|
|
OPC_CheckPredicate, 23,
|
|
OPC_Scope, 10,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VMOVDDUPrr), 0,
|
|
1, MVT::v2f64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 10,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVDDUPrr), 0,
|
|
1, MVT::v2f64, 1, 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, 22,
|
|
OPC_SwitchType , 13, MVT::v4f32,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
|
|
1, MVT::v4f32, 3, 1, 1, 2,
|
|
15, MVT::v2f64,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 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, 28,
|
|
OPC_SwitchType , 34, MVT::v4f32,
|
|
OPC_Scope, 15,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPSrri), 0,
|
|
1, MVT::v4f32, 3, 1, 2, 3,
|
|
15,
|
|
OPC_CheckPatternPredicate, 1,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPSrri), 0,
|
|
1, MVT::v4f32, 3, 1, 2, 3,
|
|
0,
|
|
15, MVT::v8f32,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_EmitNodeXForm, 0, 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, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VSHUFPDrri), 0,
|
|
1, MVT::v2f64, 3, 1, 2, 3,
|
|
15,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitNodeXForm, 0, 0,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::SHUFPDrri), 0,
|
|
1, MVT::v2f64, 3, 1, 2, 3,
|
|
0,
|
|
15, MVT::v4f64,
|
|
OPC_CheckPatternPredicate, 0,
|
|
OPC_EmitNodeXForm, 0, 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, 0, 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,
|
|
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, 42,
|
|
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, 42,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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,
|
|
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, 43,
|
|
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, 43,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 44,
|
|
OPC_CheckType, MVT::v8i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_RecordChild2,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 13,
|
|
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, 13,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v16i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_Scope, 19,
|
|
OPC_CheckPatternPredicate, 14,
|
|
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, 15,
|
|
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, 19,
|
|
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, 14,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCrr), 0,
|
|
1, MVT::v2i64, 2, 0, 1,
|
|
11,
|
|
OPC_CheckPatternPredicate, 15,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v16i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_Scope, 19,
|
|
OPC_CheckPatternPredicate, 14,
|
|
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, 15,
|
|
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, 19,
|
|
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, 14,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESENCLASTrr), 0,
|
|
1, MVT::v2i64, 2, 0, 1,
|
|
11,
|
|
OPC_CheckPatternPredicate, 15,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v16i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_Scope, 19,
|
|
OPC_CheckPatternPredicate, 14,
|
|
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, 15,
|
|
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, 19,
|
|
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, 14,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECrr), 0,
|
|
1, MVT::v2i64, 2, 0, 1,
|
|
11,
|
|
OPC_CheckPatternPredicate, 15,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v16i8,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_Scope, 19,
|
|
OPC_CheckPatternPredicate, 14,
|
|
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, 15,
|
|
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, 19,
|
|
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, 14,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESDECLASTrr), 0,
|
|
1, MVT::v2i64, 2, 0, 1,
|
|
11,
|
|
OPC_CheckPatternPredicate, 15,
|
|
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, 19,
|
|
OPC_MoveParent,
|
|
OPC_RecordChild2,
|
|
OPC_MoveChild, 2,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
|
|
OPC_MoveParent,
|
|
OPC_Scope, 21,
|
|
OPC_CheckPatternPredicate, 14,
|
|
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, 15,
|
|
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, 14,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESKEYGENASSIST128rr), 0,
|
|
1, MVT::v2i64, 2, 0, 2,
|
|
13,
|
|
OPC_CheckPatternPredicate, 15,
|
|
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, 19,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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, 13,
|
|
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,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 44,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 19,
|
|
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, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 44,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
OPC_MoveParent,
|
|
OPC_Scope, 18,
|
|
OPC_CheckPatternPredicate, 14,
|
|
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, 15,
|
|
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, 14,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VAESIMCrr), 0,
|
|
1, MVT::v2i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 15,
|
|
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, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
|
|
1, MVT::v2i64, 2, 0, 3,
|
|
16,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 5, 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, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
|
|
1, MVT::v2i64, 2, 0, 3,
|
|
16,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 5, 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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 16,
|
|
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, 17,
|
|
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, 17,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 18,
|
|
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, 19,
|
|
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, 16,
|
|
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, 17,
|
|
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, 17,
|
|
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, 17,
|
|
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,
|
|
37|128,12, TARGET_OPCODE(ISD::LOAD),
|
|
OPC_RecordMemRef,
|
|
OPC_RecordNode,
|
|
OPC_Scope, 19|128,6,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 2,
|
|
OPC_Scope, 24|128,1,
|
|
OPC_CheckPredicate, 3,
|
|
OPC_SwitchType , 42, MVT::f64,
|
|
OPC_CheckPredicate, 4,
|
|
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,
|
|
0,
|
|
40, MVT::i32,
|
|
OPC_Scope, 18,
|
|
OPC_CheckPredicate, 45,
|
|
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, 46,
|
|
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, 45,
|
|
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, 46,
|
|
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, 47,
|
|
OPC_Scope, 40,
|
|
OPC_CheckPredicate, 48,
|
|
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, 49,
|
|
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, 50,
|
|
OPC_Scope, 40,
|
|
OPC_CheckPredicate, 51,
|
|
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, 52,
|
|
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, 53,
|
|
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, 54,
|
|
OPC_Scope, 58,
|
|
OPC_CheckPredicate, 55,
|
|
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, 56,
|
|
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, 57,
|
|
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, 47,
|
|
OPC_CheckType, MVT::i64,
|
|
OPC_Scope, 18,
|
|
OPC_CheckPredicate, 48,
|
|
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, 49,
|
|
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, 58,
|
|
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, 50,
|
|
OPC_CheckType, MVT::i64,
|
|
OPC_Scope, 18,
|
|
OPC_CheckPredicate, 51,
|
|
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, 52,
|
|
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, 59,
|
|
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, 53,
|
|
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, 54,
|
|
OPC_CheckType, MVT::i64,
|
|
OPC_Scope, 18,
|
|
OPC_CheckPredicate, 55,
|
|
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, 56,
|
|
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, 57,
|
|
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, 60,
|
|
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,
|
|
107|128,5,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 2,
|
|
OPC_Scope, 64,
|
|
OPC_CheckPredicate, 3,
|
|
OPC_CheckPredicate, 4,
|
|
OPC_SwitchType , 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,
|
|
18, MVT::f64,
|
|
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,
|
|
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, 54,
|
|
OPC_SwitchType , 20, MVT::f64,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 61,
|
|
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, 54,
|
|
OPC_CheckPredicate, 61,
|
|
OPC_CheckType, MVT::f64,
|
|
OPC_CheckPatternPredicate, 20,
|
|
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, 63,
|
|
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, 54,
|
|
OPC_CheckPredicate, 61,
|
|
OPC_CheckType, MVT::f64,
|
|
OPC_CheckPatternPredicate, 21,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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, 63,
|
|
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,
|
|
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,
|
|
113|128,30, TARGET_OPCODE(ISD::AND),
|
|
OPC_Scope, 0|128,12,
|
|
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, 64,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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, 64,
|
|
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, 19,
|
|
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,
|
|
89|128,5, 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, 19,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 19,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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,
|
|
0,
|
|
0,
|
|
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, 65,
|
|
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, 6, 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,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
69, TARGET_OPCODE(ISD::LOAD),
|
|
OPC_RecordMemRef,
|
|
OPC_RecordNode,
|
|
OPC_CheckFoldableChainNode,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 2,
|
|
OPC_CheckPredicate, 3,
|
|
OPC_CheckPredicate, 19,
|
|
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,
|
|
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, 19,
|
|
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, 19,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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, 64,
|
|
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,
|
|
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, 19,
|
|
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,
|
|
39|128,2, TARGET_OPCODE(X86ISD::SHUFPS),
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 81,
|
|
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, 19,
|
|
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,
|
|
42,
|
|
OPC_RecordChild1,
|
|
OPC_RecordChild2,
|
|
OPC_MoveChild, 2,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
|
|
OPC_CheckType, MVT::i8,
|
|
OPC_MoveParent,
|
|
OPC_CheckType, 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,
|
|
123,
|
|
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, 19,
|
|
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,
|
|
42,
|
|
OPC_RecordChild1,
|
|
OPC_RecordChild2,
|
|
OPC_MoveChild, 2,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::Constant),
|
|
OPC_CheckType, MVT::i8,
|
|
OPC_MoveParent,
|
|
OPC_CheckType, 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,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 66,
|
|
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, 66,
|
|
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, 66,
|
|
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, 66,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 67,
|
|
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, 68,
|
|
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, 69,
|
|
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, 70,
|
|
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, 71,
|
|
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, 72,
|
|
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, 73,
|
|
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, 74,
|
|
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, 75,
|
|
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, 76,
|
|
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, 77,
|
|
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, 78,
|
|
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, 79,
|
|
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, 80,
|
|
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, 81,
|
|
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, 82,
|
|
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, 83,
|
|
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, 84,
|
|
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, 85,
|
|
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, 86,
|
|
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, 87,
|
|
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, 88,
|
|
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, 89,
|
|
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, 90,
|
|
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, 91,
|
|
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, 92,
|
|
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, 93,
|
|
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, 94,
|
|
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, 95,
|
|
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, 96,
|
|
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, 97,
|
|
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, 98,
|
|
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, 99,
|
|
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, 100,
|
|
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, 101,
|
|
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, 102,
|
|
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, 42,
|
|
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, 103,
|
|
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, 22,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 24,
|
|
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, 22,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 24,
|
|
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, 22,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 24,
|
|
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, 22,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 24,
|
|
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, 22,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 23,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOV64ri64i32), 0,
|
|
1, MVT::i64, 1, 0,
|
|
10,
|
|
OPC_CheckPatternPredicate, 24,
|
|
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, 65,
|
|
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, 10,
|
|
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, 54,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 54,
|
|
OPC_Scope, 46,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 19,
|
|
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, 19,
|
|
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, 54,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 54,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 19,
|
|
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, 54,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 54,
|
|
OPC_Scope, 46,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 19,
|
|
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, 19,
|
|
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, 54,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 54,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 61,
|
|
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, 62,
|
|
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, 19,
|
|
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, 20,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 25,
|
|
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, 20,
|
|
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, 19,
|
|
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, 25,
|
|
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, 19,
|
|
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, 25,
|
|
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, 19,
|
|
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, 104,
|
|
OPC_CheckPatternPredicate, 7,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp032), 0,
|
|
1, MVT::f32, 0,
|
|
11,
|
|
OPC_CheckPredicate, 105,
|
|
OPC_CheckPatternPredicate, 7,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp132), 0,
|
|
1, MVT::f32, 0,
|
|
11,
|
|
OPC_CheckPredicate, 106,
|
|
OPC_CheckPatternPredicate, 1,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::FsFLD0SS), 0,
|
|
1, MVT::f32, 0,
|
|
19,
|
|
OPC_CheckPredicate, 107,
|
|
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, 108,
|
|
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, 104,
|
|
OPC_CheckPatternPredicate, 8,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp064), 0,
|
|
1, MVT::f64, 0,
|
|
11,
|
|
OPC_CheckPredicate, 105,
|
|
OPC_CheckPatternPredicate, 8,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp164), 0,
|
|
1, MVT::f64, 0,
|
|
11,
|
|
OPC_CheckPredicate, 104,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::FsFLD0SD), 0,
|
|
1, MVT::f64, 0,
|
|
19,
|
|
OPC_CheckPredicate, 107,
|
|
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, 108,
|
|
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, 104,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp080), 0,
|
|
1, MVT::f80, 0,
|
|
9,
|
|
OPC_CheckPredicate, 105,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::LD_Fp180), 0,
|
|
1, MVT::f80, 0,
|
|
17,
|
|
OPC_CheckPredicate, 107,
|
|
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, 108,
|
|
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,
|
|
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, 19,
|
|
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, 19,
|
|
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, 54,
|
|
OPC_CheckPredicate, 57,
|
|
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, 19,
|
|
OPC_CheckType, MVT::v2i64,
|
|
OPC_MoveParent,
|
|
OPC_MoveParent,
|
|
OPC_CheckPatternPredicate, 12,
|
|
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, 12,
|
|
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, 54,
|
|
OPC_CheckPredicate, 56,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
116, TARGET_OPCODE(X86ISD::MOVSS),
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 41,
|
|
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::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,
|
|
24,
|
|
OPC_RecordChild1,
|
|
OPC_CheckType, 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,
|
|
20,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, 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,
|
|
24,
|
|
OPC_RecordChild1,
|
|
OPC_CheckType, 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,
|
|
103, TARGET_OPCODE(X86ISD::MOVSHDUP),
|
|
OPC_Scope, 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_CheckPredicate, 19,
|
|
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,
|
|
11,
|
|
OPC_RecordChild0,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
|
|
1, MVT::v4i32, 1, 0,
|
|
33,
|
|
OPC_MoveChild, 0,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
|
|
OPC_RecordMemRef,
|
|
OPC_RecordNode,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 2,
|
|
OPC_CheckPredicate, 3,
|
|
OPC_CheckPredicate, 19,
|
|
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,
|
|
11,
|
|
OPC_RecordChild0,
|
|
OPC_CheckType, MVT::v4f32,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSHDUPrr), 0,
|
|
1, MVT::v4f32, 1, 0,
|
|
0,
|
|
103, TARGET_OPCODE(X86ISD::MOVSLDUP),
|
|
OPC_Scope, 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_CheckPredicate, 19,
|
|
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,
|
|
11,
|
|
OPC_RecordChild0,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
|
|
1, MVT::v4i32, 1, 0,
|
|
33,
|
|
OPC_MoveChild, 0,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::LOAD),
|
|
OPC_RecordMemRef,
|
|
OPC_RecordNode,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 2,
|
|
OPC_CheckPredicate, 3,
|
|
OPC_CheckPredicate, 19,
|
|
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,
|
|
11,
|
|
OPC_RecordChild0,
|
|
OPC_CheckType, MVT::v4f32,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVSLDUPrr), 0,
|
|
1, MVT::v4f32, 1, 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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
3|128,1, TARGET_OPCODE(X86ISD::MOVLHPS),
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 36,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, TARGET_OPCODE(ISD::BIT_CONVERT),
|
|
OPC_MoveChild, 0,
|
|
OPC_CheckOpcode, 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,
|
|
25,
|
|
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,
|
|
0,
|
|
51,
|
|
OPC_MoveChild, 1,
|
|
OPC_CheckOpcode, 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::MOVHPSrm), 0|OPFL_Chain|OPFL_MemRefs,
|
|
1, MVT::v4f32, 6, 0, 3, 4, 5, 6, 7,
|
|
12,
|
|
OPC_RecordChild1,
|
|
OPC_CheckType, MVT::v4f32,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MOVLHPSrr), 0,
|
|
1, MVT::v4f32, 2, 0, 1,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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,
|
|
41|128,3, TARGET_OPCODE(ISD::SCALAR_TO_VECTOR),
|
|
OPC_Scope, 74|128,1,
|
|
OPC_MoveChild, 0,
|
|
OPC_SwitchOpcode , 2|128,1, TARGET_OPCODE(ISD::LOAD),
|
|
OPC_RecordMemRef,
|
|
OPC_RecordNode,
|
|
OPC_RecordChild1,
|
|
OPC_CheckPredicate, 2,
|
|
OPC_SwitchType , 72, MVT::i32,
|
|
OPC_Scope, 45,
|
|
OPC_CheckPredicate, 8,
|
|
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,
|
|
23,
|
|
OPC_CheckPredicate, 8,
|
|
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,
|
|
0,
|
|
47, MVT::i64,
|
|
OPC_CheckPredicate, 3,
|
|
OPC_CheckPredicate, 4,
|
|
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,
|
|
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,
|
|
75,
|
|
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,
|
|
0,
|
|
90,
|
|
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 , 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,
|
|
51,
|
|
OPC_RecordChild0,
|
|
OPC_SwitchType , 22, MVT::v4f32,
|
|
OPC_CheckChild0Type, MVT::f32,
|
|
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,
|
|
22, MVT::v2f64,
|
|
OPC_CheckChild0Type, MVT::f64,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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, 10,
|
|
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,
|
|
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, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSLLDQri), 0,
|
|
1, MVT::v2i64, 2, 0, 3,
|
|
16,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSLLDQri), 0,
|
|
1, MVT::v2i64, 2, 0, 3,
|
|
0,
|
|
14, MVT::v1i64,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 6, 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, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
|
|
1, MVT::v2i64, 2, 0, 3,
|
|
16,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
|
|
1, MVT::v2i64, 2, 0, 3,
|
|
0,
|
|
14, MVT::v1i64,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 6, 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, 40,
|
|
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, 64,
|
|
OPC_CheckType, MVT::v4i32,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::V_SETALLONES), 0,
|
|
1, MVT::v4i32, 0,
|
|
13,
|
|
OPC_CheckPredicate, 40,
|
|
OPC_CheckType, MVT::v2i32,
|
|
OPC_CheckPatternPredicate, 9,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SET0), 0,
|
|
1, MVT::v2i32, 0,
|
|
13,
|
|
OPC_CheckPredicate, 64,
|
|
OPC_CheckType, MVT::v2i32,
|
|
OPC_CheckPatternPredicate, 9,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::MMX_V_SETALLONES), 0,
|
|
1, MVT::v2i32, 0,
|
|
107,
|
|
OPC_CheckPredicate, 40,
|
|
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,
|
|
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,
|
|
124, TARGET_OPCODE(X86ISD::MOVSD),
|
|
OPC_RecordChild0,
|
|
OPC_Scope, 49,
|
|
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,
|
|
0,
|
|
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,
|
|
49,
|
|
OPC_RecordChild1,
|
|
OPC_SwitchType , 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,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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, 19,
|
|
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,
|
|
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, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::VPSRLDQri), 0,
|
|
1, MVT::v2f64, 2, 0, 3,
|
|
16,
|
|
OPC_CheckPatternPredicate, 2,
|
|
OPC_EmitConvertToTarget, 1,
|
|
OPC_EmitNodeXForm, 5, 2,
|
|
OPC_MorphNodeTo, TARGET_OPCODE(X86::PSRLDQri), 0,
|
|
1, MVT::v2f64, 2, 0, 3,
|
|
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 92067 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());
|
|
case 2: return (Subtarget->hasSSE2());
|
|
case 3: return (!Subtarget->is64Bit());
|
|
case 4: return (Subtarget->is64Bit());
|
|
case 5: return (Subtarget->hasSSE41());
|
|
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->hasSSE3());
|
|
case 11: return (!OptForSize) && (Subtarget->hasSSE2());
|
|
case 12: return (Subtarget->hasSSSE3());
|
|
case 13: return (Subtarget->hasSSE42());
|
|
case 14: return (Subtarget->hasAVX()) && (Subtarget->hasAES());
|
|
case 15: return (Subtarget->hasAES());
|
|
case 16: return (Subtarget->hasCMov());
|
|
case 17: return (!Subtarget->hasCMov());
|
|
case 18: return (!Subtarget->hasSSE1()) && (Subtarget->hasCMov());
|
|
case 19: return (!Subtarget->hasSSE2()) && (Subtarget->hasCMov());
|
|
case 20: return (Subtarget->hasSSE2()) && (OptForSize);
|
|
case 21: return (Subtarget->hasSSE2()) && (!OptForSize);
|
|
case 22: return (TM.getCodeModel() != CodeModel::Small &&TM.getCodeModel() != CodeModel::Kernel);
|
|
case 23: return (TM.getCodeModel() == CodeModel::Small);
|
|
case 24: return (TM.getCodeModel() == CodeModel::Kernel);
|
|
case 25: return (Subtarget->hasSSE1()) && (OptForSize);
|
|
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_memop
|
|
SDNode *N = Node;
|
|
|
|
return Subtarget->hasVectorUAMem()
|
|
|| cast<LoadSDNode>(N)->getAlignment() >= 16;
|
|
|
|
}
|
|
case 20: { // Predicate_movshdup
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVSHDUPMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 21: { // Predicate_movsldup
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVSLDUPMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 22: { // Predicate_pshufd
|
|
SDNode *N = Node;
|
|
|
|
return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 23: { // Predicate_movddup
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVDDUPMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 24: { // Predicate_pshufhw
|
|
SDNode *N = Node;
|
|
|
|
return X86::isPSHUFHWMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 25: { // Predicate_pshuflw
|
|
SDNode *N = Node;
|
|
|
|
return X86::isPSHUFLWMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 26: { // Predicate_mmx_pshufw
|
|
SDNode *N = Node;
|
|
|
|
return X86::isPSHUFDMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 27: { // Predicate_unpckl
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 28: { // Predicate_shufp
|
|
SDNode *N = Node;
|
|
|
|
return X86::isSHUFPMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 29: { // Predicate_mmx_unpckh
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKHMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 30: { // Predicate_mmx_unpckl
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKLMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 31: { // Predicate_movlhps
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVLHPSMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 32: { // Predicate_movhlps_undef
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVHLPS_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 33: { // Predicate_movhlps
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVHLPSMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 34: { // Predicate_unpckl_undef
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 35: { // Predicate_unpckh_undef
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 36: { // Predicate_movl
|
|
SDNode *N = Node;
|
|
|
|
return X86::isMOVLMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 37: { // Predicate_splat_lo
|
|
SDNode *N = Node;
|
|
|
|
ShuffleVectorSDNode *SVOp = cast<ShuffleVectorSDNode>(N);
|
|
return SVOp->isSplat() && SVOp->getSplatIndex() == 0;
|
|
|
|
}
|
|
case 38: { // Predicate_mmx_unpckl_undef
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKL_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 39: { // Predicate_mmx_unpckh_undef
|
|
SDNode *N = Node;
|
|
|
|
return X86::isUNPCKH_v_undef_Mask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 40: { // Predicate_immAllZerosV
|
|
SDNode *N = Node;
|
|
|
|
return ISD::isBuildVectorAllZeros(N);
|
|
|
|
}
|
|
case 41: { // Predicate_palign
|
|
SDNode *N = Node;
|
|
|
|
return X86::isPALIGNRMask(cast<ShuffleVectorSDNode>(N));
|
|
|
|
}
|
|
case 42: { // Predicate_and_su
|
|
SDNode *N = Node;
|
|
|
|
return N->hasOneUse();
|
|
|
|
}
|
|
case 43: { // 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 44: { // Predicate_memop64
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getAlignment() >= 8;
|
|
|
|
}
|
|
case 45: { // 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 46: { // 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 47: { // Predicate_sextload
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
|
|
|
|
}
|
|
case 48: { // Predicate_sextloadi8
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 49: { // Predicate_sextloadi16
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 50: { // Predicate_zextload
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
|
|
|
|
}
|
|
case 51: { // Predicate_zextloadi8
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 52: { // Predicate_zextloadi16
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 53: { // Predicate_zextloadi1
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
|
|
|
|
}
|
|
case 54: { // Predicate_extload
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
|
|
|
|
}
|
|
case 55: { // Predicate_extloadi1
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i1;
|
|
|
|
}
|
|
case 56: { // Predicate_extloadi8
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 57: { // Predicate_extloadi16
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 58: { // Predicate_sextloadi32
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 59: { // Predicate_zextloadi32
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 60: { // Predicate_extloadi32
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 61: { // Predicate_extloadf32
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f32;
|
|
|
|
}
|
|
case 62: { // Predicate_extloadf64
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getMemoryVT() == MVT::f64;
|
|
|
|
}
|
|
case 63: { // Predicate_alignedload
|
|
SDNode *N = Node;
|
|
|
|
return cast<LoadSDNode>(N)->getAlignment() >= 16;
|
|
|
|
}
|
|
case 64: { // Predicate_immAllOnesV
|
|
SDNode *N = Node;
|
|
|
|
return ISD::isBuildVectorAllOnes(N);
|
|
|
|
}
|
|
case 65: { // 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 66: { // 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 67: { // Predicate_atomic_swap_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 68: { // Predicate_atomic_swap_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 69: { // Predicate_atomic_swap_8
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 70: { // Predicate_atomic_swap_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 71: { // Predicate_atomic_load_add_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 72: { // Predicate_atomic_load_add_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 73: { // Predicate_atomic_load_add_8
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 74: { // Predicate_atomic_load_add_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 75: { // Predicate_atomic_load_and_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 76: { // Predicate_atomic_load_and_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 77: { // Predicate_atomic_load_and_8
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 78: { // Predicate_atomic_load_and_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 79: { // Predicate_atomic_load_or_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 80: { // Predicate_atomic_load_or_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 81: { // Predicate_atomic_load_or_8
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 82: { // Predicate_atomic_load_or_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 83: { // Predicate_atomic_load_xor_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 84: { // Predicate_atomic_load_xor_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 85: { // Predicate_atomic_load_xor_8
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 86: { // Predicate_atomic_load_xor_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 87: { // Predicate_atomic_load_nand_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 88: { // Predicate_atomic_load_nand_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 89: { // Predicate_atomic_load_nand_8
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i8;
|
|
|
|
}
|
|
case 90: { // Predicate_atomic_load_nand_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 91: { // Predicate_atomic_load_min_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 92: { // Predicate_atomic_load_min_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 93: { // Predicate_atomic_load_min_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 94: { // Predicate_atomic_load_max_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 95: { // Predicate_atomic_load_max_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 96: { // Predicate_atomic_load_max_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 97: { // Predicate_atomic_load_umin_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 98: { // Predicate_atomic_load_umin_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 99: { // Predicate_atomic_load_umin_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 100: { // Predicate_atomic_load_umax_32
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
|
|
|
|
}
|
|
case 101: { // Predicate_atomic_load_umax_16
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i16;
|
|
|
|
}
|
|
case 102: { // Predicate_atomic_load_umax_64
|
|
SDNode *N = Node;
|
|
|
|
return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
|
|
|
|
}
|
|
case 103: { // Predicate_def32
|
|
SDNode *N = Node;
|
|
|
|
return N->getOpcode() != ISD::TRUNCATE &&
|
|
N->getOpcode() != TargetOpcode::EXTRACT_SUBREG &&
|
|
N->getOpcode() != ISD::CopyFromReg &&
|
|
N->getOpcode() != X86ISD::CMOV;
|
|
|
|
}
|
|
case 104: { // Predicate_fpimm0
|
|
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
|
|
|
|
return N->isExactlyValue(+0.0);
|
|
|
|
}
|
|
case 105: { // Predicate_fpimm1
|
|
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
|
|
|
|
return N->isExactlyValue(+1.0);
|
|
|
|
}
|
|
case 106: { // Predicate_fp32imm0
|
|
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
|
|
|
|
return N->isExactlyValue(+0.0);
|
|
|
|
}
|
|
case 107: { // Predicate_fpimmneg0
|
|
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
|
|
|
|
return N->isExactlyValue(-0.0);
|
|
|
|
}
|
|
case 108: { // Predicate_fpimmneg1
|
|
ConstantFPSDNode*N = cast<ConstantFPSDNode>(Node);
|
|
|
|
return N->isExactlyValue(-1.0);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
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: {
|
|
SDNode *N = V.getNode();
|
|
|
|
return getI8Imm(X86::getShuffleSHUFImmediate(N));
|
|
|
|
}
|
|
case 1: {
|
|
SDNode *N = V.getNode();
|
|
|
|
return getI8Imm(X86::getShufflePSHUFHWImmediate(N));
|
|
|
|
}
|
|
case 2: {
|
|
SDNode *N = V.getNode();
|
|
|
|
return getI8Imm(X86::getShufflePSHUFLWImmediate(N));
|
|
|
|
}
|
|
case 3: {
|
|
SDNode *N = V.getNode();
|
|
|
|
return getI8Imm(X86::getShuffleSHUFImmediate(N));
|
|
|
|
}
|
|
case 4: {
|
|
SDNode *N = V.getNode();
|
|
|
|
return getI8Imm(X86::getShufflePALIGNRImmediate(N));
|
|
|
|
}
|
|
case 5: {
|
|
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
|
|
|
|
// Transformation function: imm >> 3
|
|
return getI32Imm(N->getZExtValue() >> 3);
|
|
|
|
}
|
|
case 6: {
|
|
ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
|
|
|
|
// Transformation function: get the low 32 bits.
|
|
return getI32Imm((unsigned)N->getZExtValue());
|
|
|
|
}
|
|
}
|
|
}
|
|
|