LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/AVR - AVRGenDAGISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 52 57 91.2 %
Date: 2018-10-20 13:21:21 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* DAG Instruction Selector for the AVR target                                *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : // *** NOTE: This file is #included into the middle of the target
      10             : // *** instruction selector class.  These functions are really methods.
      11             : 
      12             : // If GET_DAGISEL_DECL is #defined with any value, only function
      13             : // declarations will be included when this file is included.
      14             : // If GET_DAGISEL_BODY is #defined, its value should be the name of
      15             : // the instruction selector class. Function bodies will be emitted
      16             : // and each function's name will be qualified with the name of the
      17             : // class.
      18             : //
      19             : // When neither of the GET_DAGISEL* macros is defined, the functions
      20             : // are emitted inline.
      21             : 
      22             : #if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
      23             : #error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
      24             : #endif
      25             : 
      26             : #ifdef GET_DAGISEL_BODY
      27             : #define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
      28             : #define LOCAL_DAGISEL_STRINGIZE_(X) #X
      29             : static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
      30             :    "GET_DAGISEL_BODY is empty: it should be defined with the class name");
      31             : #undef LOCAL_DAGISEL_STRINGIZE_
      32             : #undef LOCAL_DAGISEL_STRINGIZE
      33             : #endif
      34             : 
      35             : #if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
      36             : #define DAGISEL_INLINE 1
      37             : #else
      38             : #define DAGISEL_INLINE 0
      39             : #endif
      40             : 
      41             : #if !DAGISEL_INLINE
      42             : #define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
      43             : #else
      44             : #define DAGISEL_CLASS_COLONCOLON
      45             : #endif
      46             : 
      47             : #ifdef GET_DAGISEL_DECL
      48             : void SelectCode(SDNode *N);
      49             : #endif
      50             : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
      51             : void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
      52             : {
      53             :   // Some target values are emitted as 2 bytes, TARGET_VAL handles
      54             :   // this.
      55             :   #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
      56             :   static const unsigned char MatcherTable[] = {
      57             : /*     0*/  OPC_SwitchOpcode /*49 cases */, 68, TARGET_VAL(ISD::TRUNCATE),// ->72
      58             : /*     4*/    OPC_Scope, 52, /*->58*/ // 2 children in Scope
      59             : /*     6*/      OPC_MoveChild0,
      60             : /*     7*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      61             : /*    10*/      OPC_MoveChild0,
      62             : /*    11*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      63             : /*    14*/      OPC_MoveChild0,
      64             : /*    15*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      65             : /*    18*/      OPC_MoveChild0,
      66             : /*    19*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      67             : /*    22*/      OPC_MoveChild0,
      68             : /*    23*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      69             : /*    26*/      OPC_MoveChild0,
      70             : /*    27*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      71             : /*    30*/      OPC_MoveChild0,
      72             : /*    31*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      73             : /*    34*/      OPC_MoveChild0,
      74             : /*    35*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::LSR),
      75             : /*    38*/      OPC_RecordChild0, // #0 = $src
      76             : /*    39*/      OPC_MoveParent,
      77             : /*    40*/      OPC_MoveParent,
      78             : /*    41*/      OPC_MoveParent,
      79             : /*    42*/      OPC_MoveParent,
      80             : /*    43*/      OPC_MoveParent,
      81             : /*    44*/      OPC_MoveParent,
      82             : /*    45*/      OPC_MoveParent,
      83             : /*    46*/      OPC_MoveParent,
      84             : /*    47*/      OPC_EmitInteger, MVT::i32, AVR::sub_hi,
      85             : /*    50*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
      86             :                     MVT::i8, 2/*#Ops*/, 0, 1, 
      87             :                 // Src: (trunc:{ *:[i8] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } (AVRlsr:{ *:[i16] } DREGS:{ *:[i16] }:$src))))))))) - Complexity = 27
      88             :                 // Dst: (EXTRACT_SUBREG:{ *:[i8] } DREGS:{ *:[i16] }:$src, sub_hi:{ *:[i32] })
      89             : /*    58*/    /*Scope*/ 12, /*->71*/
      90             : /*    59*/      OPC_RecordChild0, // #0 = $src
      91             : /*    60*/      OPC_EmitInteger, MVT::i32, AVR::sub_lo,
      92             : /*    63*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
      93             :                     MVT::i8, 2/*#Ops*/, 0, 1, 
      94             :                 // Src: (trunc:{ *:[i8] } i16:{ *:[i16] }:$src) - Complexity = 3
      95             :                 // Dst: (EXTRACT_SUBREG:{ *:[i8] } i16:{ *:[i16] }:$src, sub_lo:{ *:[i32] })
      96             : /*    71*/    0, /*End of Scope*/
      97             : /*    72*/  /*SwitchOpcode*/ 117|128,3/*501*/, TARGET_VAL(ISD::STORE),// ->577
      98             : /*    76*/    OPC_RecordMemRef,
      99             : /*    77*/    OPC_RecordNode, // #0 = 'st' chained node
     100             : /*    78*/    OPC_Scope, 125, /*->205*/ // 2 children in Scope
     101             : /*    80*/      OPC_MoveChild1,
     102             : /*    81*/      OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::OR),// ->143
     103             : /*    85*/        OPC_MoveChild0,
     104             : /*    86*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
     105             : /*    89*/        OPC_RecordMemRef,
     106             : /*    90*/        OPC_RecordNode, // #1 = 'ld' chained node
     107             : /*    91*/        OPC_CheckFoldableChainNode,
     108             : /*    92*/        OPC_RecordChild1, // #2 = $addr
     109             : /*    93*/        OPC_MoveChild1,
     110             : /*    94*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     111             : /*    97*/        OPC_CheckPredicate, 0, // Predicate_lowioaddr8
     112             : /*    99*/        OPC_MoveParent,
     113             : /*   100*/        OPC_CheckPredicate, 1, // Predicate_unindexedload
     114             : /*   102*/        OPC_CheckPredicate, 2, // Predicate_load
     115             : /*   104*/        OPC_MoveParent,
     116             : /*   105*/        OPC_RecordChild1, // #3 = $bit
     117             : /*   106*/        OPC_MoveChild1,
     118             : /*   107*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     119             : /*   110*/        OPC_CheckPredicate, 3, // Predicate_iobitpos8
     120             : /*   112*/        OPC_MoveParent,
     121             : /*   113*/        OPC_CheckType, MVT::i8,
     122             : /*   115*/        OPC_MoveParent,
     123             : /*   116*/        OPC_CheckChild2Same, 2,
     124             : /*   118*/        OPC_CheckPredicate, 4, // Predicate_unindexedstore
     125             : /*   120*/        OPC_CheckPredicate, 5, // Predicate_store
     126             : /*   122*/        OPC_EmitMergeInputChains, 2, 0, 1, 
     127             : /*   126*/        OPC_EmitConvertToTarget, 2,
     128             : /*   128*/        OPC_EmitNodeXForm, 0, 4, // ioaddr_XFORM
     129             : /*   131*/        OPC_EmitConvertToTarget, 3,
     130             : /*   133*/        OPC_EmitNodeXForm, 1, 6, // iobitpos8_XFORM
     131             : /*   136*/        OPC_MorphNodeTo0, TARGET_VAL(AVR::SBIAb), 0|OPFL_Chain|OPFL_MemRefs,
     132             :                       2/*#Ops*/, 5, 7, 
     133             :                   // Src: (st (or:{ *:[i8] } (ld:{ *:[i8] } (imm:{ *:[iPTR] })<<P:Predicate_lowioaddr8>><<X:ioaddr_XFORM>>:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] })<<P:Predicate_iobitpos8>><<X:iobitpos8_XFORM>>:$bit), (imm:{ *:[iPTR] })<<P:Predicate_lowioaddr8>><<X:ioaddr_XFORM>>:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
     134             :                   // Dst: (SBIAb (ioaddr_XFORM:{ *:[i8] } (imm:{ *:[iPTR] }):$addr), (iobitpos8_XFORM:{ *:[i8] } (imm:{ *:[i8] }):$bit))
     135             : /*   143*/      /*SwitchOpcode*/ 58, TARGET_VAL(ISD::AND),// ->204
     136             : /*   146*/        OPC_MoveChild0,
     137             : /*   147*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
     138             : /*   150*/        OPC_RecordMemRef,
     139             : /*   151*/        OPC_RecordNode, // #1 = 'ld' chained node
     140             : /*   152*/        OPC_CheckFoldableChainNode,
     141             : /*   153*/        OPC_RecordChild1, // #2 = $addr
     142             : /*   154*/        OPC_MoveChild1,
     143             : /*   155*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     144             : /*   158*/        OPC_CheckPredicate, 0, // Predicate_lowioaddr8
     145             : /*   160*/        OPC_MoveParent,
     146             : /*   161*/        OPC_CheckPredicate, 1, // Predicate_unindexedload
     147             : /*   163*/        OPC_CheckPredicate, 2, // Predicate_load
     148             : /*   165*/        OPC_MoveParent,
     149             : /*   166*/        OPC_RecordChild1, // #3 = $bit
     150             : /*   167*/        OPC_MoveChild1,
     151             : /*   168*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     152             : /*   171*/        OPC_CheckPredicate, 6, // Predicate_iobitposn8
     153             : /*   173*/        OPC_MoveParent,
     154             : /*   174*/        OPC_CheckType, MVT::i8,
     155             : /*   176*/        OPC_MoveParent,
     156             : /*   177*/        OPC_CheckChild2Same, 2,
     157             : /*   179*/        OPC_CheckPredicate, 4, // Predicate_unindexedstore
     158             : /*   181*/        OPC_CheckPredicate, 5, // Predicate_store
     159             : /*   183*/        OPC_EmitMergeInputChains, 2, 0, 1, 
     160             : /*   187*/        OPC_EmitConvertToTarget, 2,
     161             : /*   189*/        OPC_EmitNodeXForm, 0, 4, // ioaddr_XFORM
     162             : /*   192*/        OPC_EmitConvertToTarget, 3,
     163             : /*   194*/        OPC_EmitNodeXForm, 2, 6, // iobitposn8_XFORM
     164             : /*   197*/        OPC_MorphNodeTo0, TARGET_VAL(AVR::CBIAb), 0|OPFL_Chain|OPFL_MemRefs,
     165             :                       2/*#Ops*/, 5, 7, 
     166             :                   // Src: (st (and:{ *:[i8] } (ld:{ *:[i8] } (imm:{ *:[iPTR] })<<P:Predicate_lowioaddr8>><<X:ioaddr_XFORM>>:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] })<<P:Predicate_iobitposn8>><<X:iobitposn8_XFORM>>:$bit), (imm:{ *:[iPTR] })<<P:Predicate_lowioaddr8>><<X:ioaddr_XFORM>>:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 23
     167             :                   // Dst: (CBIAb (ioaddr_XFORM:{ *:[i8] } (imm:{ *:[iPTR] }):$addr), (iobitposn8_XFORM:{ *:[i8] } (imm:{ *:[i8] }):$bit))
     168             : /*   204*/      0, // EndSwitchOpcode
     169             : /*   205*/    /*Scope*/ 113|128,2/*369*/, /*->576*/
     170             : /*   207*/      OPC_RecordChild1, // #1 = $reg
     171             : /*   208*/      OPC_Scope, 53|128,1/*181*/, /*->392*/ // 2 children in Scope
     172             : /*   211*/        OPC_CheckChild1Type, MVT::i8,
     173             : /*   213*/        OPC_Scope, 36, /*->251*/ // 3 children in Scope
     174             : /*   215*/          OPC_RecordChild2, // #2 = $memri
     175             : /*   216*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
     176             : /*   218*/          OPC_CheckPredicate, 5, // Predicate_store
     177             : /*   220*/          OPC_Scope, 14, /*->236*/ // 2 children in Scope
     178             : /*   222*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     179             : /*   224*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$memri #3 #4
     180             : /*   227*/            OPC_EmitMergeInputChains1_0,
     181             : /*   228*/            OPC_MorphNodeTo0, TARGET_VAL(AVR::STDPtrQRr), 0|OPFL_Chain|OPFL_MemRefs,
     182             :                           3/*#Ops*/, 3, 4, 1, 
     183             :                       // Src: (st i8:{ *:[i8] }:$reg, addr:{ *:[iPTR] }:$memri)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
     184             :                       // Dst: (STDPtrQRr addr:{ *:[iPTR] }:$memri, i8:{ *:[i8] }:$reg)
     185             : /*   236*/          /*Scope*/ 13, /*->250*/
     186             : /*   237*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4
     187             : /*   240*/            OPC_EmitMergeInputChains1_0,
     188             : /*   241*/            OPC_MorphNodeTo1, TARGET_VAL(AVR::STDSPQRr), 0|OPFL_Chain|OPFL_MemRefs,
     189             :                           MVT::i16, 3/*#Ops*/, 3, 4, 1, 
     190             :                       // Src: (st i8:{ *:[i8] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
     191             :                       // Dst: (STDSPQRr:{ *:[i16] } addr:{ *:[iPTR] }:$dst, i8:{ *:[i8] }:$src)
     192             : /*   250*/          0, /*End of Scope*/
     193             : /*   251*/        /*Scope*/ 25, /*->277*/
     194             : /*   252*/          OPC_MoveChild2,
     195             : /*   253*/          OPC_CheckOpcode, TARGET_VAL(AVRISD::WRAPPER),
     196             : /*   256*/          OPC_RecordChild0, // #2 = $dst
     197             : /*   257*/          OPC_MoveChild0,
     198             : /*   258*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
     199             : /*   261*/          OPC_MoveParent,
     200             : /*   262*/          OPC_CheckType, MVT::i16,
     201             : /*   264*/          OPC_MoveParent,
     202             : /*   265*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
     203             : /*   267*/          OPC_CheckPredicate, 5, // Predicate_store
     204             : /*   269*/          OPC_EmitMergeInputChains1_0,
     205             : /*   270*/          OPC_MorphNodeTo0, TARGET_VAL(AVR::STSKRr), 0|OPFL_Chain|OPFL_MemRefs,
     206             :                         2/*#Ops*/, 2, 1, 
     207             :                     // Src: (st i8:{ *:[i8] }:$src, (AVRWrapper:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$dst))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
     208             :                     // Dst: (STSKRr (tglobaladdr:{ *:[i16] }):$dst, i8:{ *:[i8] }:$src)
     209             : /*   277*/        /*Scope*/ 113, /*->391*/
     210             : /*   278*/          OPC_RecordChild2, // #2 = $dst
     211             : /*   279*/          OPC_Scope, 45, /*->326*/ // 3 children in Scope
     212             : /*   281*/            OPC_MoveChild2,
     213             : /*   282*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     214             : /*   285*/            OPC_Scope, 20, /*->307*/ // 2 children in Scope
     215             : /*   287*/              OPC_CheckPredicate, 7, // Predicate_ioaddr8
     216             : /*   289*/              OPC_MoveParent,
     217             : /*   290*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
     218             : /*   292*/              OPC_CheckPredicate, 5, // Predicate_store
     219             : /*   294*/              OPC_EmitMergeInputChains1_0,
     220             : /*   295*/              OPC_EmitConvertToTarget, 2,
     221             : /*   297*/              OPC_EmitNodeXForm, 0, 3, // ioaddr_XFORM
     222             : /*   300*/              OPC_MorphNodeTo0, TARGET_VAL(AVR::OUTARr), 0|OPFL_Chain|OPFL_MemRefs,
     223             :                             2/*#Ops*/, 4, 1, 
     224             :                         // Src: (st i8:{ *:[i8] }:$src, (imm:{ *:[iPTR] })<<P:Predicate_ioaddr8>><<X:ioaddr_XFORM>>:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 8
     225             :                         // Dst: (OUTARr (ioaddr_XFORM:{ *:[i8] } (imm:{ *:[iPTR] }):$dst), i8:{ *:[i8] }:$src)
     226             : /*   307*/            /*Scope*/ 17, /*->325*/
     227             : /*   308*/              OPC_MoveParent,
     228             : /*   309*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
     229             : /*   311*/              OPC_CheckPredicate, 5, // Predicate_store
     230             : /*   313*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     231             : /*   315*/              OPC_EmitMergeInputChains1_0,
     232             : /*   316*/              OPC_EmitConvertToTarget, 2,
     233             : /*   318*/              OPC_MorphNodeTo0, TARGET_VAL(AVR::STSKRr), 0|OPFL_Chain|OPFL_MemRefs,
     234             :                             2/*#Ops*/, 3, 1, 
     235             :                         // Src: (st i8:{ *:[i8] }:$rd, (imm:{ *:[iPTR] }):$k)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 7
     236             :                         // Dst: (STSKRr (imm:{ *:[i16] }):$k, i8:{ *:[i8] }:$rd)
     237             : /*   325*/            0, /*End of Scope*/
     238             : /*   326*/          /*Scope*/ 46, /*->373*/
     239             : /*   327*/            OPC_RecordChild3, // #3 = $offs
     240             : /*   328*/            OPC_MoveChild3,
     241             : /*   329*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     242             : /*   332*/            OPC_MoveParent,
     243             : /*   333*/            OPC_CheckPredicate, 5, // Predicate_istore
     244             : /*   335*/            OPC_CheckType, MVT::i16,
     245             : /*   337*/            OPC_Scope, 16, /*->355*/ // 2 children in Scope
     246             : /*   339*/              OPC_CheckPredicate, 8, // Predicate_post_store
     247             : /*   341*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     248             : /*   343*/              OPC_EmitMergeInputChains1_0,
     249             : /*   344*/              OPC_EmitConvertToTarget, 3,
     250             : /*   346*/              OPC_MorphNodeTo1, TARGET_VAL(AVR::STPtrPiRr), 0|OPFL_Chain|OPFL_MemRefs,
     251             :                             MVT::i16, 3/*#Ops*/, 2, 1, 4, 
     252             :                         // Src: (ist:{ *:[i16] } GPR8:{ *:[i8] }:$reg, i16:{ *:[i16] }:$ptrreg, (imm:{ *:[iPTR] }):$offs)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 7
     253             :                         // Dst: (STPtrPiRr:{ *:[i16] } i16:{ *:[i16] }:$ptrreg, GPR8:{ *:[i8] }:$reg, (imm:{ *:[i8] }):$offs)
     254             : /*   355*/            /*Scope*/ 16, /*->372*/
     255             : /*   356*/              OPC_CheckPredicate, 9, // Predicate_pre_store
     256             : /*   358*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     257             : /*   360*/              OPC_EmitMergeInputChains1_0,
     258             : /*   361*/              OPC_EmitConvertToTarget, 3,
     259             : /*   363*/              OPC_MorphNodeTo1, TARGET_VAL(AVR::STPtrPdRr), 0|OPFL_Chain|OPFL_MemRefs,
     260             :                             MVT::i16, 3/*#Ops*/, 2, 1, 4, 
     261             :                         // Src: (ist:{ *:[i16] } GPR8:{ *:[i8] }:$reg, i16:{ *:[i16] }:$ptrreg, (imm:{ *:[iPTR] }):$offs)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 7
     262             :                         // Dst: (STPtrPdRr:{ *:[i16] } i16:{ *:[i16] }:$ptrreg, GPR8:{ *:[i8] }:$reg, (imm:{ *:[i8] }):$offs)
     263             : /*   372*/            0, /*End of Scope*/
     264             : /*   373*/          /*Scope*/ 16, /*->390*/
     265             : /*   374*/            OPC_CheckChild2Type, MVT::i16,
     266             : /*   376*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
     267             : /*   378*/            OPC_CheckPredicate, 5, // Predicate_store
     268             : /*   380*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     269             : /*   382*/            OPC_EmitMergeInputChains1_0,
     270             : /*   383*/            OPC_MorphNodeTo0, TARGET_VAL(AVR::STPtrRr), 0|OPFL_Chain|OPFL_MemRefs,
     271             :                           2/*#Ops*/, 2, 1, 
     272             :                       // Src: (st GPR8:{ *:[i8] }:$reg, i16:{ *:[i16] }:$ptrreg)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
     273             :                       // Dst: (STPtrRr i16:{ *:[i16] }:$ptrreg, GPR8:{ *:[i8] }:$reg)
     274             : /*   390*/          0, /*End of Scope*/
     275             : /*   391*/        0, /*End of Scope*/
     276             : /*   392*/      /*Scope*/ 53|128,1/*181*/, /*->575*/
     277             : /*   394*/        OPC_CheckChild1Type, MVT::i16,
     278             : /*   396*/        OPC_Scope, 36, /*->434*/ // 3 children in Scope
     279             : /*   398*/          OPC_RecordChild2, // #2 = $memri
     280             : /*   399*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
     281             : /*   401*/          OPC_CheckPredicate, 5, // Predicate_store
     282             : /*   403*/          OPC_Scope, 14, /*->419*/ // 2 children in Scope
     283             : /*   405*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     284             : /*   407*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$memri #3 #4
     285             : /*   410*/            OPC_EmitMergeInputChains1_0,
     286             : /*   411*/            OPC_MorphNodeTo0, TARGET_VAL(AVR::STDWPtrQRr), 0|OPFL_Chain|OPFL_MemRefs,
     287             :                           3/*#Ops*/, 3, 4, 1, 
     288             :                       // Src: (st i16:{ *:[i16] }:$src, addr:{ *:[iPTR] }:$memri)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
     289             :                       // Dst: (STDWPtrQRr addr:{ *:[iPTR] }:$memri, i16:{ *:[i16] }:$src)
     290             : /*   419*/          /*Scope*/ 13, /*->433*/
     291             : /*   420*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4
     292             : /*   423*/            OPC_EmitMergeInputChains1_0,
     293             : /*   424*/            OPC_MorphNodeTo1, TARGET_VAL(AVR::STDWSPQRr), 0|OPFL_Chain|OPFL_MemRefs,
     294             :                           MVT::i16, 3/*#Ops*/, 3, 4, 1, 
     295             :                       // Src: (st i16:{ *:[i16] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
     296             :                       // Dst: (STDWSPQRr:{ *:[i16] } addr:{ *:[iPTR] }:$dst, i16:{ *:[i16] }:$src)
     297             : /*   433*/          0, /*End of Scope*/
     298             : /*   434*/        /*Scope*/ 25, /*->460*/
     299             : /*   435*/          OPC_MoveChild2,
     300             : /*   436*/          OPC_CheckOpcode, TARGET_VAL(AVRISD::WRAPPER),
     301             : /*   439*/          OPC_RecordChild0, // #2 = $dst
     302             : /*   440*/          OPC_MoveChild0,
     303             : /*   441*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
     304             : /*   444*/          OPC_MoveParent,
     305             : /*   445*/          OPC_CheckType, MVT::i16,
     306             : /*   447*/          OPC_MoveParent,
     307             : /*   448*/          OPC_CheckPredicate, 4, // Predicate_unindexedstore
     308             : /*   450*/          OPC_CheckPredicate, 5, // Predicate_store
     309             : /*   452*/          OPC_EmitMergeInputChains1_0,
     310             : /*   453*/          OPC_MorphNodeTo0, TARGET_VAL(AVR::STSWKRr), 0|OPFL_Chain|OPFL_MemRefs,
     311             :                         2/*#Ops*/, 2, 1, 
     312             :                     // Src: (st i16:{ *:[i16] }:$src, (AVRWrapper:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$dst))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
     313             :                     // Dst: (STSWKRr (tglobaladdr:{ *:[i16] }):$dst, i16:{ *:[i16] }:$src)
     314             : /*   460*/        /*Scope*/ 113, /*->574*/
     315             : /*   461*/          OPC_RecordChild2, // #2 = $dst
     316             : /*   462*/          OPC_Scope, 45, /*->509*/ // 3 children in Scope
     317             : /*   464*/            OPC_MoveChild2,
     318             : /*   465*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     319             : /*   468*/            OPC_Scope, 20, /*->490*/ // 2 children in Scope
     320             : /*   470*/              OPC_CheckPredicate, 10, // Predicate_ioaddr16
     321             : /*   472*/              OPC_MoveParent,
     322             : /*   473*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
     323             : /*   475*/              OPC_CheckPredicate, 5, // Predicate_store
     324             : /*   477*/              OPC_EmitMergeInputChains1_0,
     325             : /*   478*/              OPC_EmitConvertToTarget, 2,
     326             : /*   480*/              OPC_EmitNodeXForm, 0, 3, // ioaddr_XFORM
     327             : /*   483*/              OPC_MorphNodeTo0, TARGET_VAL(AVR::OUTWARr), 0|OPFL_Chain|OPFL_MemRefs,
     328             :                             2/*#Ops*/, 4, 1, 
     329             :                         // Src: (st i16:{ *:[i16] }:$src, (imm:{ *:[iPTR] })<<P:Predicate_ioaddr16>><<X:ioaddr_XFORM>>:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 8
     330             :                         // Dst: (OUTWARr (ioaddr_XFORM:{ *:[i8] } (imm:{ *:[iPTR] }):$dst), i16:{ *:[i16] }:$src)
     331             : /*   490*/            /*Scope*/ 17, /*->508*/
     332             : /*   491*/              OPC_MoveParent,
     333             : /*   492*/              OPC_CheckPredicate, 4, // Predicate_unindexedstore
     334             : /*   494*/              OPC_CheckPredicate, 5, // Predicate_store
     335             : /*   496*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     336             : /*   498*/              OPC_EmitMergeInputChains1_0,
     337             : /*   499*/              OPC_EmitConvertToTarget, 2,
     338             : /*   501*/              OPC_MorphNodeTo0, TARGET_VAL(AVR::STSWKRr), 0|OPFL_Chain|OPFL_MemRefs,
     339             :                             2/*#Ops*/, 3, 1, 
     340             :                         // Src: (st i16:{ *:[i16] }:$src, (imm:{ *:[iPTR] }):$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 7
     341             :                         // Dst: (STSWKRr (imm:{ *:[i16] }):$dst, i16:{ *:[i16] }:$src)
     342             : /*   508*/            0, /*End of Scope*/
     343             : /*   509*/          /*Scope*/ 46, /*->556*/
     344             : /*   510*/            OPC_RecordChild3, // #3 = $offs
     345             : /*   511*/            OPC_MoveChild3,
     346             : /*   512*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     347             : /*   515*/            OPC_MoveParent,
     348             : /*   516*/            OPC_CheckPredicate, 5, // Predicate_istore
     349             : /*   518*/            OPC_CheckType, MVT::i16,
     350             : /*   520*/            OPC_Scope, 16, /*->538*/ // 2 children in Scope
     351             : /*   522*/              OPC_CheckPredicate, 8, // Predicate_post_store
     352             : /*   524*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     353             : /*   526*/              OPC_EmitMergeInputChains1_0,
     354             : /*   527*/              OPC_EmitConvertToTarget, 3,
     355             : /*   529*/              OPC_MorphNodeTo1, TARGET_VAL(AVR::STWPtrPiRr), 0|OPFL_Chain|OPFL_MemRefs,
     356             :                             MVT::i16, 3/*#Ops*/, 2, 1, 4, 
     357             :                         // Src: (ist:{ *:[i16] } DREGS:{ *:[i16] }:$trh, PTRREGS:{ *:[i16] }:$ptrreg, (imm:{ *:[iPTR] }):$offs)<<P:Predicate_istore>><<P:Predicate_post_store>> - Complexity = 7
     358             :                         // Dst: (STWPtrPiRr:{ *:[i16] } PTRREGS:{ *:[i16] }:$ptrreg, DREGS:{ *:[i16] }:$trh, (imm:{ *:[i8] }):$offs)
     359             : /*   538*/            /*Scope*/ 16, /*->555*/
     360             : /*   539*/              OPC_CheckPredicate, 9, // Predicate_pre_store
     361             : /*   541*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     362             : /*   543*/              OPC_EmitMergeInputChains1_0,
     363             : /*   544*/              OPC_EmitConvertToTarget, 3,
     364             : /*   546*/              OPC_MorphNodeTo1, TARGET_VAL(AVR::STWPtrPdRr), 0|OPFL_Chain|OPFL_MemRefs,
     365             :                             MVT::i16, 3/*#Ops*/, 2, 1, 4, 
     366             :                         // Src: (ist:{ *:[i16] } i16:{ *:[i16] }:$reg, i16:{ *:[i16] }:$ptrreg, (imm:{ *:[iPTR] }):$offs)<<P:Predicate_istore>><<P:Predicate_pre_store>> - Complexity = 7
     367             :                         // Dst: (STWPtrPdRr:{ *:[i16] } i16:{ *:[i16] }:$ptrreg, i16:{ *:[i16] }:$reg, (imm:{ *:[i8] }):$offs)
     368             : /*   555*/            0, /*End of Scope*/
     369             : /*   556*/          /*Scope*/ 16, /*->573*/
     370             : /*   557*/            OPC_CheckChild2Type, MVT::i16,
     371             : /*   559*/            OPC_CheckPredicate, 4, // Predicate_unindexedstore
     372             : /*   561*/            OPC_CheckPredicate, 5, // Predicate_store
     373             : /*   563*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     374             : /*   565*/            OPC_EmitMergeInputChains1_0,
     375             : /*   566*/            OPC_MorphNodeTo0, TARGET_VAL(AVR::STWPtrRr), 0|OPFL_Chain|OPFL_MemRefs,
     376             :                           2/*#Ops*/, 2, 1, 
     377             :                       // Src: (st i16:{ *:[i16] }:$reg, i16:{ *:[i16] }:$ptrreg)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
     378             :                       // Dst: (STWPtrRr i16:{ *:[i16] }:$ptrreg, i16:{ *:[i16] }:$reg)
     379             : /*   573*/          0, /*End of Scope*/
     380             : /*   574*/        0, /*End of Scope*/
     381             : /*   575*/      0, /*End of Scope*/
     382             : /*   576*/    0, /*End of Scope*/
     383             : /*   577*/  /*SwitchOpcode*/ 80|128,1/*208*/, TARGET_VAL(ISD::LOAD),// ->789
     384             : /*   581*/    OPC_RecordMemRef,
     385             : /*   582*/    OPC_RecordNode, // #0 = 'ld' chained node
     386             : /*   583*/    OPC_Scope, 39, /*->624*/ // 3 children in Scope
     387             : /*   585*/      OPC_RecordChild1, // #1 = $memri
     388             : /*   586*/      OPC_CheckPredicate, 1, // Predicate_unindexedload
     389             : /*   588*/      OPC_CheckPredicate, 2, // Predicate_load
     390             : /*   590*/      OPC_SwitchType /*2 cases */, 14, MVT::i8,// ->607
     391             : /*   593*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     392             : /*   595*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$memri #2 #3
     393             : /*   598*/        OPC_EmitMergeInputChains1_0,
     394             : /*   599*/        OPC_MorphNodeTo1, TARGET_VAL(AVR::LDDRdPtrQ), 0|OPFL_Chain|OPFL_MemRefs,
     395             :                       MVT::i8, 2/*#Ops*/, 2, 3, 
     396             :                   // Src: (ld:{ *:[i8] } addr:{ *:[iPTR] }:$memri)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
     397             :                   // Dst: (LDDRdPtrQ:{ *:[i8] } addr:{ *:[iPTR] }:$memri)
     398             : /*   607*/      /*SwitchType*/ 14, MVT::i16,// ->623
     399             : /*   609*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     400             : /*   611*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$memri #2 #3
     401             : /*   614*/        OPC_EmitMergeInputChains1_0,
     402             : /*   615*/        OPC_MorphNodeTo1, TARGET_VAL(AVR::LDDWRdPtrQ), 0|OPFL_Chain|OPFL_MemRefs,
     403             :                       MVT::i16, 2/*#Ops*/, 2, 3, 
     404             :                   // Src: (ld:{ *:[i16] } addr:{ *:[iPTR] }:$memri)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
     405             :                   // Dst: (LDDWRdPtrQ:{ *:[i16] } addr:{ *:[iPTR] }:$memri)
     406             : /*   623*/      0, // EndSwitchType
     407             : /*   624*/    /*Scope*/ 37, /*->662*/
     408             : /*   625*/      OPC_MoveChild1,
     409             : /*   626*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::WRAPPER),
     410             : /*   629*/      OPC_RecordChild0, // #1 = $dst
     411             : /*   630*/      OPC_MoveChild0,
     412             : /*   631*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
     413             : /*   634*/      OPC_MoveParent,
     414             : /*   635*/      OPC_MoveParent,
     415             : /*   636*/      OPC_CheckPredicate, 1, // Predicate_unindexedload
     416             : /*   638*/      OPC_CheckPredicate, 2, // Predicate_load
     417             : /*   640*/      OPC_SwitchType /*2 cases */, 8, MVT::i8,// ->651
     418             : /*   643*/        OPC_EmitMergeInputChains1_0,
     419             : /*   644*/        OPC_MorphNodeTo1, TARGET_VAL(AVR::LDSRdK), 0|OPFL_Chain|OPFL_MemRefs,
     420             :                       MVT::i8, 1/*#Ops*/, 1, 
     421             :                   // Src: (ld:{ *:[i8] } (AVRWrapper:{ *:[iPTR] } (tglobaladdr:{ *:[iPTR] }):$dst))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
     422             :                   // Dst: (LDSRdK:{ *:[i8] } (tglobaladdr:{ *:[i16] }):$dst)
     423             : /*   651*/      /*SwitchType*/ 8, MVT::i16,// ->661
     424             : /*   653*/        OPC_EmitMergeInputChains1_0,
     425             : /*   654*/        OPC_MorphNodeTo1, TARGET_VAL(AVR::LDSWRdK), 0|OPFL_Chain|OPFL_MemRefs,
     426             :                       MVT::i16, 1/*#Ops*/, 1, 
     427             :                   // Src: (ld:{ *:[i16] } (AVRWrapper:{ *:[iPTR] } (tglobaladdr:{ *:[iPTR] }):$dst))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
     428             :                   // Dst: (LDSWRdK:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$dst)
     429             : /*   661*/      0, // EndSwitchType
     430             : /*   662*/    /*Scope*/ 125, /*->788*/
     431             : /*   663*/      OPC_RecordChild1, // #1 = $src
     432             : /*   664*/      OPC_Scope, 88, /*->754*/ // 2 children in Scope
     433             : /*   666*/        OPC_MoveChild1,
     434             : /*   667*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     435             : /*   670*/        OPC_Scope, 22, /*->694*/ // 3 children in Scope
     436             : /*   672*/          OPC_CheckPredicate, 7, // Predicate_ioaddr8
     437             : /*   674*/          OPC_MoveParent,
     438             : /*   675*/          OPC_CheckPredicate, 1, // Predicate_unindexedload
     439             : /*   677*/          OPC_CheckPredicate, 2, // Predicate_load
     440             : /*   679*/          OPC_CheckType, MVT::i8,
     441             : /*   681*/          OPC_EmitMergeInputChains1_0,
     442             : /*   682*/          OPC_EmitConvertToTarget, 1,
     443             : /*   684*/          OPC_EmitNodeXForm, 0, 2, // ioaddr_XFORM
     444             : /*   687*/          OPC_MorphNodeTo1, TARGET_VAL(AVR::INRdA), 0|OPFL_Chain|OPFL_MemRefs,
     445             :                         MVT::i8, 1/*#Ops*/, 3, 
     446             :                     // Src: (ld:{ *:[i8] } (imm:{ *:[iPTR] })<<P:Predicate_ioaddr8>><<X:ioaddr_XFORM>>:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 8
     447             :                     // Dst: (INRdA:{ *:[i8] } (ioaddr_XFORM:{ *:[i8] } (imm:{ *:[iPTR] }):$src))
     448             : /*   694*/        /*Scope*/ 22, /*->717*/
     449             : /*   695*/          OPC_CheckPredicate, 10, // Predicate_ioaddr16
     450             : /*   697*/          OPC_MoveParent,
     451             : /*   698*/          OPC_CheckPredicate, 1, // Predicate_unindexedload
     452             : /*   700*/          OPC_CheckPredicate, 2, // Predicate_load
     453             : /*   702*/          OPC_CheckType, MVT::i16,
     454             : /*   704*/          OPC_EmitMergeInputChains1_0,
     455             : /*   705*/          OPC_EmitConvertToTarget, 1,
     456             : /*   707*/          OPC_EmitNodeXForm, 0, 2, // ioaddr_XFORM
     457             : /*   710*/          OPC_MorphNodeTo1, TARGET_VAL(AVR::INWRdA), 0|OPFL_Chain|OPFL_MemRefs,
     458             :                         MVT::i16, 1/*#Ops*/, 3, 
     459             :                     // Src: (ld:{ *:[i16] } (imm:{ *:[iPTR] })<<P:Predicate_ioaddr16>><<X:ioaddr_XFORM>>:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 8
     460             :                     // Dst: (INWRdA:{ *:[i16] } (ioaddr_XFORM:{ *:[i8] } (imm:{ *:[iPTR] }):$src))
     461             : /*   717*/        /*Scope*/ 35, /*->753*/
     462             : /*   718*/          OPC_MoveParent,
     463             : /*   719*/          OPC_CheckPredicate, 1, // Predicate_unindexedload
     464             : /*   721*/          OPC_CheckPredicate, 2, // Predicate_load
     465             : /*   723*/          OPC_SwitchType /*2 cases */, 12, MVT::i8,// ->738
     466             : /*   726*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     467             : /*   728*/            OPC_EmitMergeInputChains1_0,
     468             : /*   729*/            OPC_EmitConvertToTarget, 1,
     469             : /*   731*/            OPC_MorphNodeTo1, TARGET_VAL(AVR::LDSRdK), 0|OPFL_Chain|OPFL_MemRefs,
     470             :                           MVT::i8, 1/*#Ops*/, 2, 
     471             :                       // Src: (ld:{ *:[i8] } (imm:{ *:[iPTR] }):$k)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 7
     472             :                       // Dst: (LDSRdK:{ *:[i8] } (imm:{ *:[i16] }):$k)
     473             : /*   738*/          /*SwitchType*/ 12, MVT::i16,// ->752
     474             : /*   740*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     475             : /*   742*/            OPC_EmitMergeInputChains1_0,
     476             : /*   743*/            OPC_EmitConvertToTarget, 1,
     477             : /*   745*/            OPC_MorphNodeTo1, TARGET_VAL(AVR::LDSWRdK), 0|OPFL_Chain|OPFL_MemRefs,
     478             :                           MVT::i16, 1/*#Ops*/, 2, 
     479             :                       // Src: (ld:{ *:[i16] } (imm:{ *:[iPTR] }):$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 7
     480             :                       // Dst: (LDSWRdK:{ *:[i16] } (imm:{ *:[i16] }):$src)
     481             : /*   752*/          0, // EndSwitchType
     482             : /*   753*/        0, /*End of Scope*/
     483             : /*   754*/      /*Scope*/ 32, /*->787*/
     484             : /*   755*/        OPC_CheckChild1Type, MVT::i16,
     485             : /*   757*/        OPC_CheckPredicate, 1, // Predicate_unindexedload
     486             : /*   759*/        OPC_CheckPredicate, 2, // Predicate_load
     487             : /*   761*/        OPC_SwitchType /*2 cases */, 10, MVT::i8,// ->774
     488             : /*   764*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     489             : /*   766*/          OPC_EmitMergeInputChains1_0,
     490             : /*   767*/          OPC_MorphNodeTo1, TARGET_VAL(AVR::LDRdPtr), 0|OPFL_Chain|OPFL_MemRefs,
     491             :                         MVT::i8, 1/*#Ops*/, 1, 
     492             :                     // Src: (ld:{ *:[i8] } i16:{ *:[i16] }:$ptrreg)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
     493             :                     // Dst: (LDRdPtr:{ *:[i8] } i16:{ *:[i16] }:$ptrreg)
     494             : /*   774*/        /*SwitchType*/ 10, MVT::i16,// ->786
     495             : /*   776*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasSRAM())
     496             : /*   778*/          OPC_EmitMergeInputChains1_0,
     497             : /*   779*/          OPC_MorphNodeTo1, TARGET_VAL(AVR::LDWRdPtr), 0|OPFL_Chain|OPFL_MemRefs,
     498             :                         MVT::i16, 1/*#Ops*/, 1, 
     499             :                     // Src: (ld:{ *:[i16] } i16:{ *:[i16] }:$ptrreg)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
     500             :                     // Dst: (LDWRdPtr:{ *:[i16] } i16:{ *:[i16] }:$ptrreg)
     501             : /*   786*/        0, // EndSwitchType
     502             : /*   787*/      0, /*End of Scope*/
     503             : /*   788*/    0, /*End of Scope*/
     504             : /*   789*/  /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_START),// ->814
     505             : /*   792*/    OPC_RecordNode, // #0 = 'AVRcallseq_start' chained node
     506             : /*   793*/    OPC_RecordChild1, // #1 = $amt
     507             : /*   794*/    OPC_MoveChild1,
     508             : /*   795*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     509             : /*   798*/    OPC_MoveParent,
     510             : /*   799*/    OPC_RecordChild2, // #2 = $amt2
     511             : /*   800*/    OPC_MoveChild2,
     512             : /*   801*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     513             : /*   804*/    OPC_MoveParent,
     514             : /*   805*/    OPC_EmitMergeInputChains1_0,
     515             : /*   806*/    OPC_MorphNodeTo1, TARGET_VAL(AVR::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
     516             :                   MVT::i16, 2/*#Ops*/, 1, 2, 
     517             :               // Src: (AVRcallseq_start (timm:{ *:[i16] }):$amt, (timm:{ *:[i16] }):$amt2) - Complexity = 9
     518             :               // Dst: (ADJCALLSTACKDOWN:{ *:[i16] } (timm:{ *:[i16] }):$amt, (timm:{ *:[i16] }):$amt2)
     519             : /*   814*/  /*SwitchOpcode*/ 23, TARGET_VAL(ISD::CALLSEQ_END),// ->840
     520             : /*   817*/    OPC_RecordNode, // #0 = 'AVRcallseq_end' chained node
     521             : /*   818*/    OPC_CaptureGlueInput,
     522             : /*   819*/    OPC_RecordChild1, // #1 = $amt1
     523             : /*   820*/    OPC_MoveChild1,
     524             : /*   821*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     525             : /*   824*/    OPC_MoveParent,
     526             : /*   825*/    OPC_RecordChild2, // #2 = $amt2
     527             : /*   826*/    OPC_MoveChild2,
     528             : /*   827*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     529             : /*   830*/    OPC_MoveParent,
     530             : /*   831*/    OPC_EmitMergeInputChains1_0,
     531             : /*   832*/    OPC_MorphNodeTo1, TARGET_VAL(AVR::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     532             :                   MVT::i16, 2/*#Ops*/, 1, 2, 
     533             :               // Src: (AVRcallseq_end (timm:{ *:[i16] }):$amt1, (timm:{ *:[i16] }):$amt2) - Complexity = 9
     534             :               // Dst: (ADJCALLSTACKUP:{ *:[i16] } (timm:{ *:[i16] }):$amt1, (timm:{ *:[i16] }):$amt2)
     535             : /*   840*/  /*SwitchOpcode*/ 17, TARGET_VAL(ISD::ATOMIC_FENCE),// ->860
     536             : /*   843*/    OPC_RecordNode, // #0 = 'atomic_fence' chained node
     537             : /*   844*/    OPC_MoveChild1,
     538             : /*   845*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     539             : /*   848*/    OPC_MoveParent,
     540             : /*   849*/    OPC_MoveChild2,
     541             : /*   850*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     542             : /*   853*/    OPC_MoveParent,
     543             : /*   854*/    OPC_EmitMergeInputChains1_0,
     544             : /*   855*/    OPC_MorphNodeTo0, TARGET_VAL(AVR::AtomicFence), 0|OPFL_Chain,
     545             :                   0/*#Ops*/, 
     546             :               // Src: (atomic_fence (imm:{ *:[iPTR] }), (imm:{ *:[iPTR] })) - Complexity = 9
     547             :               // Dst: (AtomicFence)
     548             : /*   860*/  /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(ISD::ADD),// ->1064
     549             : /*   864*/    OPC_Scope, 23, /*->889*/ // 3 children in Scope
     550             : /*   866*/      OPC_RecordChild0, // #0 = $src
     551             : /*   867*/      OPC_MoveChild1,
     552             : /*   868*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::WRAPPER),
     553             : /*   871*/      OPC_RecordChild0, // #1 = $src2
     554             : /*   872*/      OPC_MoveChild0,
     555             : /*   873*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
     556             : /*   876*/      OPC_MoveParent,
     557             : /*   877*/      OPC_MoveParent,
     558             : /*   878*/      OPC_CheckType, MVT::i16,
     559             : /*   880*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIWRdK), 0,
     560             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     561             :                 // Src: (add:{ *:[i16] } i16:{ *:[i16] }:$src, (AVRWrapper:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$src2)) - Complexity = 9
     562             :                 // Dst: (SUBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (tglobaladdr:{ *:[i16] }):$src2)
     563             : /*   889*/    /*Scope*/ 23, /*->913*/
     564             : /*   890*/      OPC_MoveChild0,
     565             : /*   891*/      OPC_CheckOpcode, TARGET_VAL(AVRISD::WRAPPER),
     566             : /*   894*/      OPC_RecordChild0, // #0 = $src2
     567             : /*   895*/      OPC_MoveChild0,
     568             : /*   896*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
     569             : /*   899*/      OPC_MoveParent,
     570             : /*   900*/      OPC_MoveParent,
     571             : /*   901*/      OPC_RecordChild1, // #1 = $src
     572             : /*   902*/      OPC_CheckType, MVT::i16,
     573             : /*   904*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIWRdK), 0,
     574             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 1, 0, 
     575             :                 // Src: (add:{ *:[i16] } (AVRWrapper:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$src2), i16:{ *:[i16] }:$src) - Complexity = 9
     576             :                 // Dst: (SUBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (tglobaladdr:{ *:[i16] }):$src2)
     577             : /*   913*/    /*Scope*/ 20|128,1/*148*/, /*->1063*/
     578             : /*   915*/      OPC_RecordChild0, // #0 = $src
     579             : /*   916*/      OPC_Scope, 12, /*->930*/ // 3 children in Scope
     580             : /*   918*/        OPC_CheckChild1Integer, 1, 
     581             : /*   920*/        OPC_CheckType, MVT::i8,
     582             : /*   922*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::INCRd), 0,
     583             :                       MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
     584             :                   // Src: (add:{ *:[i8] } i8:{ *:[i8] }:$src, 1:{ *:[i8] }) - Complexity = 8
     585             :                   // Dst: (INCRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
     586             : /*   930*/      /*Scope*/ 21, /*->952*/
     587             : /*   931*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
     588             : /*   942*/        OPC_CheckType, MVT::i8,
     589             : /*   944*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::DECRd), 0,
     590             :                       MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
     591             :                   // Src: (add:{ *:[i8] } i8:{ *:[i8] }:$src, -1:{ *:[i8] }) - Complexity = 8
     592             :                   // Dst: (DECRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
     593             : /*   952*/      /*Scope*/ 109, /*->1062*/
     594             : /*   953*/        OPC_RecordChild1, // #1 = $k
     595             : /*   954*/        OPC_Scope, 81, /*->1037*/ // 3 children in Scope
     596             : /*   956*/          OPC_MoveChild1,
     597             : /*   957*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     598             : /*   960*/          OPC_Scope, 18, /*->980*/ // 3 children in Scope
     599             : /*   962*/            OPC_CheckPredicate, 11, // Predicate_uimm6
     600             : /*   964*/            OPC_MoveParent,
     601             : /*   965*/            OPC_CheckType, MVT::i16,
     602             : /*   967*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasADDSUBIW())
     603             : /*   969*/            OPC_EmitConvertToTarget, 1,
     604             : /*   971*/            OPC_MorphNodeTo2, TARGET_VAL(AVR::ADIWRdK), 0,
     605             :                           MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     606             :                       // Src: (add:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] })<<P:Predicate_uimm6>>:$k) - Complexity = 7
     607             :                       // Dst: (ADIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$k)
     608             : /*   980*/          /*Scope*/ 19, /*->1000*/
     609             : /*   981*/            OPC_CheckPredicate, 12, // Predicate_imm0_63_neg
     610             : /*   983*/            OPC_MoveParent,
     611             : /*   984*/            OPC_CheckType, MVT::i16,
     612             : /*   986*/            OPC_EmitConvertToTarget, 1,
     613             : /*   988*/            OPC_EmitNodeXForm, 3, 2, // imm16_neg_XFORM
     614             : /*   991*/            OPC_MorphNodeTo2, TARGET_VAL(AVR::SBIWRdK), 0,
     615             :                           MVT::i16, MVT::i8, 2/*#Ops*/, 0, 3, 
     616             :                       // Src: (add:{ *:[i16] } i16:{ *:[i16] }:$src1, (imm:{ *:[i16] })<<P:Predicate_imm0_63_neg>><<X:imm16_neg_XFORM>>:$src2) - Complexity = 7
     617             :                       // Dst: (SBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src1, (imm16_neg_XFORM:{ *:[i16] } (imm:{ *:[i16] })<<P:Predicate_imm0_63_neg>>:$src2))
     618             : /*  1000*/          /*Scope*/ 35, /*->1036*/
     619             : /*  1001*/            OPC_MoveParent,
     620             : /*  1002*/            OPC_SwitchType /*2 cases */, 14, MVT::i16,// ->1019
     621             : /*  1005*/              OPC_EmitConvertToTarget, 1,
     622             : /*  1007*/              OPC_EmitNodeXForm, 3, 2, // imm16_neg_XFORM
     623             : /*  1010*/              OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIWRdK), 0,
     624             :                             MVT::i16, MVT::i8, 2/*#Ops*/, 0, 3, 
     625             :                         // Src: (add:{ *:[i16] } i16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2) - Complexity = 6
     626             :                         // Dst: (SUBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src1, (imm16_neg_XFORM:{ *:[i16] } (imm:{ *:[i16] }):$src2))
     627             : /*  1019*/            /*SwitchType*/ 14, MVT::i8,// ->1035
     628             : /*  1021*/              OPC_EmitConvertToTarget, 1,
     629             : /*  1023*/              OPC_EmitNodeXForm, 4, 2, // imm8_neg_XFORM
     630             : /*  1026*/              OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIRdK), 0,
     631             :                             MVT::i8, MVT::i8, 2/*#Ops*/, 0, 3, 
     632             :                         // Src: (add:{ *:[i8] } i8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
     633             :                         // Dst: (SUBIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src1, (imm8_neg_XFORM:{ *:[i8] } (imm:{ *:[i8] }):$src2))
     634             : /*  1035*/            0, // EndSwitchType
     635             : /*  1036*/          0, /*End of Scope*/
     636             : /*  1037*/        /*Scope*/ 11, /*->1049*/
     637             : /*  1038*/          OPC_CheckType, MVT::i8,
     638             : /*  1040*/          OPC_MorphNodeTo2, TARGET_VAL(AVR::ADDRdRr), 0,
     639             :                         MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     640             :                     // Src: (add:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
     641             :                     // Dst: (ADDRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
     642             : /*  1049*/        /*Scope*/ 11, /*->1061*/
     643             : /*  1050*/          OPC_CheckType, MVT::i16,
     644             : /*  1052*/          OPC_MorphNodeTo2, TARGET_VAL(AVR::ADDWRdRr), 0,
     645             :                         MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     646             :                     // Src: (add:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
     647             :                     // Dst: (ADDWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
     648             : /*  1061*/        0, /*End of Scope*/
     649             : /*  1062*/      0, /*End of Scope*/
     650             : /*  1063*/    0, /*End of Scope*/
     651             : /*  1064*/  /*SwitchOpcode*/ 63, TARGET_VAL(ISD::XOR),// ->1130
     652             : /*  1067*/    OPC_RecordChild0, // #0 = $src
     653             : /*  1068*/    OPC_Scope, 33, /*->1103*/ // 2 children in Scope
     654             : /*  1070*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
     655             : /*  1081*/      OPC_SwitchType /*2 cases */, 8, MVT::i8,// ->1092
     656             : /*  1084*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::COMRd), 0,
     657             :                       MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
     658             :                   // Src: (xor:{ *:[i8] } i8:{ *:[i8] }:$src, -1:{ *:[i8] }) - Complexity = 8
     659             :                   // Dst: (COMRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
     660             : /*  1092*/      /*SwitchType*/ 8, MVT::i16,// ->1102
     661             : /*  1094*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::COMWRd), 0,
     662             :                       MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
     663             :                   // Src: (xor:{ *:[i16] } i16:{ *:[i16] }:$src, -1:{ *:[i16] }) - Complexity = 8
     664             :                   // Dst: (COMWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src)
     665             : /*  1102*/      0, // EndSwitchType
     666             : /*  1103*/    /*Scope*/ 25, /*->1129*/
     667             : /*  1104*/      OPC_RecordChild1, // #1 = $rr
     668             : /*  1105*/      OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->1117
     669             : /*  1108*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::EORRdRr), 0,
     670             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     671             :                   // Src: (xor:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
     672             :                   // Dst: (EORRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
     673             : /*  1117*/      /*SwitchType*/ 9, MVT::i16,// ->1128
     674             : /*  1119*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::EORWRdRr), 0,
     675             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     676             :                   // Src: (xor:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
     677             :                   // Dst: (EORWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
     678             : /*  1128*/      0, // EndSwitchType
     679             : /*  1129*/    0, /*End of Scope*/
     680             : /*  1130*/  /*SwitchOpcode*/ 101, TARGET_VAL(ISD::SUB),// ->1234
     681             : /*  1133*/    OPC_Scope, 13, /*->1148*/ // 2 children in Scope
     682             : /*  1135*/      OPC_CheckChild0Integer, 0, 
     683             : /*  1137*/      OPC_RecordChild1, // #0 = $src
     684             : /*  1138*/      OPC_CheckType, MVT::i8,
     685             : /*  1140*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::NEGRd), 0,
     686             :                     MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
     687             :                 // Src: (sub:{ *:[i8] } 0:{ *:[i8] }, i8:{ *:[i8] }:$src) - Complexity = 8
     688             :                 // Dst: (NEGRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
     689             : /*  1148*/    /*Scope*/ 84, /*->1233*/
     690             : /*  1149*/      OPC_RecordChild0, // #0 = $src
     691             : /*  1150*/      OPC_RecordChild1, // #1 = $k
     692             : /*  1151*/      OPC_Scope, 55, /*->1208*/ // 3 children in Scope
     693             : /*  1153*/        OPC_MoveChild1,
     694             : /*  1154*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     695             : /*  1157*/        OPC_Scope, 18, /*->1177*/ // 2 children in Scope
     696             : /*  1159*/          OPC_CheckPredicate, 11, // Predicate_uimm6
     697             : /*  1161*/          OPC_MoveParent,
     698             : /*  1162*/          OPC_CheckType, MVT::i16,
     699             : /*  1164*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasADDSUBIW())
     700             : /*  1166*/          OPC_EmitConvertToTarget, 1,
     701             : /*  1168*/          OPC_MorphNodeTo2, TARGET_VAL(AVR::SBIWRdK), 0,
     702             :                         MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     703             :                     // Src: (sub:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] })<<P:Predicate_uimm6>>:$k) - Complexity = 7
     704             :                     // Dst: (SBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$k)
     705             : /*  1177*/        /*Scope*/ 29, /*->1207*/
     706             : /*  1178*/          OPC_MoveParent,
     707             : /*  1179*/          OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->1193
     708             : /*  1182*/            OPC_EmitConvertToTarget, 1,
     709             : /*  1184*/            OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIRdK), 0,
     710             :                           MVT::i8, MVT::i8, 2/*#Ops*/, 0, 2, 
     711             :                       // Src: (sub:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k) - Complexity = 6
     712             :                       // Dst: (SUBIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k)
     713             : /*  1193*/          /*SwitchType*/ 11, MVT::i16,// ->1206
     714             : /*  1195*/            OPC_EmitConvertToTarget, 1,
     715             : /*  1197*/            OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIWRdK), 0,
     716             :                           MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     717             :                       // Src: (sub:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$rr) - Complexity = 6
     718             :                       // Dst: (SUBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$rr)
     719             : /*  1206*/          0, // EndSwitchType
     720             : /*  1207*/        0, /*End of Scope*/
     721             : /*  1208*/      /*Scope*/ 11, /*->1220*/
     722             : /*  1209*/        OPC_CheckType, MVT::i8,
     723             : /*  1211*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBRdRr), 0,
     724             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     725             :                   // Src: (sub:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
     726             :                   // Dst: (SUBRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
     727             : /*  1220*/      /*Scope*/ 11, /*->1232*/
     728             : /*  1221*/        OPC_CheckType, MVT::i16,
     729             : /*  1223*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBWRdRr), 0,
     730             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     731             :                   // Src: (sub:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
     732             :                   // Dst: (SUBWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
     733             : /*  1232*/      0, /*End of Scope*/
     734             : /*  1233*/    0, /*End of Scope*/
     735             : /*  1234*/  /*SwitchOpcode*/ 90, TARGET_VAL(AVRISD::BRCOND),// ->1327
     736             : /*  1237*/    OPC_RecordNode, // #0 = 'AVRbrcond' chained node
     737             : /*  1238*/    OPC_CaptureGlueInput,
     738             : /*  1239*/    OPC_RecordChild1, // #1 = $target
     739             : /*  1240*/    OPC_MoveChild1,
     740             : /*  1241*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     741             : /*  1244*/    OPC_MoveParent,
     742             : /*  1245*/    OPC_Scope, 9, /*->1256*/ // 8 children in Scope
     743             : /*  1247*/      OPC_CheckChild2Integer, 0, 
     744             : /*  1249*/      OPC_EmitMergeInputChains1_0,
     745             : /*  1250*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BREQk), 0|OPFL_Chain|OPFL_GlueInput,
     746             :                     1/*#Ops*/, 1, 
     747             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 0:{ *:[i8] }) - Complexity = 8
     748             :                 // Dst: (BREQk (bb:{ *:[Other] }):$target)
     749             : /*  1256*/    /*Scope*/ 9, /*->1266*/
     750             : /*  1257*/      OPC_CheckChild2Integer, 1, 
     751             : /*  1259*/      OPC_EmitMergeInputChains1_0,
     752             : /*  1260*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRNEk), 0|OPFL_Chain|OPFL_GlueInput,
     753             :                     1/*#Ops*/, 1, 
     754             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 1:{ *:[i8] }) - Complexity = 8
     755             :                 // Dst: (BRNEk (bb:{ *:[Other] }):$target)
     756             : /*  1266*/    /*Scope*/ 9, /*->1276*/
     757             : /*  1267*/      OPC_CheckChild2Integer, 4, 
     758             : /*  1269*/      OPC_EmitMergeInputChains1_0,
     759             : /*  1270*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRSHk), 0|OPFL_Chain|OPFL_GlueInput,
     760             :                     1/*#Ops*/, 1, 
     761             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 4:{ *:[i8] }) - Complexity = 8
     762             :                 // Dst: (BRSHk (bb:{ *:[Other] }):$target)
     763             : /*  1276*/    /*Scope*/ 9, /*->1286*/
     764             : /*  1277*/      OPC_CheckChild2Integer, 5, 
     765             : /*  1279*/      OPC_EmitMergeInputChains1_0,
     766             : /*  1280*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRLOk), 0|OPFL_Chain|OPFL_GlueInput,
     767             :                     1/*#Ops*/, 1, 
     768             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 5:{ *:[i8] }) - Complexity = 8
     769             :                 // Dst: (BRLOk (bb:{ *:[Other] }):$target)
     770             : /*  1286*/    /*Scope*/ 9, /*->1296*/
     771             : /*  1287*/      OPC_CheckChild2Integer, 6, 
     772             : /*  1289*/      OPC_EmitMergeInputChains1_0,
     773             : /*  1290*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRMIk), 0|OPFL_Chain|OPFL_GlueInput,
     774             :                     1/*#Ops*/, 1, 
     775             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 6:{ *:[i8] }) - Complexity = 8
     776             :                 // Dst: (BRMIk (bb:{ *:[Other] }):$target)
     777             : /*  1296*/    /*Scope*/ 9, /*->1306*/
     778             : /*  1297*/      OPC_CheckChild2Integer, 7, 
     779             : /*  1299*/      OPC_EmitMergeInputChains1_0,
     780             : /*  1300*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRPLk), 0|OPFL_Chain|OPFL_GlueInput,
     781             :                     1/*#Ops*/, 1, 
     782             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 7:{ *:[i8] }) - Complexity = 8
     783             :                 // Dst: (BRPLk (bb:{ *:[Other] }):$target)
     784             : /*  1306*/    /*Scope*/ 9, /*->1316*/
     785             : /*  1307*/      OPC_CheckChild2Integer, 2, 
     786             : /*  1309*/      OPC_EmitMergeInputChains1_0,
     787             : /*  1310*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRGEk), 0|OPFL_Chain|OPFL_GlueInput,
     788             :                     1/*#Ops*/, 1, 
     789             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 2:{ *:[i8] }) - Complexity = 8
     790             :                 // Dst: (BRGEk (bb:{ *:[Other] }):$target)
     791             : /*  1316*/    /*Scope*/ 9, /*->1326*/
     792             : /*  1317*/      OPC_CheckChild2Integer, 3, 
     793             : /*  1319*/      OPC_EmitMergeInputChains1_0,
     794             : /*  1320*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::BRLTk), 0|OPFL_Chain|OPFL_GlueInput,
     795             :                     1/*#Ops*/, 1, 
     796             :                 // Src: (AVRbrcond (bb:{ *:[Other] }):$target, 3:{ *:[i8] }) - Complexity = 8
     797             :                 // Dst: (BRLTk (bb:{ *:[Other] }):$target)
     798             : /*  1326*/    0, /*End of Scope*/
     799             : /*  1327*/  /*SwitchOpcode*/ 15, TARGET_VAL(ISD::SHL),// ->1345
     800             : /*  1330*/    OPC_RecordChild0, // #0 = $src1
     801             : /*  1331*/    OPC_CheckChild1Integer, 1, 
     802             : /*  1333*/    OPC_CheckChild1Type, MVT::i8,
     803             : /*  1335*/    OPC_CheckType, MVT::i16,
     804             : /*  1337*/    OPC_MorphNodeTo2, TARGET_VAL(AVR::LSLWRd), 0,
     805             :                   MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
     806             :               // Src: (shl:{ *:[i16] } i16:{ *:[i16] }:$src1, 1:{ *:[i8] }) - Complexity = 8
     807             :               // Dst: (LSLWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src1)
     808             : /*  1345*/  /*SwitchOpcode*/ 63, TARGET_VAL(ISD::SUBE),// ->1411
     809             : /*  1348*/    OPC_CaptureGlueInput,
     810             : /*  1349*/    OPC_RecordChild0, // #0 = $src
     811             : /*  1350*/    OPC_RecordChild1, // #1 = $k
     812             : /*  1351*/    OPC_Scope, 33, /*->1386*/ // 3 children in Scope
     813             : /*  1353*/      OPC_MoveChild1,
     814             : /*  1354*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     815             : /*  1357*/      OPC_MoveParent,
     816             : /*  1358*/      OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->1372
     817             : /*  1361*/        OPC_EmitConvertToTarget, 1,
     818             : /*  1363*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SBCIRdK), 0|OPFL_GlueInput|OPFL_GlueOutput,
     819             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 2, 
     820             :                   // Src: (sube:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k) - Complexity = 6
     821             :                   // Dst: (SBCIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k)
     822             : /*  1372*/      /*SwitchType*/ 11, MVT::i16,// ->1385
     823             : /*  1374*/        OPC_EmitConvertToTarget, 1,
     824             : /*  1376*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SBCIWRdK), 0|OPFL_GlueInput|OPFL_GlueOutput,
     825             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     826             :                   // Src: (sube:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$rr) - Complexity = 6
     827             :                   // Dst: (SBCIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$rr)
     828             : /*  1385*/      0, // EndSwitchType
     829             : /*  1386*/    /*Scope*/ 11, /*->1398*/
     830             : /*  1387*/      OPC_CheckType, MVT::i8,
     831             : /*  1389*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::SBCRdRr), 0|OPFL_GlueInput|OPFL_GlueOutput,
     832             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     833             :                 // Src: (sube:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
     834             :                 // Dst: (SBCRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
     835             : /*  1398*/    /*Scope*/ 11, /*->1410*/
     836             : /*  1399*/      OPC_CheckType, MVT::i16,
     837             : /*  1401*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::SBCWRdRr), 0|OPFL_GlueInput|OPFL_GlueOutput,
     838             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     839             :                 // Src: (sube:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
     840             :                 // Dst: (SBCWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
     841             : /*  1410*/    0, /*End of Scope*/
     842             : /*  1411*/  /*SwitchOpcode*/ 62, TARGET_VAL(ISD::AND),// ->1476
     843             : /*  1414*/    OPC_RecordChild0, // #0 = $src
     844             : /*  1415*/    OPC_RecordChild1, // #1 = $k
     845             : /*  1416*/    OPC_Scope, 33, /*->1451*/ // 3 children in Scope
     846             : /*  1418*/      OPC_MoveChild1,
     847             : /*  1419*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     848             : /*  1422*/      OPC_MoveParent,
     849             : /*  1423*/      OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->1437
     850             : /*  1426*/        OPC_EmitConvertToTarget, 1,
     851             : /*  1428*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::ANDIRdK), 0,
     852             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 2, 
     853             :                   // Src: (and:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k) - Complexity = 6
     854             :                   // Dst: (ANDIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k)
     855             : /*  1437*/      /*SwitchType*/ 11, MVT::i16,// ->1450
     856             : /*  1439*/        OPC_EmitConvertToTarget, 1,
     857             : /*  1441*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::ANDIWRdK), 0,
     858             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     859             :                   // Src: (and:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$k) - Complexity = 6
     860             :                   // Dst: (ANDIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$k)
     861             : /*  1450*/      0, // EndSwitchType
     862             : /*  1451*/    /*Scope*/ 11, /*->1463*/
     863             : /*  1452*/      OPC_CheckType, MVT::i8,
     864             : /*  1454*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ANDRdRr), 0,
     865             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     866             :                 // Src: (and:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
     867             :                 // Dst: (ANDRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
     868             : /*  1463*/    /*Scope*/ 11, /*->1475*/
     869             : /*  1464*/      OPC_CheckType, MVT::i16,
     870             : /*  1466*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ANDWRdRr), 0,
     871             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     872             :                 // Src: (and:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
     873             :                 // Dst: (ANDWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
     874             : /*  1475*/    0, /*End of Scope*/
     875             : /*  1476*/  /*SwitchOpcode*/ 62, TARGET_VAL(ISD::OR),// ->1541
     876             : /*  1479*/    OPC_RecordChild0, // #0 = $src
     877             : /*  1480*/    OPC_RecordChild1, // #1 = $k
     878             : /*  1481*/    OPC_Scope, 33, /*->1516*/ // 3 children in Scope
     879             : /*  1483*/      OPC_MoveChild1,
     880             : /*  1484*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     881             : /*  1487*/      OPC_MoveParent,
     882             : /*  1488*/      OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->1502
     883             : /*  1491*/        OPC_EmitConvertToTarget, 1,
     884             : /*  1493*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::ORIRdK), 0,
     885             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 2, 
     886             :                   // Src: (or:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k) - Complexity = 6
     887             :                   // Dst: (ORIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$k)
     888             : /*  1502*/      /*SwitchType*/ 11, MVT::i16,// ->1515
     889             : /*  1504*/        OPC_EmitConvertToTarget, 1,
     890             : /*  1506*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::ORIWRdK), 0,
     891             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     892             :                   // Src: (or:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$rr) - Complexity = 6
     893             :                   // Dst: (ORIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$rr)
     894             : /*  1515*/      0, // EndSwitchType
     895             : /*  1516*/    /*Scope*/ 11, /*->1528*/
     896             : /*  1517*/      OPC_CheckType, MVT::i8,
     897             : /*  1519*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ORRdRr), 0,
     898             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     899             :                 // Src: (or:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
     900             :                 // Dst: (ORRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
     901             : /*  1528*/    /*Scope*/ 11, /*->1540*/
     902             : /*  1529*/      OPC_CheckType, MVT::i16,
     903             : /*  1531*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ORWRdRr), 0,
     904             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     905             :                 // Src: (or:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
     906             :                 // Dst: (ORWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
     907             : /*  1540*/    0, /*End of Scope*/
     908             : /*  1541*/  /*SwitchOpcode*/ 47, TARGET_VAL(AVRISD::CALL),// ->1591
     909             : /*  1544*/    OPC_RecordNode, // #0 = 'AVRcall' chained node
     910             : /*  1545*/    OPC_CaptureGlueInput,
     911             : /*  1546*/    OPC_RecordChild1, // #1 = $k
     912             : /*  1547*/    OPC_MoveChild1,
     913             : /*  1548*/    OPC_SwitchOpcode /*3 cases */, 12, TARGET_VAL(ISD::Constant),// ->1564
     914             : /*  1552*/      OPC_MoveParent,
     915             : /*  1553*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasJMPCALL())
     916             : /*  1555*/      OPC_EmitMergeInputChains1_0,
     917             : /*  1556*/      OPC_EmitConvertToTarget, 1,
     918             : /*  1558*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::CALLk), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     919             :                     1/*#Ops*/, 2, 
     920             :                 // Src: (AVRcall (imm:{ *:[iPTR] }):$k) - Complexity = 6
     921             :                 // Dst: (CALLk (imm:{ *:[iPTR] }):$k)
     922             : /*  1564*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->1577
     923             : /*  1567*/      OPC_CheckType, MVT::i16,
     924             : /*  1569*/      OPC_MoveParent,
     925             : /*  1570*/      OPC_EmitMergeInputChains1_0,
     926             : /*  1571*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::CALLk), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     927             :                     1/*#Ops*/, 1, 
     928             :                 // Src: (AVRcall (tglobaladdr:{ *:[i16] }):$dst) - Complexity = 6
     929             :                 // Dst: (CALLk (tglobaladdr:{ *:[i16] }):$dst)
     930             : /*  1577*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->1590
     931             : /*  1580*/      OPC_CheckType, MVT::i16,
     932             : /*  1582*/      OPC_MoveParent,
     933             : /*  1583*/      OPC_EmitMergeInputChains1_0,
     934             : /*  1584*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::CALLk), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     935             :                     1/*#Ops*/, 1, 
     936             :                 // Src: (AVRcall (texternalsym:{ *:[i16] }):$dst) - Complexity = 6
     937             :                 // Dst: (CALLk (texternalsym:{ *:[i16] }):$dst)
     938             : /*  1590*/    0, // EndSwitchOpcode
     939             : /*  1591*/  /*SwitchOpcode*/ 46, TARGET_VAL(AVRISD::CMP),// ->1640
     940             : /*  1594*/    OPC_RecordChild0, // #0 = $rd
     941             : /*  1595*/    OPC_Scope, 30, /*->1627*/ // 2 children in Scope
     942             : /*  1597*/      OPC_CheckChild0Type, MVT::i8,
     943             : /*  1599*/      OPC_RecordChild1, // #1 = $k
     944             : /*  1600*/      OPC_Scope, 15, /*->1617*/ // 2 children in Scope
     945             : /*  1602*/        OPC_MoveChild1,
     946             : /*  1603*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     947             : /*  1606*/        OPC_MoveParent,
     948             : /*  1607*/        OPC_EmitConvertToTarget, 1,
     949             : /*  1609*/        OPC_MorphNodeTo1, TARGET_VAL(AVR::CPIRdK), 0|OPFL_GlueOutput,
     950             :                       MVT::i8, 2/*#Ops*/, 0, 2, 
     951             :                   // Src: (AVRcmp i8:{ *:[i8] }:$rd, (imm:{ *:[i8] }):$k) - Complexity = 6
     952             :                   // Dst: (CPIRdK:{ *:[i8] } i8:{ *:[i8] }:$rd, (imm:{ *:[i8] }):$k)
     953             : /*  1617*/      /*Scope*/ 8, /*->1626*/
     954             : /*  1618*/        OPC_MorphNodeTo1, TARGET_VAL(AVR::CPRdRr), 0|OPFL_GlueOutput,
     955             :                       MVT::i8, 2/*#Ops*/, 0, 1, 
     956             :                   // Src: (AVRcmp i8:{ *:[i8] }:$rd, i8:{ *:[i8] }:$rr) - Complexity = 3
     957             :                   // Dst: (CPRdRr:{ *:[i8] } i8:{ *:[i8] }:$rd, i8:{ *:[i8] }:$rr)
     958             : /*  1626*/      0, /*End of Scope*/
     959             : /*  1627*/    /*Scope*/ 11, /*->1639*/
     960             : /*  1628*/      OPC_CheckChild0Type, MVT::i16,
     961             : /*  1630*/      OPC_RecordChild1, // #1 = $src2
     962             : /*  1631*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::CPWRdRr), 0|OPFL_GlueOutput,
     963             :                     MVT::i8, 2/*#Ops*/, 0, 1, 
     964             :                 // Src: (AVRcmp i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2) - Complexity = 3
     965             :                 // Dst: (CPWRdRr:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2)
     966             : /*  1639*/    0, /*End of Scope*/
     967             : /*  1640*/  /*SwitchOpcode*/ 62, TARGET_VAL(ISD::SUBC),// ->1705
     968             : /*  1643*/    OPC_RecordChild0, // #0 = $src
     969             : /*  1644*/    OPC_RecordChild1, // #1 = $src2
     970             : /*  1645*/    OPC_Scope, 33, /*->1680*/ // 3 children in Scope
     971             : /*  1647*/      OPC_MoveChild1,
     972             : /*  1648*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     973             : /*  1651*/      OPC_MoveParent,
     974             : /*  1652*/      OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->1666
     975             : /*  1655*/        OPC_EmitConvertToTarget, 1,
     976             : /*  1657*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIRdK), 0|OPFL_GlueOutput,
     977             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 2, 
     978             :                   // Src: (subc:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$src2) - Complexity = 6
     979             :                   // Dst: (SUBIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, (imm:{ *:[i8] }):$src2)
     980             : /*  1666*/      /*SwitchType*/ 11, MVT::i16,// ->1679
     981             : /*  1668*/        OPC_EmitConvertToTarget, 1,
     982             : /*  1670*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIWRdK), 0|OPFL_GlueOutput,
     983             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 2, 
     984             :                   // Src: (subc:{ *:[i16] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$src2) - Complexity = 6
     985             :                   // Dst: (SUBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, (imm:{ *:[i16] }):$src2)
     986             : /*  1679*/      0, // EndSwitchType
     987             : /*  1680*/    /*Scope*/ 11, /*->1692*/
     988             : /*  1681*/      OPC_CheckType, MVT::i8,
     989             : /*  1683*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBRdRr), 0|OPFL_GlueOutput,
     990             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
     991             :                 // Src: (subc:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$src2) - Complexity = 3
     992             :                 // Dst: (SUBRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$src2)
     993             : /*  1692*/    /*Scope*/ 11, /*->1704*/
     994             : /*  1693*/      OPC_CheckType, MVT::i16,
     995             : /*  1695*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBWRdRr), 0|OPFL_GlueOutput,
     996             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
     997             :                 // Src: (subc:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2) - Complexity = 3
     998             :                 // Dst: (SUBWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2)
     999             : /*  1704*/    0, /*End of Scope*/
    1000             : /*  1705*/  /*SwitchOpcode*/ 68, TARGET_VAL(ISD::ADDC),// ->1776
    1001             : /*  1708*/    OPC_RecordChild0, // #0 = $src1
    1002             : /*  1709*/    OPC_RecordChild1, // #1 = $src2
    1003             : /*  1710*/    OPC_Scope, 39, /*->1751*/ // 3 children in Scope
    1004             : /*  1712*/      OPC_MoveChild1,
    1005             : /*  1713*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    1006             : /*  1716*/      OPC_MoveParent,
    1007             : /*  1717*/      OPC_SwitchType /*2 cases */, 14, MVT::i16,// ->1734
    1008             : /*  1720*/        OPC_EmitConvertToTarget, 1,
    1009             : /*  1722*/        OPC_EmitNodeXForm, 3, 2, // imm16_neg_XFORM
    1010             : /*  1725*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIWRdK), 0|OPFL_GlueOutput,
    1011             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 3, 
    1012             :                   // Src: (addc:{ *:[i16] } i16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2) - Complexity = 6
    1013             :                   // Dst: (SUBIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src1, (imm16_neg_XFORM:{ *:[i16] } (imm:{ *:[i16] }):$src2))
    1014             : /*  1734*/      /*SwitchType*/ 14, MVT::i8,// ->1750
    1015             : /*  1736*/        OPC_EmitConvertToTarget, 1,
    1016             : /*  1738*/        OPC_EmitNodeXForm, 4, 2, // imm8_neg_XFORM
    1017             : /*  1741*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SUBIRdK), 0|OPFL_GlueOutput,
    1018             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 3, 
    1019             :                   // Src: (addc:{ *:[i8] } i8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
    1020             :                   // Dst: (SUBIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src1, (imm8_neg_XFORM:{ *:[i8] } (imm:{ *:[i8] }):$src2))
    1021             : /*  1750*/      0, // EndSwitchType
    1022             : /*  1751*/    /*Scope*/ 11, /*->1763*/
    1023             : /*  1752*/      OPC_CheckType, MVT::i8,
    1024             : /*  1754*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ADDRdRr), 0|OPFL_GlueOutput,
    1025             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1026             :                 // Src: (addc:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$src2) - Complexity = 3
    1027             :                 // Dst: (ADDRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$src2)
    1028             : /*  1763*/    /*Scope*/ 11, /*->1775*/
    1029             : /*  1764*/      OPC_CheckType, MVT::i16,
    1030             : /*  1766*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ADDWRdRr), 0|OPFL_GlueOutput,
    1031             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1032             :                 // Src: (addc:{ *:[i16] } DREGS:{ *:[i16] }:$src, DREGS:{ *:[i16] }:$src2) - Complexity = 3
    1033             :                 // Dst: (ADDWRdRr:{ *:[i16] }:{ *:[i8] } DREGS:{ *:[i16] }:$src, DREGS:{ *:[i16] }:$src2)
    1034             : /*  1775*/    0, /*End of Scope*/
    1035             : /*  1776*/  /*SwitchOpcode*/ 69, TARGET_VAL(ISD::ADDE),// ->1848
    1036             : /*  1779*/    OPC_CaptureGlueInput,
    1037             : /*  1780*/    OPC_RecordChild0, // #0 = $src1
    1038             : /*  1781*/    OPC_RecordChild1, // #1 = $src2
    1039             : /*  1782*/    OPC_Scope, 39, /*->1823*/ // 3 children in Scope
    1040             : /*  1784*/      OPC_MoveChild1,
    1041             : /*  1785*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    1042             : /*  1788*/      OPC_MoveParent,
    1043             : /*  1789*/      OPC_SwitchType /*2 cases */, 14, MVT::i16,// ->1806
    1044             : /*  1792*/        OPC_EmitConvertToTarget, 1,
    1045             : /*  1794*/        OPC_EmitNodeXForm, 3, 2, // imm16_neg_XFORM
    1046             : /*  1797*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SBCIWRdK), 0|OPFL_GlueInput|OPFL_GlueOutput,
    1047             :                       MVT::i16, MVT::i8, 2/*#Ops*/, 0, 3, 
    1048             :                   // Src: (adde:{ *:[i16] } i16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2) - Complexity = 6
    1049             :                   // Dst: (SBCIWRdK:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src1, (imm16_neg_XFORM:{ *:[i16] } (imm:{ *:[i16] }):$src2))
    1050             : /*  1806*/      /*SwitchType*/ 14, MVT::i8,// ->1822
    1051             : /*  1808*/        OPC_EmitConvertToTarget, 1,
    1052             : /*  1810*/        OPC_EmitNodeXForm, 4, 2, // imm8_neg_XFORM
    1053             : /*  1813*/        OPC_MorphNodeTo2, TARGET_VAL(AVR::SBCIRdK), 0|OPFL_GlueInput|OPFL_GlueOutput,
    1054             :                       MVT::i8, MVT::i8, 2/*#Ops*/, 0, 3, 
    1055             :                   // Src: (adde:{ *:[i8] } i8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2) - Complexity = 6
    1056             :                   // Dst: (SBCIRdK:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src1, (imm8_neg_XFORM:{ *:[i8] } (imm:{ *:[i8] }):$src2))
    1057             : /*  1822*/      0, // EndSwitchType
    1058             : /*  1823*/    /*Scope*/ 11, /*->1835*/
    1059             : /*  1824*/      OPC_CheckType, MVT::i8,
    1060             : /*  1826*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ADCRdRr), 0|OPFL_GlueInput|OPFL_GlueOutput,
    1061             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1062             :                 // Src: (adde:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr) - Complexity = 3
    1063             :                 // Dst: (ADCRdRr:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$rr)
    1064             : /*  1835*/    /*Scope*/ 11, /*->1847*/
    1065             : /*  1836*/      OPC_CheckType, MVT::i16,
    1066             : /*  1838*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ADCWRdRr), 0|OPFL_GlueInput|OPFL_GlueOutput,
    1067             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1068             :                 // Src: (adde:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr) - Complexity = 3
    1069             :                 // Dst: (ADCWRdRr:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$rr)
    1070             : /*  1847*/    0, /*End of Scope*/
    1071             : /*  1848*/  /*SwitchOpcode*/ 30, TARGET_VAL(AVRISD::WRAPPER),// ->1881
    1072             : /*  1851*/    OPC_RecordChild0, // #0 = $dst
    1073             : /*  1852*/    OPC_MoveChild0,
    1074             : /*  1853*/    OPC_SwitchOpcode /*2 cases */, 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->1867
    1075             : /*  1857*/      OPC_MoveParent,
    1076             : /*  1858*/      OPC_CheckType, MVT::i16,
    1077             : /*  1860*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::LDIWRdK), 0,
    1078             :                     MVT::i16, 1/*#Ops*/, 0, 
    1079             :                 // Src: (AVRWrapper:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$dst) - Complexity = 6
    1080             :                 // Dst: (LDIWRdK:{ *:[i16] } (tglobaladdr:{ *:[i16] }):$dst)
    1081             : /*  1867*/    /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetBlockAddress),// ->1880
    1082             : /*  1870*/      OPC_MoveParent,
    1083             : /*  1871*/      OPC_CheckType, MVT::i16,
    1084             : /*  1873*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::LDIWRdK), 0,
    1085             :                     MVT::i16, 1/*#Ops*/, 0, 
    1086             :                 // Src: (AVRWrapper:{ *:[i16] } (tblockaddress:{ *:[i16] }):$dst) - Complexity = 6
    1087             :                 // Dst: (LDIWRdK:{ *:[i16] } (tblockaddress:{ *:[i16] }):$dst)
    1088             : /*  1880*/    0, // EndSwitchOpcode
    1089             : /*  1881*/  /*SwitchOpcode*/ 37, TARGET_VAL(AVRISD::SELECT_CC),// ->1921
    1090             : /*  1884*/    OPC_CaptureGlueInput,
    1091             : /*  1885*/    OPC_RecordChild0, // #0 = $src
    1092             : /*  1886*/    OPC_RecordChild1, // #1 = $src2
    1093             : /*  1887*/    OPC_RecordChild2, // #2 = $cc
    1094             : /*  1888*/    OPC_MoveChild2,
    1095             : /*  1889*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    1096             : /*  1892*/    OPC_MoveParent,
    1097             : /*  1893*/    OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->1907
    1098             : /*  1896*/      OPC_EmitConvertToTarget, 2,
    1099             : /*  1898*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::Select8), 0|OPFL_GlueInput,
    1100             :                     MVT::i8, 3/*#Ops*/, 0, 1, 3, 
    1101             :                 // Src: (AVRselectcc:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
    1102             :                 // Dst: (Select8:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$src2, (imm:{ *:[i8] }):$cc)
    1103             : /*  1907*/    /*SwitchType*/ 11, MVT::i16,// ->1920
    1104             : /*  1909*/      OPC_EmitConvertToTarget, 2,
    1105             : /*  1911*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::Select16), 0|OPFL_GlueInput,
    1106             :                     MVT::i16, 3/*#Ops*/, 0, 1, 3, 
    1107             :                 // Src: (AVRselectcc:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2, (imm:{ *:[i8] }):$cc) - Complexity = 6
    1108             :                 // Dst: (Select16:{ *:[i16] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2, (imm:{ *:[i8] }):$cc)
    1109             : /*  1920*/    0, // EndSwitchType
    1110             : /*  1921*/  /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ATOMIC_LOAD),// ->1955
    1111             : /*  1924*/    OPC_RecordMemRef,
    1112             : /*  1925*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
    1113             : /*  1926*/    OPC_RecordChild1, // #1 = $rr
    1114             : /*  1927*/    OPC_CheckChild1Type, MVT::i16,
    1115             : /*  1929*/    OPC_SwitchType /*2 cases */, 10, MVT::i8,// ->1942
    1116             : /*  1932*/      OPC_CheckPredicate, 13, // Predicate_atomic_load_8
    1117             : /*  1934*/      OPC_EmitMergeInputChains1_0,
    1118             : /*  1935*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoad8), 0|OPFL_Chain|OPFL_MemRefs,
    1119             :                     MVT::i8, 1/*#Ops*/, 1, 
    1120             :                 // Src: (atomic_load:{ *:[i8] } i16:{ *:[i16] }:$rr)<<P:Predicate_atomic_load_8>> - Complexity = 4
    1121             :                 // Dst: (AtomicLoad8:{ *:[i8] } i16:{ *:[i16] }:$rr)
    1122             : /*  1942*/    /*SwitchType*/ 10, MVT::i16,// ->1954
    1123             : /*  1944*/      OPC_CheckPredicate, 14, // Predicate_atomic_load_16
    1124             : /*  1946*/      OPC_EmitMergeInputChains1_0,
    1125             : /*  1947*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoad16), 0|OPFL_Chain|OPFL_MemRefs,
    1126             :                     MVT::i16, 1/*#Ops*/, 1, 
    1127             :                 // Src: (atomic_load:{ *:[i16] } i16:{ *:[i16] }:$rr)<<P:Predicate_atomic_load_16>> - Complexity = 4
    1128             :                 // Dst: (AtomicLoad16:{ *:[i16] } i16:{ *:[i16] }:$rr)
    1129             : /*  1954*/    0, // EndSwitchType
    1130             : /*  1955*/  /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ATOMIC_STORE),// ->1992
    1131             : /*  1958*/    OPC_RecordMemRef,
    1132             : /*  1959*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
    1133             : /*  1960*/    OPC_RecordChild1, // #1 = $rd
    1134             : /*  1961*/    OPC_CheckChild1Type, MVT::i16,
    1135             : /*  1963*/    OPC_RecordChild2, // #2 = $rr
    1136             : /*  1964*/    OPC_Scope, 12, /*->1978*/ // 2 children in Scope
    1137             : /*  1966*/      OPC_CheckChild2Type, MVT::i8,
    1138             : /*  1968*/      OPC_CheckPredicate, 13, // Predicate_atomic_store_8
    1139             : /*  1970*/      OPC_EmitMergeInputChains1_0,
    1140             : /*  1971*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::AtomicStore8), 0|OPFL_Chain|OPFL_MemRefs,
    1141             :                     2/*#Ops*/, 1, 2, 
    1142             :                 // Src: (atomic_store i16:{ *:[i16] }:$rd, GPR8:{ *:[i8] }:$rr)<<P:Predicate_atomic_store_8>> - Complexity = 4
    1143             :                 // Dst: (AtomicStore8 i16:{ *:[i16] }:$rd, GPR8:{ *:[i8] }:$rr)
    1144             : /*  1978*/    /*Scope*/ 12, /*->1991*/
    1145             : /*  1979*/      OPC_CheckChild2Type, MVT::i16,
    1146             : /*  1981*/      OPC_CheckPredicate, 14, // Predicate_atomic_store_16
    1147             : /*  1983*/      OPC_EmitMergeInputChains1_0,
    1148             : /*  1984*/      OPC_MorphNodeTo0, TARGET_VAL(AVR::AtomicStore16), 0|OPFL_Chain|OPFL_MemRefs,
    1149             :                     2/*#Ops*/, 1, 2, 
    1150             :                 // Src: (atomic_store i16:{ *:[i16] }:$rd, DREGS:{ *:[i16] }:$rr)<<P:Predicate_atomic_store_16>> - Complexity = 4
    1151             :                 // Dst: (AtomicStore16 i16:{ *:[i16] }:$rd, DREGS:{ *:[i16] }:$rr)
    1152             : /*  1991*/    0, /*End of Scope*/
    1153             : /*  1992*/  /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->2029
    1154             : /*  1995*/    OPC_RecordMemRef,
    1155             : /*  1996*/    OPC_RecordNode, // #0 = 'atomic_load_add' chained node
    1156             : /*  1997*/    OPC_RecordChild1, // #1 = $rr
    1157             : /*  1998*/    OPC_CheckChild1Type, MVT::i16,
    1158             : /*  2000*/    OPC_RecordChild2, // #2 = $operand
    1159             : /*  2001*/    OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->2015
    1160             : /*  2004*/      OPC_CheckPredicate, 13, // Predicate_atomic_load_add_8
    1161             : /*  2006*/      OPC_EmitMergeInputChains1_0,
    1162             : /*  2007*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadAdd8), 0|OPFL_Chain|OPFL_MemRefs,
    1163             :                     MVT::i8, 2/*#Ops*/, 1, 2, 
    1164             :                 // Src: (atomic_load_add:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)<<P:Predicate_atomic_load_add_8>> - Complexity = 4
    1165             :                 // Dst: (AtomicLoadAdd8:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)
    1166             : /*  2015*/    /*SwitchType*/ 11, MVT::i16,// ->2028
    1167             : /*  2017*/      OPC_CheckPredicate, 14, // Predicate_atomic_load_add_16
    1168             : /*  2019*/      OPC_EmitMergeInputChains1_0,
    1169             : /*  2020*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadAdd16), 0|OPFL_Chain|OPFL_MemRefs,
    1170             :                     MVT::i16, 2/*#Ops*/, 1, 2, 
    1171             :                 // Src: (atomic_load_add:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)<<P:Predicate_atomic_load_add_16>> - Complexity = 4
    1172             :                 // Dst: (AtomicLoadAdd16:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)
    1173             : /*  2028*/    0, // EndSwitchType
    1174             : /*  2029*/  /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),// ->2066
    1175             : /*  2032*/    OPC_RecordMemRef,
    1176             : /*  2033*/    OPC_RecordNode, // #0 = 'atomic_load_sub' chained node
    1177             : /*  2034*/    OPC_RecordChild1, // #1 = $rr
    1178             : /*  2035*/    OPC_CheckChild1Type, MVT::i16,
    1179             : /*  2037*/    OPC_RecordChild2, // #2 = $operand
    1180             : /*  2038*/    OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->2052
    1181             : /*  2041*/      OPC_CheckPredicate, 13, // Predicate_atomic_load_sub_8
    1182             : /*  2043*/      OPC_EmitMergeInputChains1_0,
    1183             : /*  2044*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadSub8), 0|OPFL_Chain|OPFL_MemRefs,
    1184             :                     MVT::i8, 2/*#Ops*/, 1, 2, 
    1185             :                 // Src: (atomic_load_sub:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)<<P:Predicate_atomic_load_sub_8>> - Complexity = 4
    1186             :                 // Dst: (AtomicLoadSub8:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)
    1187             : /*  2052*/    /*SwitchType*/ 11, MVT::i16,// ->2065
    1188             : /*  2054*/      OPC_CheckPredicate, 14, // Predicate_atomic_load_sub_16
    1189             : /*  2056*/      OPC_EmitMergeInputChains1_0,
    1190             : /*  2057*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadSub16), 0|OPFL_Chain|OPFL_MemRefs,
    1191             :                     MVT::i16, 2/*#Ops*/, 1, 2, 
    1192             :                 // Src: (atomic_load_sub:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)<<P:Predicate_atomic_load_sub_16>> - Complexity = 4
    1193             :                 // Dst: (AtomicLoadSub16:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)
    1194             : /*  2065*/    0, // EndSwitchType
    1195             : /*  2066*/  /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->2103
    1196             : /*  2069*/    OPC_RecordMemRef,
    1197             : /*  2070*/    OPC_RecordNode, // #0 = 'atomic_load_and' chained node
    1198             : /*  2071*/    OPC_RecordChild1, // #1 = $rr
    1199             : /*  2072*/    OPC_CheckChild1Type, MVT::i16,
    1200             : /*  2074*/    OPC_RecordChild2, // #2 = $operand
    1201             : /*  2075*/    OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->2089
    1202             : /*  2078*/      OPC_CheckPredicate, 13, // Predicate_atomic_load_and_8
    1203             : /*  2080*/      OPC_EmitMergeInputChains1_0,
    1204             : /*  2081*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadAnd8), 0|OPFL_Chain|OPFL_MemRefs,
    1205             :                     MVT::i8, 2/*#Ops*/, 1, 2, 
    1206             :                 // Src: (atomic_load_and:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)<<P:Predicate_atomic_load_and_8>> - Complexity = 4
    1207             :                 // Dst: (AtomicLoadAnd8:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)
    1208             : /*  2089*/    /*SwitchType*/ 11, MVT::i16,// ->2102
    1209             : /*  2091*/      OPC_CheckPredicate, 14, // Predicate_atomic_load_and_16
    1210             : /*  2093*/      OPC_EmitMergeInputChains1_0,
    1211             : /*  2094*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadAnd16), 0|OPFL_Chain|OPFL_MemRefs,
    1212             :                     MVT::i16, 2/*#Ops*/, 1, 2, 
    1213             :                 // Src: (atomic_load_and:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)<<P:Predicate_atomic_load_and_16>> - Complexity = 4
    1214             :                 // Dst: (AtomicLoadAnd16:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)
    1215             : /*  2102*/    0, // EndSwitchType
    1216             : /*  2103*/  /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->2140
    1217             : /*  2106*/    OPC_RecordMemRef,
    1218             : /*  2107*/    OPC_RecordNode, // #0 = 'atomic_load_or' chained node
    1219             : /*  2108*/    OPC_RecordChild1, // #1 = $rr
    1220             : /*  2109*/    OPC_CheckChild1Type, MVT::i16,
    1221             : /*  2111*/    OPC_RecordChild2, // #2 = $operand
    1222             : /*  2112*/    OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->2126
    1223             : /*  2115*/      OPC_CheckPredicate, 13, // Predicate_atomic_load_or_8
    1224             : /*  2117*/      OPC_EmitMergeInputChains1_0,
    1225             : /*  2118*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadOr8), 0|OPFL_Chain|OPFL_MemRefs,
    1226             :                     MVT::i8, 2/*#Ops*/, 1, 2, 
    1227             :                 // Src: (atomic_load_or:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)<<P:Predicate_atomic_load_or_8>> - Complexity = 4
    1228             :                 // Dst: (AtomicLoadOr8:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)
    1229             : /*  2126*/    /*SwitchType*/ 11, MVT::i16,// ->2139
    1230             : /*  2128*/      OPC_CheckPredicate, 14, // Predicate_atomic_load_or_16
    1231             : /*  2130*/      OPC_EmitMergeInputChains1_0,
    1232             : /*  2131*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadOr16), 0|OPFL_Chain|OPFL_MemRefs,
    1233             :                     MVT::i16, 2/*#Ops*/, 1, 2, 
    1234             :                 // Src: (atomic_load_or:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)<<P:Predicate_atomic_load_or_16>> - Complexity = 4
    1235             :                 // Dst: (AtomicLoadOr16:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)
    1236             : /*  2139*/    0, // EndSwitchType
    1237             : /*  2140*/  /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->2177
    1238             : /*  2143*/    OPC_RecordMemRef,
    1239             : /*  2144*/    OPC_RecordNode, // #0 = 'atomic_load_xor' chained node
    1240             : /*  2145*/    OPC_RecordChild1, // #1 = $rr
    1241             : /*  2146*/    OPC_CheckChild1Type, MVT::i16,
    1242             : /*  2148*/    OPC_RecordChild2, // #2 = $operand
    1243             : /*  2149*/    OPC_SwitchType /*2 cases */, 11, MVT::i8,// ->2163
    1244             : /*  2152*/      OPC_CheckPredicate, 13, // Predicate_atomic_load_xor_8
    1245             : /*  2154*/      OPC_EmitMergeInputChains1_0,
    1246             : /*  2155*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadXor8), 0|OPFL_Chain|OPFL_MemRefs,
    1247             :                     MVT::i8, 2/*#Ops*/, 1, 2, 
    1248             :                 // Src: (atomic_load_xor:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)<<P:Predicate_atomic_load_xor_8>> - Complexity = 4
    1249             :                 // Dst: (AtomicLoadXor8:{ *:[i8] } i16:{ *:[i16] }:$rr, GPR8:{ *:[i8] }:$operand)
    1250             : /*  2163*/    /*SwitchType*/ 11, MVT::i16,// ->2176
    1251             : /*  2165*/      OPC_CheckPredicate, 14, // Predicate_atomic_load_xor_16
    1252             : /*  2167*/      OPC_EmitMergeInputChains1_0,
    1253             : /*  2168*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::AtomicLoadXor16), 0|OPFL_Chain|OPFL_MemRefs,
    1254             :                     MVT::i16, 2/*#Ops*/, 1, 2, 
    1255             :                 // Src: (atomic_load_xor:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)<<P:Predicate_atomic_load_xor_16>> - Complexity = 4
    1256             :                 // Dst: (AtomicLoadXor16:{ *:[i16] } i16:{ *:[i16] }:$rr, DREGS:{ *:[i16] }:$operand)
    1257             : /*  2176*/    0, // EndSwitchType
    1258             : /*  2177*/  /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->2194
    1259             : /*  2180*/    OPC_RecordNode, // #0 = 'br' chained node
    1260             : /*  2181*/    OPC_RecordChild1, // #1 = $target
    1261             : /*  2182*/    OPC_MoveChild1,
    1262             : /*  2183*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
    1263             : /*  2186*/    OPC_MoveParent,
    1264             : /*  2187*/    OPC_EmitMergeInputChains1_0,
    1265             : /*  2188*/    OPC_MorphNodeTo0, TARGET_VAL(AVR::RJMPk), 0|OPFL_Chain,
    1266             :                   1/*#Ops*/, 1, 
    1267             :               // Src: (br (bb:{ *:[Other] }):$target) - Complexity = 3
    1268             :               // Dst: (RJMPk (bb:{ *:[Other] }):$target)
    1269             : /*  2194*/  /*SwitchOpcode*/ 8, TARGET_VAL(AVRISD::RET_FLAG),// ->2205
    1270             : /*  2197*/    OPC_RecordNode, // #0 = 'AVRretflag' chained node
    1271             : /*  2198*/    OPC_CaptureGlueInput,
    1272             : /*  2199*/    OPC_EmitMergeInputChains1_0,
    1273             : /*  2200*/    OPC_MorphNodeTo0, TARGET_VAL(AVR::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
    1274             :                   0/*#Ops*/, 
    1275             :               // Src: (AVRretflag) - Complexity = 3
    1276             :               // Dst: (RET)
    1277             : /*  2205*/  /*SwitchOpcode*/ 8, TARGET_VAL(AVRISD::RETI_FLAG),// ->2216
    1278             : /*  2208*/    OPC_RecordNode, // #0 = 'AVRretiflag' chained node
    1279             : /*  2209*/    OPC_CaptureGlueInput,
    1280             : /*  2210*/    OPC_EmitMergeInputChains1_0,
    1281             : /*  2211*/    OPC_MorphNodeTo0, TARGET_VAL(AVR::RETI), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
    1282             :                   0/*#Ops*/, 
    1283             :               // Src: (AVRretiflag) - Complexity = 3
    1284             :               // Dst: (RETI)
    1285             : /*  2216*/  /*SwitchOpcode*/ 28, TARGET_VAL(AVRISD::CMPC),// ->2247
    1286             : /*  2219*/    OPC_CaptureGlueInput,
    1287             : /*  2220*/    OPC_RecordChild0, // #0 = $rd
    1288             : /*  2221*/    OPC_Scope, 11, /*->2234*/ // 2 children in Scope
    1289             : /*  2223*/      OPC_CheckChild0Type, MVT::i8,
    1290             : /*  2225*/      OPC_RecordChild1, // #1 = $rr
    1291             : /*  2226*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::CPCRdRr), 0|OPFL_GlueInput|OPFL_GlueOutput,
    1292             :                     MVT::i8, 2/*#Ops*/, 0, 1, 
    1293             :                 // Src: (AVRcmpc i8:{ *:[i8] }:$rd, i8:{ *:[i8] }:$rr) - Complexity = 3
    1294             :                 // Dst: (CPCRdRr:{ *:[i8] } i8:{ *:[i8] }:$rd, i8:{ *:[i8] }:$rr)
    1295             : /*  2234*/    /*Scope*/ 11, /*->2246*/
    1296             : /*  2235*/      OPC_CheckChild0Type, MVT::i16,
    1297             : /*  2237*/      OPC_RecordChild1, // #1 = $src2
    1298             : /*  2238*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::CPCWRdRr), 0|OPFL_GlueInput|OPFL_GlueOutput,
    1299             :                     MVT::i8, 2/*#Ops*/, 0, 1, 
    1300             :                 // Src: (AVRcmpc i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2) - Complexity = 3
    1301             :                 // Dst: (CPCWRdRr:{ *:[i8] } i16:{ *:[i16] }:$src, i16:{ *:[i16] }:$src2)
    1302             : /*  2246*/    0, /*End of Scope*/
    1303             : /*  2247*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::Constant),// ->2275
    1304             : /*  2250*/    OPC_RecordNode, // #0 = $k
    1305             : /*  2251*/    OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->2263
    1306             : /*  2254*/      OPC_EmitConvertToTarget, 0,
    1307             : /*  2256*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::LDIRdK), 0,
    1308             :                     MVT::i8, 1/*#Ops*/, 1, 
    1309             :                 // Src: (imm:{ *:[i8] }):$k - Complexity = 3
    1310             :                 // Dst: (LDIRdK:{ *:[i8] } (imm:{ *:[i8] }):$k)
    1311             : /*  2263*/    /*SwitchType*/ 9, MVT::i16,// ->2274
    1312             : /*  2265*/      OPC_EmitConvertToTarget, 0,
    1313             : /*  2267*/      OPC_MorphNodeTo1, TARGET_VAL(AVR::LDIWRdK), 0,
    1314             :                     MVT::i16, 1/*#Ops*/, 1, 
    1315             :                 // Src: (imm:{ *:[i16] }):$src - Complexity = 3
    1316             :                 // Dst: (LDIWRdK:{ *:[i16] } (imm:{ *:[i16] }):$src)
    1317             : /*  2274*/    0, // EndSwitchType
    1318             : /*  2275*/  /*SwitchOpcode*/ 24, TARGET_VAL(AVRISD::LSL),// ->2302
    1319             : /*  2278*/    OPC_RecordChild0, // #0 = $src
    1320             : /*  2279*/    OPC_SwitchType /*2 cases */, 8, MVT::i16,// ->2290
    1321             : /*  2282*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::LSLWRd), 0,
    1322             :                     MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1323             :                 // Src: (AVRlsl:{ *:[i16] } i16:{ *:[i16] }:$src) - Complexity = 3
    1324             :                 // Dst: (LSLWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src)
    1325             : /*  2290*/    /*SwitchType*/ 9, MVT::i8,// ->2301
    1326             : /*  2292*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ADDRdRr), 0,
    1327             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 0, 
    1328             :                 // Src: (AVRlsl:{ *:[i8] } i8:{ *:[i8] }:$rd) - Complexity = 3
    1329             :                 // Dst: (ADDRdRr:{ *:[i8] }:{ *:[i8] } GPR8:{ *:[i8] }:$rd, GPR8:{ *:[i8] }:$rd)
    1330             : /*  2301*/    0, // EndSwitchType
    1331             : /*  2302*/  /*SwitchOpcode*/ 23, TARGET_VAL(AVRISD::LSR),// ->2328
    1332             : /*  2305*/    OPC_RecordChild0, // #0 = $src
    1333             : /*  2306*/    OPC_SwitchType /*2 cases */, 8, MVT::i8,// ->2317
    1334             : /*  2309*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::LSRRd), 0,
    1335             :                     MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
    1336             :                 // Src: (AVRlsr:{ *:[i8] } i8:{ *:[i8] }:$src) - Complexity = 3
    1337             :                 // Dst: (LSRRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
    1338             : /*  2317*/    /*SwitchType*/ 8, MVT::i16,// ->2327
    1339             : /*  2319*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::LSRWRd), 0,
    1340             :                     MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1341             :                 // Src: (AVRlsr:{ *:[i16] } i16:{ *:[i16] }:$src) - Complexity = 3
    1342             :                 // Dst: (LSRWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src)
    1343             : /*  2327*/    0, // EndSwitchType
    1344             : /*  2328*/  /*SwitchOpcode*/ 23, TARGET_VAL(AVRISD::ASR),// ->2354
    1345             : /*  2331*/    OPC_RecordChild0, // #0 = $src
    1346             : /*  2332*/    OPC_SwitchType /*2 cases */, 8, MVT::i8,// ->2343
    1347             : /*  2335*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ASRRd), 0,
    1348             :                     MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
    1349             :                 // Src: (AVRasr:{ *:[i8] } i8:{ *:[i8] }:$src) - Complexity = 3
    1350             :                 // Dst: (ASRRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
    1351             : /*  2343*/    /*SwitchType*/ 8, MVT::i16,// ->2353
    1352             : /*  2345*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::ASRWRd), 0,
    1353             :                     MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1354             :                 // Src: (AVRasr:{ *:[i16] } i16:{ *:[i16] }:$src) - Complexity = 3
    1355             :                 // Dst: (ASRWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src)
    1356             : /*  2353*/    0, // EndSwitchType
    1357             : /*  2354*/  /*SwitchOpcode*/ 11, TARGET_VAL(AVRISD::ROL),// ->2368
    1358             : /*  2357*/    OPC_RecordChild0, // #0 = $src
    1359             : /*  2358*/    OPC_CheckType, MVT::i16,
    1360             : /*  2360*/    OPC_MorphNodeTo2, TARGET_VAL(AVR::ROLWRd), 0,
    1361             :                   MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1362             :               // Src: (AVRrol:{ *:[i16] } i16:{ *:[i16] }:$src) - Complexity = 3
    1363             :               // Dst: (ROLWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src)
    1364             : /*  2368*/  /*SwitchOpcode*/ 23, TARGET_VAL(AVRISD::ROR),// ->2394
    1365             : /*  2371*/    OPC_RecordChild0, // #0 = $src
    1366             : /*  2372*/    OPC_SwitchType /*2 cases */, 8, MVT::i8,// ->2383
    1367             : /*  2375*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::RORRd), 0,
    1368             :                     MVT::i8, MVT::i8, 1/*#Ops*/, 0, 
    1369             :                 // Src: (AVRror:{ *:[i8] } i8:{ *:[i8] }:$src) - Complexity = 3
    1370             :                 // Dst: (RORRd:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src)
    1371             : /*  2383*/    /*SwitchType*/ 8, MVT::i16,// ->2393
    1372             : /*  2385*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::RORWRd), 0,
    1373             :                     MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1374             :                 // Src: (AVRror:{ *:[i16] } i16:{ *:[i16] }:$src) - Complexity = 3
    1375             :                 // Dst: (RORWRd:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src)
    1376             : /*  2393*/    0, // EndSwitchType
    1377             : /*  2394*/  /*SwitchOpcode*/ 10, TARGET_VAL(ISD::BSWAP),// ->2407
    1378             : /*  2397*/    OPC_RecordChild0, // #0 = $src
    1379             : /*  2398*/    OPC_CheckType, MVT::i8,
    1380             : /*  2400*/    OPC_MorphNodeTo1, TARGET_VAL(AVR::SWAPRd), 0,
    1381             :                   MVT::i8, 1/*#Ops*/, 0, 
    1382             :               // Src: (bswap:{ *:[i8] } i8:{ *:[i8] }:$src) - Complexity = 3
    1383             :               // Dst: (SWAPRd:{ *:[i8] } i8:{ *:[i8] }:$src)
    1384             : /*  2407*/  /*SwitchOpcode*/ 9, TARGET_VAL(ISD::SIGN_EXTEND),// ->2419
    1385             : /*  2410*/    OPC_RecordChild0, // #0 = $src
    1386             : /*  2411*/    OPC_MorphNodeTo2, TARGET_VAL(AVR::SEXT), 0,
    1387             :                   MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1388             :               // Src: (sext:{ *:[i16] } i8:{ *:[i8] }:$src) - Complexity = 3
    1389             :               // Dst: (SEXT:{ *:[i16] }:{ *:[i8] } i8:{ *:[i8] }:$src)
    1390             : /*  2419*/  /*SwitchOpcode*/ 9, TARGET_VAL(ISD::ZERO_EXTEND),// ->2431
    1391             : /*  2422*/    OPC_RecordChild0, // #0 = $src
    1392             : /*  2423*/    OPC_MorphNodeTo2, TARGET_VAL(AVR::ZEXT), 0,
    1393             :                   MVT::i16, MVT::i8, 1/*#Ops*/, 0, 
    1394             :               // Src: (zext:{ *:[i16] } i8:{ *:[i8] }:$src) - Complexity = 3
    1395             :               // Dst: (ZEXT:{ *:[i16] }:{ *:[i8] } i8:{ *:[i8] }:$src)
    1396             : /*  2431*/  /*SwitchOpcode*/ 12, TARGET_VAL(AVRISD::TST),// ->2446
    1397             : /*  2434*/    OPC_RecordChild0, // #0 = $rd
    1398             : /*  2435*/    OPC_CheckChild0Type, MVT::i8,
    1399             : /*  2437*/    OPC_MorphNodeTo2, TARGET_VAL(AVR::ANDRdRr), 0|OPFL_GlueOutput,
    1400             :                   MVT::i8, MVT::i8, 2/*#Ops*/, 0, 0, 
    1401             :               // Src: (AVRtst i8:{ *:[i8] }:$rd) - Complexity = 3
    1402             :               // Dst: (ANDRdRr:{ *:[i8] }:{ *:[i8] } GPR8:{ *:[i8] }:$rd, GPR8:{ *:[i8] }:$rd)
    1403             : /*  2446*/  /*SwitchOpcode*/ 19, TARGET_VAL(ISD::ANY_EXTEND),// ->2468
    1404             : /*  2449*/    OPC_RecordChild0, // #0 = $src
    1405             : /*  2450*/    OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
    1406             :                   MVT::i16, 0/*#Ops*/,  // Results = #1
    1407             : /*  2456*/    OPC_EmitInteger, MVT::i32, AVR::sub_lo,
    1408             : /*  2459*/    OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
    1409             :                   MVT::i16, 3/*#Ops*/, 1, 0, 2, 
    1410             :               // Src: (anyext:{ *:[i16] } i8:{ *:[i8] }:$src) - Complexity = 3
    1411             :               // Dst: (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), i8:{ *:[i8] }:$src, sub_lo:{ *:[i32] })
    1412             : /*  2468*/  /*SwitchOpcode*/ 24, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->2495
    1413             : /*  2471*/    OPC_RecordChild0, // #0 = $src
    1414             : /*  2472*/    OPC_MoveChild1,
    1415             : /*  2473*/    OPC_CheckValueType, MVT::i8,
    1416             : /*  2475*/    OPC_MoveParent,
    1417             : /*  2476*/    OPC_EmitInteger, MVT::i32, AVR::sub_lo,
    1418             : /*  2479*/    OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
    1419             :                   MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
    1420             : /*  2487*/    OPC_MorphNodeTo2, TARGET_VAL(AVR::SEXT), 0,
    1421             :                   MVT::i16, MVT::i8, 1/*#Ops*/, 2, 
    1422             :               // Src: (sext_inreg:{ *:[i16] } i16:{ *:[i16] }:$src, i8:{ *:[Other] }) - Complexity = 3
    1423             :               // Dst: (SEXT:{ *:[i16] }:{ *:[i8] } (EXTRACT_SUBREG:{ *:[i8] } i16:{ *:[i16] }:$src, sub_lo:{ *:[i32] }))
    1424             : /*  2495*/  /*SwitchOpcode*/ 28, TARGET_VAL(AVRISD::LSLLOOP),// ->2526
    1425             : /*  2498*/    OPC_RecordChild0, // #0 = $src
    1426             : /*  2499*/    OPC_RecordChild1, // #1 = $cnt
    1427             : /*  2500*/    OPC_CheckChild1Type, MVT::i8,
    1428             : /*  2502*/    OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->2514
    1429             : /*  2505*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Lsl8), 0,
    1430             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1431             :                 // Src: (AVRlslLoop:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1432             :                 // Dst: (Lsl8:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt)
    1433             : /*  2514*/    /*SwitchType*/ 9, MVT::i16,// ->2525
    1434             : /*  2516*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Lsl16), 0,
    1435             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1436             :                 // Src: (AVRlslLoop:{ *:[i16] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1437             :                 // Dst: (Lsl16:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt)
    1438             : /*  2525*/    0, // EndSwitchType
    1439             : /*  2526*/  /*SwitchOpcode*/ 28, TARGET_VAL(AVRISD::LSRLOOP),// ->2557
    1440             : /*  2529*/    OPC_RecordChild0, // #0 = $src
    1441             : /*  2530*/    OPC_RecordChild1, // #1 = $cnt
    1442             : /*  2531*/    OPC_CheckChild1Type, MVT::i8,
    1443             : /*  2533*/    OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->2545
    1444             : /*  2536*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Lsr8), 0,
    1445             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1446             :                 // Src: (AVRlsrLoop:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1447             :                 // Dst: (Lsr8:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt)
    1448             : /*  2545*/    /*SwitchType*/ 9, MVT::i16,// ->2556
    1449             : /*  2547*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Lsr16), 0,
    1450             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1451             :                 // Src: (AVRlsrLoop:{ *:[i16] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1452             :                 // Dst: (Lsr16:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt)
    1453             : /*  2556*/    0, // EndSwitchType
    1454             : /*  2557*/  /*SwitchOpcode*/ 28, TARGET_VAL(AVRISD::ROLLOOP),// ->2588
    1455             : /*  2560*/    OPC_RecordChild0, // #0 = $src
    1456             : /*  2561*/    OPC_RecordChild1, // #1 = $cnt
    1457             : /*  2562*/    OPC_CheckChild1Type, MVT::i8,
    1458             : /*  2564*/    OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->2576
    1459             : /*  2567*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Rol8), 0,
    1460             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1461             :                 // Src: (AVRrolLoop:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1462             :                 // Dst: (Rol8:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt)
    1463             : /*  2576*/    /*SwitchType*/ 9, MVT::i16,// ->2587
    1464             : /*  2578*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Rol16), 0,
    1465             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1466             :                 // Src: (AVRrolLoop:{ *:[i16] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1467             :                 // Dst: (Rol16:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt)
    1468             : /*  2587*/    0, // EndSwitchType
    1469             : /*  2588*/  /*SwitchOpcode*/ 28, TARGET_VAL(AVRISD::RORLOOP),// ->2619
    1470             : /*  2591*/    OPC_RecordChild0, // #0 = $src
    1471             : /*  2592*/    OPC_RecordChild1, // #1 = $cnt
    1472             : /*  2593*/    OPC_CheckChild1Type, MVT::i8,
    1473             : /*  2595*/    OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->2607
    1474             : /*  2598*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Ror8), 0,
    1475             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1476             :                 // Src: (AVRrorLoop:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1477             :                 // Dst: (Ror8:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt)
    1478             : /*  2607*/    /*SwitchType*/ 9, MVT::i16,// ->2618
    1479             : /*  2609*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Ror16), 0,
    1480             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1481             :                 // Src: (AVRrorLoop:{ *:[i16] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1482             :                 // Dst: (Ror16:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt)
    1483             : /*  2618*/    0, // EndSwitchType
    1484             : /*  2619*/  /*SwitchOpcode*/ 28, TARGET_VAL(AVRISD::ASRLOOP),// ->2650
    1485             : /*  2622*/    OPC_RecordChild0, // #0 = $src
    1486             : /*  2623*/    OPC_RecordChild1, // #1 = $cnt
    1487             : /*  2624*/    OPC_CheckChild1Type, MVT::i8,
    1488             : /*  2626*/    OPC_SwitchType /*2 cases */, 9, MVT::i8,// ->2638
    1489             : /*  2629*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Asr8), 0,
    1490             :                     MVT::i8, MVT::i8, 2/*#Ops*/, 0, 1, 
    1491             :                 // Src: (AVRasrLoop:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1492             :                 // Dst: (Asr8:{ *:[i8] }:{ *:[i8] } i8:{ *:[i8] }:$src, i8:{ *:[i8] }:$cnt)
    1493             : /*  2638*/    /*SwitchType*/ 9, MVT::i16,// ->2649
    1494             : /*  2640*/      OPC_MorphNodeTo2, TARGET_VAL(AVR::Asr16), 0,
    1495             :                     MVT::i16, MVT::i8, 2/*#Ops*/, 0, 1, 
    1496             :                 // Src: (AVRasrLoop:{ *:[i16] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt) - Complexity = 3
    1497             :                 // Dst: (Asr16:{ *:[i16] }:{ *:[i8] } i16:{ *:[i16] }:$src, i8:{ *:[i8] }:$cnt)
    1498             : /*  2649*/    0, // EndSwitchType
    1499             : /*  2650*/  0, // EndSwitchOpcode
    1500             :     0
    1501             :   }; // Total Array size is 2652 bytes
    1502             : 
    1503             :   // Opcode Histogram:
    1504             :   // #OPC_Scope                                = 35
    1505             :   // #OPC_RecordNode                           = 20
    1506             :   // #OPC_RecordChild                          = 93
    1507             :   // #OPC_RecordMemRef                         = 11
    1508             :   // #OPC_CaptureGlueInput                     = 9
    1509             :   // #OPC_MoveChild                            = 51
    1510             :   // #OPC_MoveParent                           = 62
    1511             :   // #OPC_CheckSame                            = 0
    1512             :   // #OPC_CheckChildSame                       = 2
    1513             :   // #OPC_CheckPatternPredicate                = 19
    1514             :   // #OPC_CheckPredicate                       = 71
    1515             :   // #OPC_CheckOpcode                          = 47
    1516             :   // #OPC_SwitchOpcode                         = 4
    1517             :   // #OPC_CheckType                            = 39
    1518             :   // #OPC_SwitchType                           = 31
    1519             :   // #OPC_CheckChildType                       = 25
    1520             :   // #OPC_CheckInteger                         = 0
    1521             :   // #OPC_CheckChildInteger                    = 13
    1522             :   // #OPC_CheckCondCode                        = 0
    1523             :   // #OPC_CheckValueType                       = 1
    1524             :   // #OPC_CheckComplexPat                      = 6
    1525             :   // #OPC_CheckAndImm                          = 0
    1526             :   // #OPC_CheckOrImm                           = 0
    1527             :   // #OPC_CheckFoldableChainNode               = 2
    1528             :   // #OPC_EmitInteger                          = 0
    1529             :   // #OPC_EmitStringInteger                    = 4
    1530             :   // #OPC_EmitRegister                         = 0
    1531             :   // #OPC_EmitConvertToTarget                  = 41
    1532             :   // #OPC_EmitMergeInputChains                 = 59
    1533             :   // #OPC_EmitCopyToReg                        = 0
    1534             :   // #OPC_EmitNode                             = 2
    1535             :   // #OPC_EmitNodeXForm                        = 15
    1536             :   // #OPC_CompleteMatch                        = 0
    1537             :   // #OPC_MorphNodeTo                          = 142
    1538             : 
    1539             :   #undef TARGET_VAL
    1540       15256 :   SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
    1541             : }
    1542             : #endif // GET_DAGISEL_BODY
    1543             : 
    1544             : #ifdef GET_DAGISEL_DECL
    1545             : bool CheckPatternPredicate(unsigned PredNo) const override;
    1546             : #endif
    1547             : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
    1548         394 : bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
    1549             : #if DAGISEL_INLINE
    1550             :   override
    1551             : #endif
    1552             : {
    1553         394 :   switch (PredNo) {
    1554           0 :   default: llvm_unreachable("Invalid predicate in table?");
    1555         382 :   case 0: return (Subtarget->hasSRAM());
    1556          12 :   case 1: return (Subtarget->hasADDSUBIW());
    1557           0 :   case 2: return (Subtarget->hasJMPCALL());
    1558             :   }
    1559             : }
    1560             : #endif // GET_DAGISEL_BODY
    1561             : 
    1562             : #ifdef GET_DAGISEL_DECL
    1563             : bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
    1564             : #endif
    1565             : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
    1566        1147 : bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
    1567             : #if DAGISEL_INLINE
    1568             :   override
    1569             : #endif
    1570             : {
    1571        1147 :   switch (PredNo) {
    1572           0 :   default: llvm_unreachable("Invalid predicate in table?");
    1573             :   case 0: { 
    1574             :     // Predicate_lowioaddr8
    1575             :     auto *N = cast<ConstantSDNode>(Node);
    1576             : 
    1577           2 :   uint64_t val = N->getZExtValue();
    1578           2 :   return val >= 0x20 && val < 0x40;
    1579             : 
    1580             :   }
    1581         233 :   case 1: { 
    1582             :     // Predicate_unindexedload
    1583             :     SDNode *N = Node;
    1584         233 : if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
    1585             : return true;
    1586             : 
    1587             :   }
    1588         233 :   case 2: { 
    1589             :     // Predicate_load
    1590             :     SDNode *N = Node;
    1591         233 : if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
    1592             : return true;
    1593             : 
    1594             :   }
    1595             :   case 3: { 
    1596             :     // Predicate_iobitpos8
    1597             :     auto *N = cast<ConstantSDNode>(Node);
    1598             : 
    1599           2 :   return isPowerOf2_32(uint8_t(N->getZExtValue()));
    1600             : 
    1601             :   }
    1602         249 :   case 4: { 
    1603             :     // Predicate_unindexedstore
    1604             :     SDNode *N = Node;
    1605         249 : if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
    1606             : return true;
    1607             : 
    1608             :   }
    1609         249 :   case 5: { 
    1610             :     // Predicate_store
    1611             :     // Predicate_istore
    1612             :     SDNode *N = Node;
    1613         249 :  if (cast<StoreSDNode>(N)->isTruncatingStore()) return false;
    1614             : return true;
    1615             : 
    1616             :   }
    1617             :   case 6: { 
    1618             :     // Predicate_iobitposn8
    1619             :     auto *N = cast<ConstantSDNode>(Node);
    1620             : 
    1621           2 :   return isPowerOf2_32(uint8_t(~N->getZExtValue()));
    1622             : 
    1623             :   }
    1624             :   case 7: { 
    1625             :     // Predicate_ioaddr8
    1626             :     auto *N = cast<ConstantSDNode>(Node);
    1627             : 
    1628          45 :   uint64_t val = N->getZExtValue();
    1629          45 :   return val >= 0x20 && val < 0x60;
    1630             : 
    1631             :   }
    1632           7 :   case 8: { 
    1633             :     // Predicate_post_store
    1634             :     SDNode *N = Node;
    1635             : 
    1636             :   ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
    1637           7 :   return AM == ISD::POST_INC || AM == ISD::POST_DEC;
    1638             : 
    1639             :   }
    1640           2 :   case 9: { 
    1641             :     // Predicate_pre_store
    1642             :     SDNode *N = Node;
    1643             : 
    1644             :   ISD::MemIndexedMode AM = cast<StoreSDNode>(N)->getAddressingMode();
    1645           2 :   return AM == ISD::PRE_INC || AM == ISD::PRE_DEC;
    1646             : 
    1647             :   }
    1648             :   case 10: { 
    1649             :     // Predicate_ioaddr16
    1650             :     auto *N = cast<ConstantSDNode>(Node);
    1651             : 
    1652          53 :   uint64_t val = N->getZExtValue();
    1653          53 :   return val >= 0x20 && val < 0x5f;
    1654             : 
    1655             :   }
    1656             :   case 11: { 
    1657             :     // Predicate_uimm6
    1658             :     auto *N = cast<ConstantSDNode>(Node);
    1659          66 :  return isUInt<6>(N->getZExtValue()); 
    1660             :   }
    1661             :   case 12: { 
    1662             :     // Predicate_imm0_63_neg
    1663             :     auto *N = cast<ConstantSDNode>(Node);
    1664             : 
    1665          21 :   int64_t val = -N->getSExtValue();
    1666          21 :   return val >= 0 && val < 64;
    1667             : 
    1668             :   }
    1669           7 :   case 13: { 
    1670             :     // Predicate_atomic_load_8
    1671             :     // Predicate_atomic_store_8
    1672             :     // Predicate_atomic_load_add_8
    1673             :     // Predicate_atomic_load_sub_8
    1674             :     // Predicate_atomic_load_and_8
    1675             :     // Predicate_atomic_load_or_8
    1676             :     // Predicate_atomic_load_xor_8
    1677             :     SDNode *N = Node;
    1678             : if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i8) return false;
    1679             : return true;
    1680             : 
    1681             :   }
    1682          11 :   case 14: { 
    1683             :     // Predicate_atomic_load_16
    1684             :     // Predicate_atomic_store_16
    1685             :     // Predicate_atomic_load_add_16
    1686             :     // Predicate_atomic_load_sub_16
    1687             :     // Predicate_atomic_load_and_16
    1688             :     // Predicate_atomic_load_or_16
    1689             :     // Predicate_atomic_load_xor_16
    1690             :     SDNode *N = Node;
    1691             : if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i16) return false;
    1692             : return true;
    1693             : 
    1694             :   }
    1695             :   }
    1696             : }
    1697             : #endif // GET_DAGISEL_BODY
    1698             : 
    1699             : #ifdef GET_DAGISEL_DECL
    1700             : bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
    1701             :       SDValue N, unsigned PatternNo,
    1702             :       SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result) override;
    1703             : #endif
    1704             : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
    1705         396 : bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
    1706             :       SDValue N, unsigned PatternNo,
    1707             :       SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)
    1708             : #if DAGISEL_INLINE
    1709             :   override
    1710             : #endif
    1711             : {
    1712         396 :   unsigned NextRes = Result.size();
    1713         396 :   switch (PatternNo) {
    1714           0 :   default: llvm_unreachable("Invalid pattern # in table?");
    1715         396 :   case 0:
    1716         396 :     Result.resize(NextRes+2);
    1717        1188 :   return SelectAddr(Root, N, Result[NextRes+0].first, Result[NextRes+1].first);
    1718             :   }
    1719             : }
    1720             : #endif // GET_DAGISEL_BODY
    1721             : 
    1722             : #ifdef GET_DAGISEL_DECL
    1723             : SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override;
    1724             : #endif
    1725             : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
    1726          51 : SDValue DAGISEL_CLASS_COLONCOLON RunSDNodeXForm(SDValue V, unsigned XFormNo)
    1727             : #if DAGISEL_INLINE
    1728             :   override
    1729             : #endif
    1730             : {
    1731          51 :   switch (XFormNo) {
    1732           0 :   default: llvm_unreachable("Invalid xform # in table?");
    1733          26 :   case 0: {  // ioaddr_XFORM
    1734             :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1735             : 
    1736          52 :   return CurDAG->getTargetConstant(uint8_t(N->getZExtValue()) - 0x20, SDLoc(N), MVT::i8);
    1737             : 
    1738             :   }
    1739           1 :   case 1: {  // iobitpos8_XFORM
    1740             :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1741             : 
    1742           2 :   return CurDAG->getTargetConstant(Log2_32(uint8_t(N->getZExtValue())),
    1743           1 :                                    SDLoc(N), MVT::i8);
    1744             : 
    1745             :   }
    1746           1 :   case 2: {  // iobitposn8_XFORM
    1747             :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1748             : 
    1749           2 :   return CurDAG->getTargetConstant(Log2_32(uint8_t(~N->getZExtValue())),
    1750           1 :                                    SDLoc(N), MVT::i8);
    1751             : 
    1752             :   }
    1753          18 :   case 3: {  // imm16_neg_XFORM
    1754             :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1755             : 
    1756          36 :   return CurDAG->getTargetConstant(-N->getAPIntValue(), SDLoc(N), MVT::i16);
    1757             : 
    1758             :   }
    1759           5 :   case 4: {  // imm8_neg_XFORM
    1760             :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1761             : 
    1762          10 :   return CurDAG->getTargetConstant(-N->getAPIntValue(), SDLoc(N), MVT::i8);
    1763             : 
    1764             :   }
    1765             :   }
    1766             : }
    1767             : #endif // GET_DAGISEL_BODY
    1768             : 
    1769             : 
    1770             : #ifdef DAGISEL_INLINE
    1771             : #undef DAGISEL_INLINE
    1772             : #endif
    1773             : #ifdef DAGISEL_CLASS_COLONCOLON
    1774             : #undef DAGISEL_CLASS_COLONCOLON
    1775             : #endif
    1776             : #ifdef GET_DAGISEL_DECL
    1777             : #undef GET_DAGISEL_DECL
    1778             : #endif
    1779             : #ifdef GET_DAGISEL_BODY
    1780             : #undef GET_DAGISEL_BODY
    1781             : #endif

Generated by: LCOV version 1.13