LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/Lanai - LanaiGenDAGISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 94 100 94.0 %
Date: 2017-09-14 15:23:50 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* DAG Instruction Selector for the Lanai target                              *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : // *** NOTE: This file is #included into the middle of the target
      10             : // *** instruction selector class.  These functions are really methods.
      11             : 
      12             : // The main instruction selector code.
      13             : void SelectCode(SDNode *N) {
      14             :   // Some target values are emitted as 2 bytes, TARGET_VAL handles
      15             :   // this.
      16             :   #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
      17             :   static const unsigned char MatcherTable[] = {
      18             : /*0*/       OPC_SwitchOpcode /*33 cases */, 1|128,2/*257*/, TARGET_VAL(ISD::LOAD),// ->262
      19             : /*5*/         OPC_RecordMemRef,
      20             : /*6*/         OPC_RecordNode, // #0 = 'ld' chained node
      21             : /*7*/         OPC_RecordChild1, // #1 = $src
      22             : /*8*/         OPC_CheckChild1Type, MVT::i32,
      23             : /*10*/        OPC_CheckPredicate, 0, // Predicate_unindexedload
      24             : /*12*/        OPC_CheckType, MVT::i32,
      25             : /*14*/        OPC_Scope, 32, /*->48*/ // 9 children in Scope
      26             : /*16*/          OPC_CheckPredicate, 1, // Predicate_load
      27             : /*18*/          OPC_Scope, 13, /*->33*/ // 2 children in Scope
      28             : /*20*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddrRi:$src #2 #3 #4
      29             : /*23*/            OPC_EmitMergeInputChains1_0,
      30             : /*24*/            OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDW_RI), 0|OPFL_Chain|OPFL_MemRefs,
      31             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      32             :                   // Src: (ld:i32 ADDRri:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 16
      33             :                   // Dst: (LDW_RI:i32 ADDRri:i32:$src)
      34             : /*33*/          /*Scope*/ 13, /*->47*/
      35             : /*34*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectAddrRr:$src #2 #3 #4
      36             : /*37*/            OPC_EmitMergeInputChains1_0,
      37             : /*38*/            OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDW_RR), 0|OPFL_Chain|OPFL_MemRefs,
      38             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      39             :                   // Src: (ld:i32 ADDRrr:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 16
      40             :                   // Dst: (LDW_RR:i32 ADDRrr:i32:$src)
      41             : /*47*/          0, /*End of Scope*/
      42             : /*48*/        /*Scope*/ 52, /*->101*/
      43             : /*49*/          OPC_CheckPredicate, 2, // Predicate_zextload
      44             : /*51*/          OPC_Scope, 15, /*->68*/ // 3 children in Scope
      45             : /*53*/            OPC_CheckPredicate, 3, // Predicate_zextloadi32
      46             : /*55*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectAddrRr:$src #2 #3 #4
      47             : /*58*/            OPC_EmitMergeInputChains1_0,
      48             : /*59*/            OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDWz_RR), 0|OPFL_Chain|OPFL_MemRefs,
      49             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      50             :                   // Src: (ld:i32 ADDRrr:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 16
      51             :                   // Dst: (LDWz_RR:i32 ADDRrr:i32:$src)
      52             : /*68*/          /*Scope*/ 15, /*->84*/
      53             : /*69*/            OPC_CheckPredicate, 4, // Predicate_zextloadi16
      54             : /*71*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectAddrRr:$src #2 #3 #4
      55             : /*74*/            OPC_EmitMergeInputChains1_0,
      56             : /*75*/            OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDHz_RR), 0|OPFL_Chain|OPFL_MemRefs,
      57             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      58             :                   // Src: (ld:i32 ADDRrr:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 16
      59             :                   // Dst: (LDHz_RR:i32 ADDRrr:i32:$src)
      60             : /*84*/          /*Scope*/ 15, /*->100*/
      61             : /*85*/            OPC_CheckPredicate, 5, // Predicate_zextloadi8
      62             : /*87*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectAddrRr:$src #2 #3 #4
      63             : /*90*/            OPC_EmitMergeInputChains1_0,
      64             : /*91*/            OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDBz_RR), 0|OPFL_Chain|OPFL_MemRefs,
      65             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      66             :                   // Src: (ld:i32 ADDRrr:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 16
      67             :                   // Dst: (LDBz_RR:i32 ADDRrr:i32:$src)
      68             : /*100*/         0, /*End of Scope*/
      69             : /*101*/       /*Scope*/ 36, /*->138*/
      70             : /*102*/         OPC_CheckPredicate, 6, // Predicate_sextload
      71             : /*104*/         OPC_Scope, 15, /*->121*/ // 2 children in Scope
      72             : /*106*/           OPC_CheckPredicate, 4, // Predicate_sextloadi16
      73             : /*108*/           OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectAddrRr:$src #2 #3 #4
      74             : /*111*/           OPC_EmitMergeInputChains1_0,
      75             : /*112*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDHs_RR), 0|OPFL_Chain|OPFL_MemRefs,
      76             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      77             :                   // Src: (ld:i32 ADDRrr:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 16
      78             :                   // Dst: (LDHs_RR:i32 ADDRrr:i32:$src)
      79             : /*121*/         /*Scope*/ 15, /*->137*/
      80             : /*122*/           OPC_CheckPredicate, 5, // Predicate_sextloadi8
      81             : /*124*/           OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectAddrRr:$src #2 #3 #4
      82             : /*127*/           OPC_EmitMergeInputChains1_0,
      83             : /*128*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDBs_RR), 0|OPFL_Chain|OPFL_MemRefs,
      84             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      85             :                   // Src: (ld:i32 ADDRrr:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 16
      86             :                   // Dst: (LDBs_RR:i32 ADDRrr:i32:$src)
      87             : /*137*/         0, /*End of Scope*/
      88             : /*138*/       /*Scope*/ 17, /*->156*/
      89             : /*139*/         OPC_CheckPredicate, 2, // Predicate_zextload
      90             : /*141*/         OPC_CheckPredicate, 4, // Predicate_zextloadi16
      91             : /*143*/         OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectAddrSpls:$src #2 #3 #4
      92             : /*146*/         OPC_EmitMergeInputChains1_0,
      93             : /*147*/         OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDHz_RI), 0|OPFL_Chain|OPFL_MemRefs,
      94             :                     MVT::i32, 3/*#Ops*/, 2, 3, 4, 
      95             :                 // Src: (ld:i32 ADDRspls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 16
      96             :                 // Dst: (LDHz_RI:i32 ADDRspls:i32:$src)
      97             : /*156*/       /*Scope*/ 17, /*->174*/
      98             : /*157*/         OPC_CheckPredicate, 6, // Predicate_sextload
      99             : /*159*/         OPC_CheckPredicate, 4, // Predicate_sextloadi16
     100             : /*161*/         OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectAddrSpls:$src #2 #3 #4
     101             : /*164*/         OPC_EmitMergeInputChains1_0,
     102             : /*165*/         OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDHs_RI), 0|OPFL_Chain|OPFL_MemRefs,
     103             :                     MVT::i32, 3/*#Ops*/, 2, 3, 4, 
     104             :                 // Src: (ld:i32 ADDRspls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 16
     105             :                 // Dst: (LDHs_RI:i32 ADDRspls:i32:$src)
     106             : /*174*/       /*Scope*/ 17, /*->192*/
     107             : /*175*/         OPC_CheckPredicate, 2, // Predicate_zextload
     108             : /*177*/         OPC_CheckPredicate, 5, // Predicate_zextloadi8
     109             : /*179*/         OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectAddrSpls:$src #2 #3 #4
     110             : /*182*/         OPC_EmitMergeInputChains1_0,
     111             : /*183*/         OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDBz_RI), 0|OPFL_Chain|OPFL_MemRefs,
     112             :                     MVT::i32, 3/*#Ops*/, 2, 3, 4, 
     113             :                 // Src: (ld:i32 ADDRspls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 16
     114             :                 // Dst: (LDBz_RI:i32 ADDRspls:i32:$src)
     115             : /*192*/       /*Scope*/ 17, /*->210*/
     116             : /*193*/         OPC_CheckPredicate, 6, // Predicate_sextload
     117             : /*195*/         OPC_CheckPredicate, 5, // Predicate_sextloadi8
     118             : /*197*/         OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectAddrSpls:$src #2 #3 #4
     119             : /*200*/         OPC_EmitMergeInputChains1_0,
     120             : /*201*/         OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDBs_RI), 0|OPFL_Chain|OPFL_MemRefs,
     121             :                     MVT::i32, 3/*#Ops*/, 2, 3, 4, 
     122             :                 // Src: (ld:i32 ADDRspls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 16
     123             :                 // Dst: (LDBs_RI:i32 ADDRspls:i32:$src)
     124             : /*210*/       /*Scope*/ 36, /*->247*/
     125             : /*211*/         OPC_CheckPredicate, 7, // Predicate_extload
     126             : /*213*/         OPC_Scope, 15, /*->230*/ // 2 children in Scope
     127             : /*215*/           OPC_CheckPredicate, 5, // Predicate_extloadi8
     128             : /*217*/           OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectAddrSpls:$src #2 #3 #4
     129             : /*220*/           OPC_EmitMergeInputChains1_0,
     130             : /*221*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDBz_RI), 0|OPFL_Chain|OPFL_MemRefs,
     131             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
     132             :                   // Src: (ld:i32 ADDRspls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 16
     133             :                   // Dst: (LDBz_RI:i32 ADDRspls:i32:$src)
     134             : /*230*/         /*Scope*/ 15, /*->246*/
     135             : /*231*/           OPC_CheckPredicate, 4, // Predicate_extloadi16
     136             : /*233*/           OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectAddrSpls:$src #2 #3 #4
     137             : /*236*/           OPC_EmitMergeInputChains1_0,
     138             : /*237*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDHz_RI), 0|OPFL_Chain|OPFL_MemRefs,
     139             :                       MVT::i32, 3/*#Ops*/, 2, 3, 4, 
     140             :                   // Src: (ld:i32 ADDRspls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 16
     141             :                   // Dst: (LDHz_RI:i32 ADDRspls:i32:$src)
     142             : /*246*/         0, /*End of Scope*/
     143             : /*247*/       /*Scope*/ 13, /*->261*/
     144             : /*248*/         OPC_CheckPredicate, 1, // Predicate_load
     145             : /*250*/         OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectAddrSls:$src #2
     146             : /*253*/         OPC_EmitMergeInputChains1_0,
     147             : /*254*/         OPC_MorphNodeTo1, TARGET_VAL(Lanai::LDADDR), 0|OPFL_Chain|OPFL_MemRefs,
     148             :                     MVT::i32, 1/*#Ops*/, 2, 
     149             :                 // Src: (ld:i32 ADDRsls:i32:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
     150             :                 // Dst: (LDADDR:i32 ADDRsls:i32:$src)
     151             : /*261*/       0, /*End of Scope*/
     152             : /*262*/     /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::STORE),// ->394
     153             : /*266*/       OPC_RecordMemRef,
     154             : /*267*/       OPC_RecordNode, // #0 = 'st' chained node
     155             : /*268*/       OPC_RecordChild1, // #1 = $Rd
     156             : /*269*/       OPC_CheckChild1Type, MVT::i32,
     157             : /*271*/       OPC_RecordChild2, // #2 = $dst
     158             : /*272*/       OPC_CheckChild2Type, MVT::i32,
     159             : /*274*/       OPC_CheckPredicate, 8, // Predicate_unindexedstore
     160             : /*276*/       OPC_Scope, 32, /*->310*/ // 3 children in Scope
     161             : /*278*/         OPC_CheckPredicate, 9, // Predicate_store
     162             : /*280*/         OPC_Scope, 13, /*->295*/ // 2 children in Scope
     163             : /*282*/           OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectAddrRr:$dst #3 #4 #5
     164             : /*285*/           OPC_EmitMergeInputChains1_0,
     165             : /*286*/           OPC_MorphNodeTo0, TARGET_VAL(Lanai::SW_RR), 0|OPFL_Chain|OPFL_MemRefs,
     166             :                       4/*#Ops*/, 1, 3, 4, 5, 
     167             :                   // Src: (st GPR:i32:$Rd, ADDRrr:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 16
     168             :                   // Dst: (SW_RR GPR:i32:$Rd, ADDRrr:i32:$dst)
     169             : /*295*/         /*Scope*/ 13, /*->309*/
     170             : /*296*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddrRi:$dst #3 #4 #5
     171             : /*299*/           OPC_EmitMergeInputChains1_0,
     172             : /*300*/           OPC_MorphNodeTo0, TARGET_VAL(Lanai::SW_RI), 0|OPFL_Chain|OPFL_MemRefs,
     173             :                       4/*#Ops*/, 1, 3, 4, 5, 
     174             :                   // Src: (st GPR:i32:$Rd, ADDRri:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 16
     175             :                   // Dst: (SW_RI GPR:i32:$Rd, ADDRri:i32:$dst)
     176             : /*309*/         0, /*End of Scope*/
     177             : /*310*/       /*Scope*/ 68, /*->379*/
     178             : /*311*/         OPC_CheckPredicate, 10, // Predicate_truncstore
     179             : /*313*/         OPC_Scope, 15, /*->330*/ // 4 children in Scope
     180             : /*315*/           OPC_CheckPredicate, 11, // Predicate_truncstorei16
     181             : /*317*/           OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectAddrRr:$dst #3 #4 #5
     182             : /*320*/           OPC_EmitMergeInputChains1_0,
     183             : /*321*/           OPC_MorphNodeTo0, TARGET_VAL(Lanai::STH_RR), 0|OPFL_Chain|OPFL_MemRefs,
     184             :                       4/*#Ops*/, 1, 3, 4, 5, 
     185             :                   // Src: (st GPR:i32:$Rd, ADDRrr:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 16
     186             :                   // Dst: (STH_RR GPR:i32:$Rd, ADDRrr:i32:$dst)
     187             : /*330*/         /*Scope*/ 15, /*->346*/
     188             : /*331*/           OPC_CheckPredicate, 12, // Predicate_truncstorei8
     189             : /*333*/           OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectAddrRr:$dst #3 #4 #5
     190             : /*336*/           OPC_EmitMergeInputChains1_0,
     191             : /*337*/           OPC_MorphNodeTo0, TARGET_VAL(Lanai::STB_RR), 0|OPFL_Chain|OPFL_MemRefs,
     192             :                       4/*#Ops*/, 1, 3, 4, 5, 
     193             :                   // Src: (st GPR:i32:$Rd, ADDRrr:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 16
     194             :                   // Dst: (STB_RR GPR:i32:$Rd, ADDRrr:i32:$dst)
     195             : /*346*/         /*Scope*/ 15, /*->362*/
     196             : /*347*/           OPC_CheckPredicate, 11, // Predicate_truncstorei16
     197             : /*349*/           OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectAddrSpls:$dst #3 #4 #5
     198             : /*352*/           OPC_EmitMergeInputChains1_0,
     199             : /*353*/           OPC_MorphNodeTo0, TARGET_VAL(Lanai::STH_RI), 0|OPFL_Chain|OPFL_MemRefs,
     200             :                       4/*#Ops*/, 1, 3, 4, 5, 
     201             :                   // Src: (st GPR:i32:$Rd, ADDRspls:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 16
     202             :                   // Dst: (STH_RI GPR:i32:$Rd, ADDRspls:i32:$dst)
     203             : /*362*/         /*Scope*/ 15, /*->378*/
     204             : /*363*/           OPC_CheckPredicate, 12, // Predicate_truncstorei8
     205             : /*365*/           OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectAddrSpls:$dst #3 #4 #5
     206             : /*368*/           OPC_EmitMergeInputChains1_0,
     207             : /*369*/           OPC_MorphNodeTo0, TARGET_VAL(Lanai::STB_RI), 0|OPFL_Chain|OPFL_MemRefs,
     208             :                       4/*#Ops*/, 1, 3, 4, 5, 
     209             :                   // Src: (st GPR:i32:$Rd, ADDRspls:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 16
     210             :                   // Dst: (STB_RI GPR:i32:$Rd, ADDRspls:i32:$dst)
     211             : /*378*/         0, /*End of Scope*/
     212             : /*379*/       /*Scope*/ 13, /*->393*/
     213             : /*380*/         OPC_CheckPredicate, 9, // Predicate_store
     214             : /*382*/         OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectAddrSls:$dst #3
     215             : /*385*/         OPC_EmitMergeInputChains1_0,
     216             : /*386*/         OPC_MorphNodeTo0, TARGET_VAL(Lanai::STADDR), 0|OPFL_Chain|OPFL_MemRefs,
     217             :                     2/*#Ops*/, 1, 3, 
     218             :                 // Src: (st GPR:i32:$Rd, ADDRsls:i32:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
     219             :                 // Dst: (STADDR GPR:i32:$Rd, ADDRsls:i32:$dst)
     220             : /*393*/       0, /*End of Scope*/
     221             : /*394*/     /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_START),// ->419
     222             : /*397*/       OPC_RecordNode, // #0 = 'CallSeqStart' chained node
     223             : /*398*/       OPC_RecordChild1, // #1 = $amt1
     224             : /*399*/       OPC_MoveChild1,
     225             : /*400*/       OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     226             : /*403*/       OPC_MoveParent,
     227             : /*404*/       OPC_RecordChild2, // #2 = $amt2
     228             : /*405*/       OPC_MoveChild2,
     229             : /*406*/       OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     230             : /*409*/       OPC_MoveParent,
     231             : /*410*/       OPC_EmitMergeInputChains1_0,
     232             : /*411*/       OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
     233             :                   MVT::i32, 2/*#Ops*/, 1, 2, 
     234             :               // Src: (CallSeqStart (timm:i32):$amt1, (timm:i32):$amt2) - Complexity = 9
     235             :               // Dst: (ADJCALLSTACKDOWN:i32 (timm:i32):$amt1, (timm:i32):$amt2)
     236             : /*419*/     /*SwitchOpcode*/ 23, TARGET_VAL(ISD::CALLSEQ_END),// ->445
     237             : /*422*/       OPC_RecordNode, // #0 = 'CallSeqEnd' chained node
     238             : /*423*/       OPC_CaptureGlueInput,
     239             : /*424*/       OPC_RecordChild1, // #1 = $amt1
     240             : /*425*/       OPC_MoveChild1,
     241             : /*426*/       OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     242             : /*429*/       OPC_MoveParent,
     243             : /*430*/       OPC_RecordChild2, // #2 = $amt2
     244             : /*431*/       OPC_MoveChild2,
     245             : /*432*/       OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     246             : /*435*/       OPC_MoveParent,
     247             : /*436*/       OPC_EmitMergeInputChains1_0,
     248             : /*437*/       OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     249             :                   MVT::i32, 2/*#Ops*/, 1, 2, 
     250             :               // Src: (CallSeqEnd (timm:i32):$amt1, (timm:i32):$amt2) - Complexity = 9
     251             :               // Dst: (ADJCALLSTACKUP:i32 (timm:i32):$amt1, (timm:i32):$amt2)
     252             : /*445*/     /*SwitchOpcode*/ 94|128,2/*350*/, TARGET_VAL(ISD::OR),// ->799
     253             : /*449*/       OPC_Scope, 30|128,1/*158*/, /*->610*/ // 3 children in Scope
     254             : /*452*/         OPC_RecordChild0, // #0 = $hi
     255             : /*453*/         OPC_MoveChild1,
     256             : /*454*/         OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(LanaiISD::LO),// ->527
     257             : /*458*/           OPC_RecordChild0, // #1 = $lo
     258             : /*459*/           OPC_MoveChild0,
     259             : /*460*/           OPC_SwitchOpcode /*5 cases */, 10, TARGET_VAL(ISD::TargetGlobalAddress),// ->474
     260             : /*464*/             OPC_MoveParent,
     261             : /*465*/             OPC_MoveParent,
     262             : /*466*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     263             :                         MVT::i32, 2/*#Ops*/, 0, 1, 
     264             :                     // Src: (or:i32 GPR:i32:$hi, (LanaiLo:i32 (tglobaladdr:i32):$lo)) - Complexity = 9
     265             :                     // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tglobaladdr:i32):$lo)
     266             : /*474*/           /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetExternalSymbol),// ->487
     267             : /*477*/             OPC_MoveParent,
     268             : /*478*/             OPC_MoveParent,
     269             : /*479*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     270             :                         MVT::i32, 2/*#Ops*/, 0, 1, 
     271             :                     // Src: (or:i32 GPR:i32:$hi, (LanaiLo:i32 (texternalsym:i32):$lo)) - Complexity = 9
     272             :                     // Dst: (OR_I_LO:i32 GPR:i32:$hi, (texternalsym:i32):$lo)
     273             : /*487*/           /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetBlockAddress),// ->500
     274             : /*490*/             OPC_MoveParent,
     275             : /*491*/             OPC_MoveParent,
     276             : /*492*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     277             :                         MVT::i32, 2/*#Ops*/, 0, 1, 
     278             :                     // Src: (or:i32 GPR:i32:$hi, (LanaiLo:i32 (tblockaddress:i32):$lo)) - Complexity = 9
     279             :                     // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tblockaddress:i32):$lo)
     280             : /*500*/           /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetJumpTable),// ->513
     281             : /*503*/             OPC_MoveParent,
     282             : /*504*/             OPC_MoveParent,
     283             : /*505*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     284             :                         MVT::i32, 2/*#Ops*/, 0, 1, 
     285             :                     // Src: (or:i32 GPR:i32:$hi, (LanaiLo:i32 (tjumptable:i32):$lo)) - Complexity = 9
     286             :                     // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tjumptable:i32):$lo)
     287             : /*513*/           /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetConstantPool),// ->526
     288             : /*516*/             OPC_MoveParent,
     289             : /*517*/             OPC_MoveParent,
     290             : /*518*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     291             :                         MVT::i32, 2/*#Ops*/, 0, 1, 
     292             :                     // Src: (or:i32 GPR:i32:$hi, (LanaiLo:i32 (tconstpool:i32):$lo)) - Complexity = 9
     293             :                     // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tconstpool:i32):$lo)
     294             : /*526*/           0, // EndSwitchOpcode
     295             : /*527*/         /*SwitchOpcode*/ 79, TARGET_VAL(LanaiISD::SMALL),// ->609
     296             : /*530*/           OPC_RecordChild0, // #1 = $small
     297             : /*531*/           OPC_MoveChild0,
     298             : /*532*/           OPC_SwitchOpcode /*5 cases */, 12, TARGET_VAL(ISD::TargetGlobalAddress),// ->548
     299             : /*536*/             OPC_MoveParent,
     300             : /*537*/             OPC_MoveParent,
     301             : /*538*/             OPC_EmitCopyToReg, 0, Lanai::R0,
     302             : /*541*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0|OPFL_GlueInput,
     303             :                         MVT::i32, 1/*#Ops*/, 1, 
     304             :                     // Src: (or:i32 R0:i32, (LanaiSmall:i32 (tglobaladdr:i32):$small)) - Complexity = 9
     305             :                     // Dst: (SLI:i32 (tglobaladdr:i32):$small)
     306             : /*548*/           /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetExternalSymbol),// ->563
     307             : /*551*/             OPC_MoveParent,
     308             : /*552*/             OPC_MoveParent,
     309             : /*553*/             OPC_EmitCopyToReg, 0, Lanai::R0,
     310             : /*556*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0|OPFL_GlueInput,
     311             :                         MVT::i32, 1/*#Ops*/, 1, 
     312             :                     // Src: (or:i32 R0:i32, (LanaiSmall:i32 (texternalsym:i32):$small)) - Complexity = 9
     313             :                     // Dst: (SLI:i32 (texternalsym:i32):$small)
     314             : /*563*/           /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetBlockAddress),// ->578
     315             : /*566*/             OPC_MoveParent,
     316             : /*567*/             OPC_MoveParent,
     317             : /*568*/             OPC_EmitCopyToReg, 0, Lanai::R0,
     318             : /*571*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0|OPFL_GlueInput,
     319             :                         MVT::i32, 1/*#Ops*/, 1, 
     320             :                     // Src: (or:i32 R0:i32, (LanaiSmall:i32 (tblockaddress:i32):$small)) - Complexity = 9
     321             :                     // Dst: (SLI:i32 (tblockaddress:i32):$small)
     322             : /*578*/           /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetJumpTable),// ->593
     323             : /*581*/             OPC_MoveParent,
     324             : /*582*/             OPC_MoveParent,
     325             : /*583*/             OPC_EmitCopyToReg, 0, Lanai::R0,
     326             : /*586*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0|OPFL_GlueInput,
     327             :                         MVT::i32, 1/*#Ops*/, 1, 
     328             :                     // Src: (or:i32 R0:i32, (LanaiSmall:i32 (tjumptable:i32):$small)) - Complexity = 9
     329             :                     // Dst: (SLI:i32 (tjumptable:i32):$small)
     330             : /*593*/           /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetConstantPool),// ->608
     331             : /*596*/             OPC_MoveParent,
     332             : /*597*/             OPC_MoveParent,
     333             : /*598*/             OPC_EmitCopyToReg, 0, Lanai::R0,
     334             : /*601*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0|OPFL_GlueInput,
     335             :                         MVT::i32, 1/*#Ops*/, 1, 
     336             :                     // Src: (or:i32 R0:i32, (LanaiSmall:i32 (tconstpool:i32):$small)) - Complexity = 9
     337             :                     // Dst: (SLI:i32 (tconstpool:i32):$small)
     338             : /*608*/           0, // EndSwitchOpcode
     339             : /*609*/         0, // EndSwitchOpcode
     340             : /*610*/       /*Scope*/ 78, /*->689*/
     341             : /*611*/         OPC_MoveChild0,
     342             : /*612*/         OPC_CheckOpcode, TARGET_VAL(LanaiISD::LO),
     343             : /*615*/         OPC_RecordChild0, // #0 = $lo
     344             : /*616*/         OPC_MoveChild0,
     345             : /*617*/         OPC_SwitchOpcode /*5 cases */, 11, TARGET_VAL(ISD::TargetGlobalAddress),// ->632
     346             : /*621*/           OPC_MoveParent,
     347             : /*622*/           OPC_MoveParent,
     348             : /*623*/           OPC_RecordChild1, // #1 = $hi
     349             : /*624*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     350             :                       MVT::i32, 2/*#Ops*/, 1, 0, 
     351             :                   // Src: (or:i32 (LanaiLo:i32 (tglobaladdr:i32):$lo), GPR:i32:$hi) - Complexity = 9
     352             :                   // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tglobaladdr:i32):$lo)
     353             : /*632*/         /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TargetExternalSymbol),// ->646
     354             : /*635*/           OPC_MoveParent,
     355             : /*636*/           OPC_MoveParent,
     356             : /*637*/           OPC_RecordChild1, // #1 = $hi
     357             : /*638*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     358             :                       MVT::i32, 2/*#Ops*/, 1, 0, 
     359             :                   // Src: (or:i32 (LanaiLo:i32 (texternalsym:i32):$lo), GPR:i32:$hi) - Complexity = 9
     360             :                   // Dst: (OR_I_LO:i32 GPR:i32:$hi, (texternalsym:i32):$lo)
     361             : /*646*/         /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TargetBlockAddress),// ->660
     362             : /*649*/           OPC_MoveParent,
     363             : /*650*/           OPC_MoveParent,
     364             : /*651*/           OPC_RecordChild1, // #1 = $hi
     365             : /*652*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     366             :                       MVT::i32, 2/*#Ops*/, 1, 0, 
     367             :                   // Src: (or:i32 (LanaiLo:i32 (tblockaddress:i32):$lo), GPR:i32:$hi) - Complexity = 9
     368             :                   // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tblockaddress:i32):$lo)
     369             : /*660*/         /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TargetJumpTable),// ->674
     370             : /*663*/           OPC_MoveParent,
     371             : /*664*/           OPC_MoveParent,
     372             : /*665*/           OPC_RecordChild1, // #1 = $hi
     373             : /*666*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     374             :                       MVT::i32, 2/*#Ops*/, 1, 0, 
     375             :                   // Src: (or:i32 (LanaiLo:i32 (tjumptable:i32):$lo), GPR:i32:$hi) - Complexity = 9
     376             :                   // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tjumptable:i32):$lo)
     377             : /*674*/         /*SwitchOpcode*/ 11, TARGET_VAL(ISD::TargetConstantPool),// ->688
     378             : /*677*/           OPC_MoveParent,
     379             : /*678*/           OPC_MoveParent,
     380             : /*679*/           OPC_RecordChild1, // #1 = $hi
     381             : /*680*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     382             :                       MVT::i32, 2/*#Ops*/, 1, 0, 
     383             :                   // Src: (or:i32 (LanaiLo:i32 (tconstpool:i32):$lo), GPR:i32:$hi) - Complexity = 9
     384             :                   // Dst: (OR_I_LO:i32 GPR:i32:$hi, (tconstpool:i32):$lo)
     385             : /*688*/         0, // EndSwitchOpcode
     386             : /*689*/       /*Scope*/ 108, /*->798*/
     387             : /*690*/         OPC_RecordChild0, // #0 = $Rs1
     388             : /*691*/         OPC_RecordChild1, // #1 = $imm16
     389             : /*692*/         OPC_Scope, 76, /*->770*/ // 2 children in Scope
     390             : /*694*/           OPC_MoveChild1,
     391             : /*695*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     392             : /*698*/           OPC_Scope, 16, /*->716*/ // 4 children in Scope
     393             : /*700*/             OPC_CheckPredicate, 13, // Predicate_i32lo16z
     394             : /*702*/             OPC_MoveParent,
     395             : /*703*/             OPC_EmitConvertToTarget, 1,
     396             : /*705*/             OPC_EmitNodeXForm, 0, 2, // LO16
     397             : /*708*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
     398             :                         MVT::i32, 2/*#Ops*/, 0, 3, 
     399             :                     // Src: (or:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm16) - Complexity = 7
     400             :                     // Dst: (OR_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     401             : /*716*/           /*Scope*/ 16, /*->733*/
     402             : /*717*/             OPC_CheckPredicate, 14, // Predicate_i32hi16
     403             : /*719*/             OPC_MoveParent,
     404             : /*720*/             OPC_EmitConvertToTarget, 1,
     405             : /*722*/             OPC_EmitNodeXForm, 1, 2, // HI16
     406             : /*725*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_HI), 0,
     407             :                         MVT::i32, 2/*#Ops*/, 0, 3, 
     408             :                     // Src: (or:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm16) - Complexity = 7
     409             :                     // Dst: (OR_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     410             : /*733*/           /*Scope*/ 17, /*->751*/
     411             : /*734*/             OPC_CheckPredicate, 13, // Predicate_i32lo16z
     412             : /*736*/             OPC_MoveParent,
     413             : /*737*/             OPC_EmitConvertToTarget, 1,
     414             : /*739*/             OPC_EmitNodeXForm, 0, 2, // LO16
     415             : /*742*/             OPC_MorphNodeTo2, TARGET_VAL(Lanai::OR_F_I_LO), 0,
     416             :                         MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     417             :                     // Src: (or:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm16) - Complexity = 7
     418             :                     // Dst: (OR_F_I_LO:i32:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     419             : /*751*/           /*Scope*/ 17, /*->769*/
     420             : /*752*/             OPC_CheckPredicate, 14, // Predicate_i32hi16
     421             : /*754*/             OPC_MoveParent,
     422             : /*755*/             OPC_EmitConvertToTarget, 1,
     423             : /*757*/             OPC_EmitNodeXForm, 1, 2, // HI16
     424             : /*760*/             OPC_MorphNodeTo2, TARGET_VAL(Lanai::OR_F_I_HI), 0,
     425             :                         MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     426             :                     // Src: (or:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm16) - Complexity = 7
     427             :                     // Dst: (OR_F_I_HI:i32:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     428             : /*769*/           0, /*End of Scope*/
     429             : /*770*/         /*Scope*/ 26, /*->797*/
     430             : /*771*/           OPC_EmitInteger, MVT::i32, 0, 
     431             : /*774*/           OPC_Scope, 9, /*->785*/ // 2 children in Scope
     432             : /*776*/             OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_R), 0,
     433             :                         MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     434             :                     // Src: (or:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     435             :                     // Dst: (OR_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     436             : /*785*/           /*Scope*/ 10, /*->796*/
     437             : /*786*/             OPC_MorphNodeTo2, TARGET_VAL(Lanai::OR_F_R), 0,
     438             :                         MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     439             :                     // Src: (or:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     440             :                     // Dst: (OR_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     441             : /*796*/           0, /*End of Scope*/
     442             : /*797*/         0, /*End of Scope*/
     443             : /*798*/       0, /*End of Scope*/
     444             : /*799*/     /*SwitchOpcode*/ 108, TARGET_VAL(ISD::AND),// ->910
     445             : /*802*/       OPC_RecordChild0, // #0 = $Rs1
     446             : /*803*/       OPC_RecordChild1, // #1 = $imm16
     447             : /*804*/       OPC_Scope, 76, /*->882*/ // 2 children in Scope
     448             : /*806*/         OPC_MoveChild1,
     449             : /*807*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     450             : /*810*/         OPC_Scope, 16, /*->828*/ // 4 children in Scope
     451             : /*812*/           OPC_CheckPredicate, 15, // Predicate_i32lo16and
     452             : /*814*/           OPC_MoveParent,
     453             : /*815*/           OPC_EmitConvertToTarget, 1,
     454             : /*817*/           OPC_EmitNodeXForm, 0, 2, // LO16
     455             : /*820*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::AND_I_LO), 0,
     456             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     457             :                   // Src: (and:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16and>><<X:LO16>>:$imm16) - Complexity = 7
     458             :                   // Dst: (AND_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     459             : /*828*/         /*Scope*/ 16, /*->845*/
     460             : /*829*/           OPC_CheckPredicate, 16, // Predicate_i32hi16and
     461             : /*831*/           OPC_MoveParent,
     462             : /*832*/           OPC_EmitConvertToTarget, 1,
     463             : /*834*/           OPC_EmitNodeXForm, 1, 2, // HI16
     464             : /*837*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::AND_I_HI), 0,
     465             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     466             :                   // Src: (and:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16and>><<X:HI16>>:$imm16) - Complexity = 7
     467             :                   // Dst: (AND_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     468             : /*845*/         /*Scope*/ 17, /*->863*/
     469             : /*846*/           OPC_CheckPredicate, 15, // Predicate_i32lo16and
     470             : /*848*/           OPC_MoveParent,
     471             : /*849*/           OPC_EmitConvertToTarget, 1,
     472             : /*851*/           OPC_EmitNodeXForm, 0, 2, // LO16
     473             : /*854*/           OPC_MorphNodeTo2, TARGET_VAL(Lanai::AND_F_I_LO), 0,
     474             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     475             :                   // Src: (and:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16and>><<X:LO16>>:$imm16) - Complexity = 7
     476             :                   // Dst: (AND_F_I_LO:i32:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     477             : /*863*/         /*Scope*/ 17, /*->881*/
     478             : /*864*/           OPC_CheckPredicate, 16, // Predicate_i32hi16and
     479             : /*866*/           OPC_MoveParent,
     480             : /*867*/           OPC_EmitConvertToTarget, 1,
     481             : /*869*/           OPC_EmitNodeXForm, 1, 2, // HI16
     482             : /*872*/           OPC_MorphNodeTo2, TARGET_VAL(Lanai::AND_F_I_HI), 0,
     483             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     484             :                   // Src: (and:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16and>><<X:HI16>>:$imm16) - Complexity = 7
     485             :                   // Dst: (AND_F_I_HI:i32:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     486             : /*881*/         0, /*End of Scope*/
     487             : /*882*/       /*Scope*/ 26, /*->909*/
     488             : /*883*/         OPC_EmitInteger, MVT::i32, 0, 
     489             : /*886*/         OPC_Scope, 9, /*->897*/ // 2 children in Scope
     490             : /*888*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::AND_R), 0,
     491             :                       MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     492             :                   // Src: (and:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     493             :                   // Dst: (AND_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     494             : /*897*/         /*Scope*/ 10, /*->908*/
     495             : /*898*/           OPC_MorphNodeTo2, TARGET_VAL(Lanai::AND_F_R), 0,
     496             :                       MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     497             :                   // Src: (and:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     498             :                   // Dst: (AND_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     499             : /*908*/         0, /*End of Scope*/
     500             : /*909*/       0, /*End of Scope*/
     501             : /*910*/     /*SwitchOpcode*/ 108, TARGET_VAL(ISD::XOR),// ->1021
     502             : /*913*/       OPC_RecordChild0, // #0 = $Rs1
     503             : /*914*/       OPC_RecordChild1, // #1 = $imm16
     504             : /*915*/       OPC_Scope, 76, /*->993*/ // 2 children in Scope
     505             : /*917*/         OPC_MoveChild1,
     506             : /*918*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     507             : /*921*/         OPC_Scope, 16, /*->939*/ // 4 children in Scope
     508             : /*923*/           OPC_CheckPredicate, 13, // Predicate_i32lo16z
     509             : /*925*/           OPC_MoveParent,
     510             : /*926*/           OPC_EmitConvertToTarget, 1,
     511             : /*928*/           OPC_EmitNodeXForm, 0, 2, // LO16
     512             : /*931*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::XOR_I_LO), 0,
     513             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     514             :                   // Src: (xor:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm16) - Complexity = 7
     515             :                   // Dst: (XOR_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     516             : /*939*/         /*Scope*/ 16, /*->956*/
     517             : /*940*/           OPC_CheckPredicate, 14, // Predicate_i32hi16
     518             : /*942*/           OPC_MoveParent,
     519             : /*943*/           OPC_EmitConvertToTarget, 1,
     520             : /*945*/           OPC_EmitNodeXForm, 1, 2, // HI16
     521             : /*948*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::XOR_I_HI), 0,
     522             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     523             :                   // Src: (xor:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm16) - Complexity = 7
     524             :                   // Dst: (XOR_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     525             : /*956*/         /*Scope*/ 17, /*->974*/
     526             : /*957*/           OPC_CheckPredicate, 13, // Predicate_i32lo16z
     527             : /*959*/           OPC_MoveParent,
     528             : /*960*/           OPC_EmitConvertToTarget, 1,
     529             : /*962*/           OPC_EmitNodeXForm, 0, 2, // LO16
     530             : /*965*/           OPC_MorphNodeTo2, TARGET_VAL(Lanai::XOR_F_I_LO), 0,
     531             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     532             :                   // Src: (xor:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm16) - Complexity = 7
     533             :                   // Dst: (XOR_F_I_LO:i32:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     534             : /*974*/         /*Scope*/ 17, /*->992*/
     535             : /*975*/           OPC_CheckPredicate, 14, // Predicate_i32hi16
     536             : /*977*/           OPC_MoveParent,
     537             : /*978*/           OPC_EmitConvertToTarget, 1,
     538             : /*980*/           OPC_EmitNodeXForm, 1, 2, // HI16
     539             : /*983*/           OPC_MorphNodeTo2, TARGET_VAL(Lanai::XOR_F_I_HI), 0,
     540             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     541             :                   // Src: (xor:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm16) - Complexity = 7
     542             :                   // Dst: (XOR_F_I_HI:i32:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     543             : /*992*/         0, /*End of Scope*/
     544             : /*993*/       /*Scope*/ 26, /*->1020*/
     545             : /*994*/         OPC_EmitInteger, MVT::i32, 0, 
     546             : /*997*/         OPC_Scope, 9, /*->1008*/ // 2 children in Scope
     547             : /*999*/           OPC_MorphNodeTo1, TARGET_VAL(Lanai::XOR_R), 0,
     548             :                       MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     549             :                   // Src: (xor:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     550             :                   // Dst: (XOR_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     551             : /*1008*/        /*Scope*/ 10, /*->1019*/
     552             : /*1009*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::XOR_F_R), 0,
     553             :                       MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     554             :                   // Src: (xor:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     555             :                   // Dst: (XOR_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     556             : /*1019*/        0, /*End of Scope*/
     557             : /*1020*/      0, /*End of Scope*/
     558             : /*1021*/    /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ADD),// ->1097
     559             : /*1024*/      OPC_RecordChild0, // #0 = $Rs1
     560             : /*1025*/      OPC_RecordChild1, // #1 = $imm
     561             : /*1026*/      OPC_Scope, 55, /*->1083*/ // 2 children in Scope
     562             : /*1028*/        OPC_MoveChild1,
     563             : /*1029*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     564             : /*1032*/        OPC_Scope, 16, /*->1050*/ // 3 children in Scope
     565             : /*1034*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     566             : /*1036*/          OPC_MoveParent,
     567             : /*1037*/          OPC_EmitConvertToTarget, 1,
     568             : /*1039*/          OPC_EmitNodeXForm, 0, 2, // LO16
     569             : /*1042*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADD_I_LO), 0,
     570             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     571             :                   // Src: (add:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     572             :                   // Dst: (ADD_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     573             : /*1050*/        /*Scope*/ 16, /*->1067*/
     574             : /*1051*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     575             : /*1053*/          OPC_MoveParent,
     576             : /*1054*/          OPC_EmitConvertToTarget, 1,
     577             : /*1056*/          OPC_EmitNodeXForm, 1, 2, // HI16
     578             : /*1059*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADD_I_HI), 0,
     579             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     580             :                   // Src: (add:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     581             :                   // Dst: (ADD_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     582             : /*1067*/        /*Scope*/ 14, /*->1082*/
     583             : /*1068*/          OPC_CheckPredicate, 17, // Predicate_i32neg16
     584             : /*1070*/          OPC_MoveParent,
     585             : /*1071*/          OPC_EmitNodeXForm, 2, 1, // NEG
     586             : /*1074*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUB_I_LO), 0,
     587             :                       MVT::i32, 2/*#Ops*/, 0, 2, 
     588             :                   // Src: (add:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32neg16>><<X:LO16>>:$imm) - Complexity = 7
     589             :                   // Dst: (SUB_I_LO:i32 GPR:i32:$Rs1, (NEG:i32 ?:i32:$imm))
     590             : /*1082*/        0, /*End of Scope*/
     591             : /*1083*/      /*Scope*/ 12, /*->1096*/
     592             : /*1084*/        OPC_EmitInteger, MVT::i32, 0, 
     593             : /*1087*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADD_R), 0,
     594             :                     MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     595             :                 // Src: (add:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     596             :                 // Dst: (ADD_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     597             : /*1096*/      0, /*End of Scope*/
     598             : /*1097*/    /*SwitchOpcode*/ 73, TARGET_VAL(ISD::SUB),// ->1173
     599             : /*1100*/      OPC_RecordChild0, // #0 = $Rs1
     600             : /*1101*/      OPC_RecordChild1, // #1 = $imm
     601             : /*1102*/      OPC_Scope, 55, /*->1159*/ // 2 children in Scope
     602             : /*1104*/        OPC_MoveChild1,
     603             : /*1105*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     604             : /*1108*/        OPC_Scope, 16, /*->1126*/ // 3 children in Scope
     605             : /*1110*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     606             : /*1112*/          OPC_MoveParent,
     607             : /*1113*/          OPC_EmitConvertToTarget, 1,
     608             : /*1115*/          OPC_EmitNodeXForm, 0, 2, // LO16
     609             : /*1118*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUB_I_LO), 0,
     610             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     611             :                   // Src: (sub:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     612             :                   // Dst: (SUB_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     613             : /*1126*/        /*Scope*/ 16, /*->1143*/
     614             : /*1127*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     615             : /*1129*/          OPC_MoveParent,
     616             : /*1130*/          OPC_EmitConvertToTarget, 1,
     617             : /*1132*/          OPC_EmitNodeXForm, 1, 2, // HI16
     618             : /*1135*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUB_I_HI), 0,
     619             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     620             :                   // Src: (sub:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     621             :                   // Dst: (SUB_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     622             : /*1143*/        /*Scope*/ 14, /*->1158*/
     623             : /*1144*/          OPC_CheckPredicate, 17, // Predicate_i32neg16
     624             : /*1146*/          OPC_MoveParent,
     625             : /*1147*/          OPC_EmitNodeXForm, 2, 1, // NEG
     626             : /*1150*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADD_I_LO), 0,
     627             :                       MVT::i32, 2/*#Ops*/, 0, 2, 
     628             :                   // Src: (sub:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32neg16>><<X:LO16>>:$imm) - Complexity = 7
     629             :                   // Dst: (ADD_I_LO:i32 GPR:i32:$Rs1, (NEG:i32 ?:i32:$imm))
     630             : /*1158*/        0, /*End of Scope*/
     631             : /*1159*/      /*Scope*/ 12, /*->1172*/
     632             : /*1160*/        OPC_EmitInteger, MVT::i32, 0, 
     633             : /*1163*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUB_R), 0,
     634             :                     MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     635             :                 // Src: (sub:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     636             :                 // Dst: (SUB_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     637             : /*1172*/      0, /*End of Scope*/
     638             : /*1173*/    /*SwitchOpcode*/ 61, TARGET_VAL(ISD::ADDC),// ->1237
     639             : /*1176*/      OPC_RecordChild0, // #0 = $Rs1
     640             : /*1177*/      OPC_RecordChild1, // #1 = $imm
     641             : /*1178*/      OPC_Scope, 42, /*->1222*/ // 2 children in Scope
     642             : /*1180*/        OPC_MoveChild1,
     643             : /*1181*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     644             : /*1184*/        OPC_Scope, 17, /*->1203*/ // 2 children in Scope
     645             : /*1186*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     646             : /*1188*/          OPC_MoveParent,
     647             : /*1189*/          OPC_EmitConvertToTarget, 1,
     648             : /*1191*/          OPC_EmitNodeXForm, 0, 2, // LO16
     649             : /*1194*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::ADD_F_I_LO), 0|OPFL_GlueOutput,
     650             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     651             :                   // Src: (addc:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     652             :                   // Dst: (ADD_F_I_LO:i32:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     653             : /*1203*/        /*Scope*/ 17, /*->1221*/
     654             : /*1204*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     655             : /*1206*/          OPC_MoveParent,
     656             : /*1207*/          OPC_EmitConvertToTarget, 1,
     657             : /*1209*/          OPC_EmitNodeXForm, 1, 2, // HI16
     658             : /*1212*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::ADD_F_I_HI), 0|OPFL_GlueOutput,
     659             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     660             :                   // Src: (addc:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     661             :                   // Dst: (ADD_F_I_HI:i32:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     662             : /*1221*/        0, /*End of Scope*/
     663             : /*1222*/      /*Scope*/ 13, /*->1236*/
     664             : /*1223*/        OPC_EmitInteger, MVT::i32, 0, 
     665             : /*1226*/        OPC_MorphNodeTo2, TARGET_VAL(Lanai::ADD_F_R), 0|OPFL_GlueOutput,
     666             :                     MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     667             :                 // Src: (addc:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     668             :                 // Dst: (ADD_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     669             : /*1236*/      0, /*End of Scope*/
     670             : /*1237*/    /*SwitchOpcode*/ 61, TARGET_VAL(ISD::SUBC),// ->1301
     671             : /*1240*/      OPC_RecordChild0, // #0 = $Rs1
     672             : /*1241*/      OPC_RecordChild1, // #1 = $imm
     673             : /*1242*/      OPC_Scope, 42, /*->1286*/ // 2 children in Scope
     674             : /*1244*/        OPC_MoveChild1,
     675             : /*1245*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     676             : /*1248*/        OPC_Scope, 17, /*->1267*/ // 2 children in Scope
     677             : /*1250*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     678             : /*1252*/          OPC_MoveParent,
     679             : /*1253*/          OPC_EmitConvertToTarget, 1,
     680             : /*1255*/          OPC_EmitNodeXForm, 0, 2, // LO16
     681             : /*1258*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUB_F_I_LO), 0|OPFL_GlueOutput,
     682             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     683             :                   // Src: (subc:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     684             :                   // Dst: (SUB_F_I_LO:i32:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     685             : /*1267*/        /*Scope*/ 17, /*->1285*/
     686             : /*1268*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     687             : /*1270*/          OPC_MoveParent,
     688             : /*1271*/          OPC_EmitConvertToTarget, 1,
     689             : /*1273*/          OPC_EmitNodeXForm, 1, 2, // HI16
     690             : /*1276*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUB_F_I_HI), 0|OPFL_GlueOutput,
     691             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     692             :                   // Src: (subc:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     693             :                   // Dst: (SUB_F_I_HI:i32:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     694             : /*1285*/        0, /*End of Scope*/
     695             : /*1286*/      /*Scope*/ 13, /*->1300*/
     696             : /*1287*/        OPC_EmitInteger, MVT::i32, 0, 
     697             : /*1290*/        OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUB_F_R), 0|OPFL_GlueOutput,
     698             :                     MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     699             :                 // Src: (subc:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     700             :                 // Dst: (SUB_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     701             : /*1300*/      0, /*End of Scope*/
     702             : /*1301*/    /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ADDE),// ->1377
     703             : /*1304*/      OPC_CaptureGlueInput,
     704             : /*1305*/      OPC_RecordChild0, // #0 = $Rs1
     705             : /*1306*/      OPC_RecordChild1, // #1 = $imm
     706             : /*1307*/      OPC_Scope, 40, /*->1349*/ // 2 children in Scope
     707             : /*1309*/        OPC_MoveChild1,
     708             : /*1310*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     709             : /*1313*/        OPC_Scope, 16, /*->1331*/ // 2 children in Scope
     710             : /*1315*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     711             : /*1317*/          OPC_MoveParent,
     712             : /*1318*/          OPC_EmitConvertToTarget, 1,
     713             : /*1320*/          OPC_EmitNodeXForm, 0, 2, // LO16
     714             : /*1323*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADDC_I_LO), 0|OPFL_GlueInput|OPFL_GlueOutput,
     715             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     716             :                   // Src: (adde:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     717             :                   // Dst: (ADDC_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     718             : /*1331*/        /*Scope*/ 16, /*->1348*/
     719             : /*1332*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     720             : /*1334*/          OPC_MoveParent,
     721             : /*1335*/          OPC_EmitConvertToTarget, 1,
     722             : /*1337*/          OPC_EmitNodeXForm, 1, 2, // HI16
     723             : /*1340*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADDC_I_HI), 0|OPFL_GlueInput|OPFL_GlueOutput,
     724             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     725             :                   // Src: (adde:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     726             :                   // Dst: (ADDC_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     727             : /*1348*/        0, /*End of Scope*/
     728             : /*1349*/      /*Scope*/ 26, /*->1376*/
     729             : /*1350*/        OPC_EmitInteger, MVT::i32, 0, 
     730             : /*1353*/        OPC_Scope, 9, /*->1364*/ // 2 children in Scope
     731             : /*1355*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::ADDC_R), 0|OPFL_GlueInput|OPFL_GlueOutput,
     732             :                       MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     733             :                   // Src: (adde:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     734             :                   // Dst: (ADDC_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     735             : /*1364*/        /*Scope*/ 10, /*->1375*/
     736             : /*1365*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::ADDC_F_R), 0|OPFL_GlueInput|OPFL_GlueOutput,
     737             :                       MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     738             :                   // Src: (adde:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     739             :                   // Dst: (ADDC_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     740             : /*1375*/        0, /*End of Scope*/
     741             : /*1376*/      0, /*End of Scope*/
     742             : /*1377*/    /*SwitchOpcode*/ 73, TARGET_VAL(ISD::SUBE),// ->1453
     743             : /*1380*/      OPC_CaptureGlueInput,
     744             : /*1381*/      OPC_RecordChild0, // #0 = $Rs1
     745             : /*1382*/      OPC_RecordChild1, // #1 = $imm
     746             : /*1383*/      OPC_Scope, 40, /*->1425*/ // 2 children in Scope
     747             : /*1385*/        OPC_MoveChild1,
     748             : /*1386*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     749             : /*1389*/        OPC_Scope, 16, /*->1407*/ // 2 children in Scope
     750             : /*1391*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     751             : /*1393*/          OPC_MoveParent,
     752             : /*1394*/          OPC_EmitConvertToTarget, 1,
     753             : /*1396*/          OPC_EmitNodeXForm, 0, 2, // LO16
     754             : /*1399*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUBB_I_LO), 0|OPFL_GlueInput|OPFL_GlueOutput,
     755             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     756             :                   // Src: (sube:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     757             :                   // Dst: (SUBB_I_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     758             : /*1407*/        /*Scope*/ 16, /*->1424*/
     759             : /*1408*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     760             : /*1410*/          OPC_MoveParent,
     761             : /*1411*/          OPC_EmitConvertToTarget, 1,
     762             : /*1413*/          OPC_EmitNodeXForm, 1, 2, // HI16
     763             : /*1416*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUBB_I_HI), 0|OPFL_GlueInput|OPFL_GlueOutput,
     764             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     765             :                   // Src: (sube:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     766             :                   // Dst: (SUBB_I_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     767             : /*1424*/        0, /*End of Scope*/
     768             : /*1425*/      /*Scope*/ 26, /*->1452*/
     769             : /*1426*/        OPC_EmitInteger, MVT::i32, 0, 
     770             : /*1429*/        OPC_Scope, 9, /*->1440*/ // 2 children in Scope
     771             : /*1431*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SUBB_R), 0|OPFL_GlueInput|OPFL_GlueOutput,
     772             :                       MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     773             :                   // Src: (sube:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     774             :                   // Dst: (SUBB_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     775             : /*1440*/        /*Scope*/ 10, /*->1451*/
     776             : /*1441*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUBB_F_R), 0|OPFL_GlueInput|OPFL_GlueOutput,
     777             :                       MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     778             :                   // Src: (sube:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     779             :                   // Dst: (SUBB_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     780             : /*1451*/        0, /*End of Scope*/
     781             : /*1452*/      0, /*End of Scope*/
     782             : /*1453*/    /*SwitchOpcode*/ 65, TARGET_VAL(LanaiISD::SUBBF),// ->1521
     783             : /*1456*/      OPC_CaptureGlueInput,
     784             : /*1457*/      OPC_RecordChild0, // #0 = $Rs1
     785             : /*1458*/      OPC_Scope, 43, /*->1503*/ // 2 children in Scope
     786             : /*1460*/        OPC_RecordChild1, // #1 = $imm
     787             : /*1461*/        OPC_MoveChild1,
     788             : /*1462*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     789             : /*1465*/        OPC_Scope, 17, /*->1484*/ // 2 children in Scope
     790             : /*1467*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     791             : /*1469*/          OPC_MoveParent,
     792             : /*1470*/          OPC_EmitConvertToTarget, 1,
     793             : /*1472*/          OPC_EmitNodeXForm, 0, 2, // LO16
     794             : /*1475*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUBB_F_I_LO), 0|OPFL_GlueInput|OPFL_GlueOutput,
     795             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     796             :                   // Src: (LanaiSubbF GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm) - Complexity = 7
     797             :                   // Dst: (SUBB_F_I_LO:i32:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16z>>:$imm))
     798             : /*1484*/        /*Scope*/ 17, /*->1502*/
     799             : /*1485*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     800             : /*1487*/          OPC_MoveParent,
     801             : /*1488*/          OPC_EmitConvertToTarget, 1,
     802             : /*1490*/          OPC_EmitNodeXForm, 1, 2, // HI16
     803             : /*1493*/          OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUBB_F_I_HI), 0|OPFL_GlueInput|OPFL_GlueOutput,
     804             :                       MVT::i32, MVT::i32, 2/*#Ops*/, 0, 3, 
     805             :                   // Src: (LanaiSubbF GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm) - Complexity = 7
     806             :                   // Dst: (SUBB_F_I_HI:i32:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16>>:$imm))
     807             : /*1502*/        0, /*End of Scope*/
     808             : /*1503*/      /*Scope*/ 16, /*->1520*/
     809             : /*1504*/        OPC_CheckChild0Type, MVT::i32,
     810             : /*1506*/        OPC_RecordChild1, // #1 = $Rs2
     811             : /*1507*/        OPC_EmitInteger, MVT::i32, 0, 
     812             : /*1510*/        OPC_MorphNodeTo2, TARGET_VAL(Lanai::SUBB_F_R), 0|OPFL_GlueInput|OPFL_GlueOutput,
     813             :                     MVT::i32, MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     814             :                 // Src: (LanaiSubbF GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     815             :                 // Dst: (SUBB_F_R:i32:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     816             : /*1520*/      0, /*End of Scope*/
     817             : /*1521*/    /*SwitchOpcode*/ 35, TARGET_VAL(ISD::SHL),// ->1559
     818             : /*1524*/      OPC_RecordChild0, // #0 = $Rs1
     819             : /*1525*/      OPC_RecordChild1, // #1 = $imm16
     820             : /*1526*/      OPC_Scope, 17, /*->1545*/ // 2 children in Scope
     821             : /*1528*/        OPC_MoveChild1,
     822             : /*1529*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     823             : /*1532*/        OPC_CheckPredicate, 18, // Predicate_immShift
     824             : /*1534*/        OPC_MoveParent,
     825             : /*1535*/        OPC_EmitConvertToTarget, 1,
     826             : /*1537*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SL_I), 0,
     827             :                     MVT::i32, 2/*#Ops*/, 0, 2, 
     828             :                 // Src: (shl:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_immShift>>:$imm16) - Complexity = 7
     829             :                 // Dst: (SL_I:i32 GPR:i32:$Rs1, (imm:i32):$imm16)
     830             : /*1545*/      /*Scope*/ 12, /*->1558*/
     831             : /*1546*/        OPC_EmitInteger, MVT::i32, 0, 
     832             : /*1549*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SHL_R), 0,
     833             :                     MVT::i32, 3/*#Ops*/, 0, 1, 2, 
     834             :                 // Src: (shl:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     835             :                 // Dst: (SHL_R:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     836             : /*1558*/      0, /*End of Scope*/
     837             : /*1559*/    /*SwitchOpcode*/ 51, TARGET_VAL(ISD::SRL),// ->1613
     838             : /*1562*/      OPC_RecordChild0, // #0 = $Rs1
     839             : /*1563*/      OPC_RecordChild1, // #1 = $imm
     840             : /*1564*/      OPC_Scope, 18, /*->1584*/ // 2 children in Scope
     841             : /*1566*/        OPC_MoveChild1,
     842             : /*1567*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     843             : /*1570*/        OPC_CheckPredicate, 18, // Predicate_immShift
     844             : /*1572*/        OPC_MoveParent,
     845             : /*1573*/        OPC_EmitNodeXForm, 2, 1, // NEG
     846             : /*1576*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SL_I), 0,
     847             :                     MVT::i32, 2/*#Ops*/, 0, 2, 
     848             :                 // Src: (srl:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_immShift>>:$imm) - Complexity = 7
     849             :                 // Dst: (SL_I:i32 GPR:i32:$Rs1, (NEG:i32 ?:i32:$imm))
     850             : /*1584*/      /*Scope*/ 27, /*->1612*/
     851             : /*1585*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
     852             : /*1588*/        OPC_EmitInteger, MVT::i32, 0, 
     853             : /*1591*/        OPC_EmitNode1, TARGET_VAL(Lanai::SUB_R), 0,
     854             :                     MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
     855             : /*1600*/        OPC_EmitInteger, MVT::i32, 0, 
     856             : /*1603*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SRL_R), 0,
     857             :                     MVT::i32, 3/*#Ops*/, 0, 4, 5, 
     858             :                 // Src: (srl:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     859             :                 // Dst: (SRL_R:i32 GPR:i32:$Rs1, (SUB_R:i32 R0:i32, GPR:i32:$Rs2))
     860             : /*1612*/      0, /*End of Scope*/
     861             : /*1613*/    /*SwitchOpcode*/ 51, TARGET_VAL(ISD::SRA),// ->1667
     862             : /*1616*/      OPC_RecordChild0, // #0 = $Rs1
     863             : /*1617*/      OPC_RecordChild1, // #1 = $imm
     864             : /*1618*/      OPC_Scope, 18, /*->1638*/ // 2 children in Scope
     865             : /*1620*/        OPC_MoveChild1,
     866             : /*1621*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     867             : /*1624*/        OPC_CheckPredicate, 18, // Predicate_immShift
     868             : /*1626*/        OPC_MoveParent,
     869             : /*1627*/        OPC_EmitNodeXForm, 2, 1, // NEG
     870             : /*1630*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SA_I), 0,
     871             :                     MVT::i32, 2/*#Ops*/, 0, 2, 
     872             :                 // Src: (sra:i32 GPR:i32:$Rs1, (imm:i32)<<P:Predicate_immShift>>:$imm) - Complexity = 7
     873             :                 // Dst: (SA_I:i32 GPR:i32:$Rs1, (NEG:i32 ?:i32:$imm))
     874             : /*1638*/      /*Scope*/ 27, /*->1666*/
     875             : /*1639*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
     876             : /*1642*/        OPC_EmitInteger, MVT::i32, 0, 
     877             : /*1645*/        OPC_EmitNode1, TARGET_VAL(Lanai::SUB_R), 0,
     878             :                     MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
     879             : /*1654*/        OPC_EmitInteger, MVT::i32, 0, 
     880             : /*1657*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SRA_R), 0,
     881             :                     MVT::i32, 3/*#Ops*/, 0, 4, 5, 
     882             :                 // Src: (sra:i32 GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     883             :                 // Dst: (SRA_R:i32 GPR:i32:$Rs1, (SUB_R:i32 R0:i32, GPR:i32:$Rs2))
     884             : /*1666*/      0, /*End of Scope*/
     885             : /*1667*/    /*SwitchOpcode*/ 57, TARGET_VAL(LanaiISD::SET_FLAG),// ->1727
     886             : /*1670*/      OPC_RecordChild0, // #0 = $Rs1
     887             : /*1671*/      OPC_Scope, 41, /*->1714*/ // 2 children in Scope
     888             : /*1673*/        OPC_RecordChild1, // #1 = $imm16
     889             : /*1674*/        OPC_MoveChild1,
     890             : /*1675*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     891             : /*1678*/        OPC_Scope, 16, /*->1696*/ // 2 children in Scope
     892             : /*1680*/          OPC_CheckPredicate, 13, // Predicate_i32lo16z
     893             : /*1682*/          OPC_MoveParent,
     894             : /*1683*/          OPC_EmitConvertToTarget, 1,
     895             : /*1685*/          OPC_EmitNodeXForm, 0, 2, // LO16
     896             : /*1688*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SFSUB_F_RI_LO), 0|OPFL_GlueOutput,
     897             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     898             :                   // Src: (LanaiSetFlag GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm16) - Complexity = 7
     899             :                   // Dst: (SFSUB_F_RI_LO:i32 GPR:i32:$Rs1, (LO16:i32 (imm:i32):$imm16))
     900             : /*1696*/        /*Scope*/ 16, /*->1713*/
     901             : /*1697*/          OPC_CheckPredicate, 14, // Predicate_i32hi16
     902             : /*1699*/          OPC_MoveParent,
     903             : /*1700*/          OPC_EmitConvertToTarget, 1,
     904             : /*1702*/          OPC_EmitNodeXForm, 1, 2, // HI16
     905             : /*1705*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::SFSUB_F_RI_HI), 0|OPFL_GlueOutput,
     906             :                       MVT::i32, 2/*#Ops*/, 0, 3, 
     907             :                   // Src: (LanaiSetFlag GPR:i32:$Rs1, (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm16) - Complexity = 7
     908             :                   // Dst: (SFSUB_F_RI_HI:i32 GPR:i32:$Rs1, (HI16:i32 (imm:i32):$imm16))
     909             : /*1713*/        0, /*End of Scope*/
     910             : /*1714*/      /*Scope*/ 11, /*->1726*/
     911             : /*1715*/        OPC_CheckChild0Type, MVT::i32,
     912             : /*1717*/        OPC_RecordChild1, // #1 = $Rs2
     913             : /*1718*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SFSUB_F_RR), 0|OPFL_GlueOutput,
     914             :                     MVT::i32, 2/*#Ops*/, 0, 1, 
     915             :                 // Src: (LanaiSetFlag GPR:i32:$Rs1, GPR:i32:$Rs2) - Complexity = 3
     916             :                 // Dst: (SFSUB_F_RR:i32 GPR:i32:$Rs1, GPR:i32:$Rs2)
     917             : /*1726*/      0, /*End of Scope*/
     918             : /*1727*/    /*SwitchOpcode*/ 24, TARGET_VAL(LanaiISD::BR_CC),// ->1754
     919             : /*1730*/      OPC_RecordNode, // #0 = 'LanaiBrCC' chained node
     920             : /*1731*/      OPC_CaptureGlueInput,
     921             : /*1732*/      OPC_RecordChild1, // #1 = $addr
     922             : /*1733*/      OPC_MoveChild1,
     923             : /*1734*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     924             : /*1737*/      OPC_MoveParent,
     925             : /*1738*/      OPC_RecordChild2, // #2 = $DDDI
     926             : /*1739*/      OPC_MoveChild2,
     927             : /*1740*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     928             : /*1743*/      OPC_MoveParent,
     929             : /*1744*/      OPC_EmitMergeInputChains1_0,
     930             : /*1745*/      OPC_EmitConvertToTarget, 2,
     931             : /*1747*/      OPC_MorphNodeTo0, TARGET_VAL(Lanai::BRCC), 0|OPFL_Chain|OPFL_GlueInput,
     932             :                   2/*#Ops*/, 1, 3, 
     933             :               // Src: (LanaiBrCC (bb:Other):$addr, (imm:i32):$DDDI) - Complexity = 6
     934             :               // Dst: (BRCC (bb:Other):$addr, (imm:i32):$DDDI)
     935             : /*1754*/    /*SwitchOpcode*/ 16, TARGET_VAL(LanaiISD::SETCC),// ->1773
     936             : /*1757*/      OPC_CaptureGlueInput,
     937             : /*1758*/      OPC_RecordChild0, // #0 = $DDDI
     938             : /*1759*/      OPC_MoveChild0,
     939             : /*1760*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     940             : /*1763*/      OPC_MoveParent,
     941             : /*1764*/      OPC_EmitConvertToTarget, 0,
     942             : /*1766*/      OPC_MorphNodeTo1, TARGET_VAL(Lanai::SCC), 0|OPFL_GlueInput,
     943             :                   MVT::i32, 1/*#Ops*/, 1, 
     944             :               // Src: (LanaiSetCC:i32 (imm:i32):$DDDI) - Complexity = 6
     945             :               // Dst: (SCC:i32 (imm:i32):$DDDI)
     946             : /*1773*/    /*SwitchOpcode*/ 22, TARGET_VAL(LanaiISD::SELECT_CC),// ->1798
     947             : /*1776*/      OPC_CaptureGlueInput,
     948             : /*1777*/      OPC_RecordChild0, // #0 = $Rs1
     949             : /*1778*/      OPC_RecordChild1, // #1 = $Rs2
     950             : /*1779*/      OPC_RecordChild2, // #2 = $DDDI
     951             : /*1780*/      OPC_MoveChild2,
     952             : /*1781*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     953             : /*1784*/      OPC_MoveParent,
     954             : /*1785*/      OPC_CheckType, MVT::i32,
     955             : /*1787*/      OPC_EmitConvertToTarget, 2,
     956             : /*1789*/      OPC_MorphNodeTo1, TARGET_VAL(Lanai::SELECT), 0|OPFL_GlueInput,
     957             :                   MVT::i32, 3/*#Ops*/, 0, 1, 3, 
     958             :               // Src: (LanaiSelectCC:i32 GPR:i32:$Rs1, GPR:i32:$Rs2, (imm:i32):$DDDI) - Complexity = 6
     959             :               // Dst: (SELECT:i32 GPR:i32:$Rs1, GPR:i32:$Rs2, (imm:i32):$DDDI)
     960             : /*1798*/    /*SwitchOpcode*/ 42, TARGET_VAL(LanaiISD::CALL),// ->1843
     961             : /*1801*/      OPC_RecordNode, // #0 = 'Call' chained node
     962             : /*1802*/      OPC_CaptureGlueInput,
     963             : /*1803*/      OPC_RecordChild1, // #1 = $dst
     964             : /*1804*/      OPC_Scope, 27, /*->1833*/ // 2 children in Scope
     965             : /*1806*/        OPC_MoveChild1,
     966             : /*1807*/        OPC_SwitchOpcode /*2 cases */, 9, TARGET_VAL(ISD::TargetGlobalAddress),// ->1820
     967             : /*1811*/          OPC_MoveParent,
     968             : /*1812*/          OPC_EmitMergeInputChains1_0,
     969             : /*1813*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     970             :                       MVT::i32, 1/*#Ops*/, 1, 
     971             :                   // Src: (Call (tglobaladdr:i32):$dst) - Complexity = 6
     972             :                   // Dst: (CALL:i32 (tglobaladdr:i32):$dst)
     973             : /*1820*/        /*SwitchOpcode*/ 9, TARGET_VAL(ISD::TargetExternalSymbol),// ->1832
     974             : /*1823*/          OPC_MoveParent,
     975             : /*1824*/          OPC_EmitMergeInputChains1_0,
     976             : /*1825*/          OPC_MorphNodeTo1, TARGET_VAL(Lanai::CALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     977             :                       MVT::i32, 1/*#Ops*/, 1, 
     978             :                   // Src: (Call (texternalsym:i32):$dst) - Complexity = 6
     979             :                   // Dst: (CALL:i32 (texternalsym:i32):$dst)
     980             : /*1832*/        0, // EndSwitchOpcode
     981             : /*1833*/      /*Scope*/ 8, /*->1842*/
     982             : /*1834*/        OPC_EmitMergeInputChains1_0,
     983             : /*1835*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::CALLR), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     984             :                     MVT::i32, 1/*#Ops*/, 1, 
     985             :                 // Src: (Call GPR:i32:$Rs1) - Complexity = 3
     986             :                 // Dst: (CALLR:i32 GPR:i32:$Rs1)
     987             : /*1842*/      0, /*End of Scope*/
     988             : /*1843*/    /*SwitchOpcode*/ 59, TARGET_VAL(LanaiISD::HI),// ->1905
     989             : /*1846*/      OPC_RecordChild0, // #0 = $dst
     990             : /*1847*/      OPC_MoveChild0,
     991             : /*1848*/      OPC_SwitchOpcode /*5 cases */, 8, TARGET_VAL(ISD::TargetGlobalAddress),// ->1860
     992             : /*1852*/        OPC_MoveParent,
     993             : /*1853*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::MOVHI), 0,
     994             :                     MVT::i32, 1/*#Ops*/, 0, 
     995             :                 // Src: (LanaiHi:i32 (tglobaladdr:i32):$dst) - Complexity = 6
     996             :                 // Dst: (MOVHI:i32 (tglobaladdr:i32):$dst)
     997             : /*1860*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetExternalSymbol),// ->1871
     998             : /*1863*/        OPC_MoveParent,
     999             : /*1864*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::MOVHI), 0,
    1000             :                     MVT::i32, 1/*#Ops*/, 0, 
    1001             :                 // Src: (LanaiHi:i32 (texternalsym:i32):$dst) - Complexity = 6
    1002             :                 // Dst: (MOVHI:i32 (texternalsym:i32):$dst)
    1003             : /*1871*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetBlockAddress),// ->1882
    1004             : /*1874*/        OPC_MoveParent,
    1005             : /*1875*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::MOVHI), 0,
    1006             :                     MVT::i32, 1/*#Ops*/, 0, 
    1007             :                 // Src: (LanaiHi:i32 (tblockaddress:i32):$dst) - Complexity = 6
    1008             :                 // Dst: (MOVHI:i32 (tblockaddress:i32):$dst)
    1009             : /*1882*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetJumpTable),// ->1893
    1010             : /*1885*/        OPC_MoveParent,
    1011             : /*1886*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::MOVHI), 0,
    1012             :                     MVT::i32, 1/*#Ops*/, 0, 
    1013             :                 // Src: (LanaiHi:i32 (tjumptable:i32):$dst) - Complexity = 6
    1014             :                 // Dst: (MOVHI:i32 (tjumptable:i32):$dst)
    1015             : /*1893*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetConstantPool),// ->1904
    1016             : /*1896*/        OPC_MoveParent,
    1017             : /*1897*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::MOVHI), 0,
    1018             :                     MVT::i32, 1/*#Ops*/, 0, 
    1019             :                 // Src: (LanaiHi:i32 (tconstpool:i32):$dst) - Complexity = 6
    1020             :                 // Dst: (MOVHI:i32 (tconstpool:i32):$dst)
    1021             : /*1904*/      0, // EndSwitchOpcode
    1022             : /*1905*/    /*SwitchOpcode*/ 79, TARGET_VAL(LanaiISD::LO),// ->1987
    1023             : /*1908*/      OPC_RecordChild0, // #0 = $dst
    1024             : /*1909*/      OPC_MoveChild0,
    1025             : /*1910*/      OPC_SwitchOpcode /*5 cases */, 12, TARGET_VAL(ISD::TargetGlobalAddress),// ->1926
    1026             : /*1914*/        OPC_MoveParent,
    1027             : /*1915*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
    1028             : /*1918*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1029             :                     MVT::i32, 2/*#Ops*/, 1, 0, 
    1030             :                 // Src: (LanaiLo:i32 (tglobaladdr:i32):$dst) - Complexity = 6
    1031             :                 // Dst: (OR_I_LO:i32 R0:i32, (tglobaladdr:i32):$dst)
    1032             : /*1926*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetExternalSymbol),// ->1941
    1033             : /*1929*/        OPC_MoveParent,
    1034             : /*1930*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
    1035             : /*1933*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1036             :                     MVT::i32, 2/*#Ops*/, 1, 0, 
    1037             :                 // Src: (LanaiLo:i32 (texternalsym:i32):$dst) - Complexity = 6
    1038             :                 // Dst: (OR_I_LO:i32 R0:i32, (texternalsym:i32):$dst)
    1039             : /*1941*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetBlockAddress),// ->1956
    1040             : /*1944*/        OPC_MoveParent,
    1041             : /*1945*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
    1042             : /*1948*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1043             :                     MVT::i32, 2/*#Ops*/, 1, 0, 
    1044             :                 // Src: (LanaiLo:i32 (tblockaddress:i32):$dst) - Complexity = 6
    1045             :                 // Dst: (OR_I_LO:i32 R0:i32, (tblockaddress:i32):$dst)
    1046             : /*1956*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetJumpTable),// ->1971
    1047             : /*1959*/        OPC_MoveParent,
    1048             : /*1960*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
    1049             : /*1963*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1050             :                     MVT::i32, 2/*#Ops*/, 1, 0, 
    1051             :                 // Src: (LanaiLo:i32 (tjumptable:i32):$dst) - Complexity = 6
    1052             :                 // Dst: (OR_I_LO:i32 R0:i32, (tjumptable:i32):$dst)
    1053             : /*1971*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetConstantPool),// ->1986
    1054             : /*1974*/        OPC_MoveParent,
    1055             : /*1975*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
    1056             : /*1978*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1057             :                     MVT::i32, 2/*#Ops*/, 1, 0, 
    1058             :                 // Src: (LanaiLo:i32 (tconstpool:i32):$dst) - Complexity = 6
    1059             :                 // Dst: (OR_I_LO:i32 R0:i32, (tconstpool:i32):$dst)
    1060             : /*1986*/      0, // EndSwitchOpcode
    1061             : /*1987*/    /*SwitchOpcode*/ 59, TARGET_VAL(LanaiISD::SMALL),// ->2049
    1062             : /*1990*/      OPC_RecordChild0, // #0 = $dst
    1063             : /*1991*/      OPC_MoveChild0,
    1064             : /*1992*/      OPC_SwitchOpcode /*5 cases */, 8, TARGET_VAL(ISD::TargetGlobalAddress),// ->2004
    1065             : /*1996*/        OPC_MoveParent,
    1066             : /*1997*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0,
    1067             :                     MVT::i32, 1/*#Ops*/, 0, 
    1068             :                 // Src: (LanaiSmall:i32 (tglobaladdr:i32):$dst) - Complexity = 6
    1069             :                 // Dst: (SLI:i32 (tglobaladdr:i32):$dst)
    1070             : /*2004*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetExternalSymbol),// ->2015
    1071             : /*2007*/        OPC_MoveParent,
    1072             : /*2008*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0,
    1073             :                     MVT::i32, 1/*#Ops*/, 0, 
    1074             :                 // Src: (LanaiSmall:i32 (texternalsym:i32):$dst) - Complexity = 6
    1075             :                 // Dst: (SLI:i32 (texternalsym:i32):$dst)
    1076             : /*2015*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetBlockAddress),// ->2026
    1077             : /*2018*/        OPC_MoveParent,
    1078             : /*2019*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0,
    1079             :                     MVT::i32, 1/*#Ops*/, 0, 
    1080             :                 // Src: (LanaiSmall:i32 (tblockaddress:i32):$dst) - Complexity = 6
    1081             :                 // Dst: (SLI:i32 (tblockaddress:i32):$dst)
    1082             : /*2026*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetJumpTable),// ->2037
    1083             : /*2029*/        OPC_MoveParent,
    1084             : /*2030*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0,
    1085             :                     MVT::i32, 1/*#Ops*/, 0, 
    1086             :                 // Src: (LanaiSmall:i32 (tjumptable:i32):$dst) - Complexity = 6
    1087             :                 // Dst: (SLI:i32 (tjumptable:i32):$dst)
    1088             : /*2037*/      /*SwitchOpcode*/ 8, TARGET_VAL(ISD::TargetConstantPool),// ->2048
    1089             : /*2040*/        OPC_MoveParent,
    1090             : /*2041*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0,
    1091             :                     MVT::i32, 1/*#Ops*/, 0, 
    1092             :                 // Src: (LanaiSmall:i32 (tconstpool:i32):$dst) - Complexity = 6
    1093             :                 // Dst: (SLI:i32 (tconstpool:i32):$dst)
    1094             : /*2048*/      0, // EndSwitchOpcode
    1095             : /*2049*/    /*SwitchOpcode*/ 113, TARGET_VAL(ISD::Constant),// ->2165
    1096             : /*2052*/      OPC_RecordNode, // #0 = $imm
    1097             : /*2053*/      OPC_Scope, 18, /*->2073*/ // 6 children in Scope
    1098             : /*2055*/        OPC_CheckPredicate, 15, // Predicate_i32lo16and
    1099             : /*2057*/        OPC_EmitRegister, MVT::i32, Lanai::R1,
    1100             : /*2060*/        OPC_EmitConvertToTarget, 0,
    1101             : /*2062*/        OPC_EmitNodeXForm, 0, 2, // LO16
    1102             : /*2065*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::AND_I_LO), 0,
    1103             :                     MVT::i32, 2/*#Ops*/, 1, 3, 
    1104             :                 // Src: (imm:i32)<<P:Predicate_i32lo16and>><<X:LO16>>:$imm - Complexity = 4
    1105             :                 // Dst: (AND_I_LO:i32 R1:i32, (LO16:i32 (imm:i32)<<P:Predicate_i32lo16and>>:$imm))
    1106             : /*2073*/      /*Scope*/ 18, /*->2092*/
    1107             : /*2074*/        OPC_CheckPredicate, 16, // Predicate_i32hi16and
    1108             : /*2076*/        OPC_EmitRegister, MVT::i32, Lanai::R1,
    1109             : /*2079*/        OPC_EmitConvertToTarget, 0,
    1110             : /*2081*/        OPC_EmitNodeXForm, 1, 2, // HI16
    1111             : /*2084*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::AND_I_HI), 0,
    1112             :                     MVT::i32, 2/*#Ops*/, 1, 3, 
    1113             :                 // Src: (imm:i32)<<P:Predicate_i32hi16and>><<X:HI16>>:$imm - Complexity = 4
    1114             :                 // Dst: (AND_I_HI:i32 R1:i32, (HI16:i32 (imm:i32)<<P:Predicate_i32hi16and>>:$imm))
    1115             : /*2092*/      /*Scope*/ 14, /*->2107*/
    1116             : /*2093*/        OPC_CheckPredicate, 14, // Predicate_i32hi16
    1117             : /*2095*/        OPC_EmitConvertToTarget, 0,
    1118             : /*2097*/        OPC_EmitNodeXForm, 1, 1, // HI16
    1119             : /*2100*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::MOVHI), 0,
    1120             :                     MVT::i32, 1/*#Ops*/, 2, 
    1121             :                 // Src: (imm:i32)<<P:Predicate_i32hi16>><<X:HI16>>:$imm16 - Complexity = 4
    1122             :                 // Dst: (MOVHI:i32 (HI16:i32 (imm:i32):$imm16))
    1123             : /*2107*/      /*Scope*/ 14, /*->2122*/
    1124             : /*2108*/        OPC_CheckPredicate, 19, // Predicate_i32lo21
    1125             : /*2110*/        OPC_EmitConvertToTarget, 0,
    1126             : /*2112*/        OPC_EmitNodeXForm, 3, 1, // LO21
    1127             : /*2115*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::SLI), 0,
    1128             :                     MVT::i32, 1/*#Ops*/, 2, 
    1129             :                 // Src: (imm:i32)<<P:Predicate_i32lo21>><<X:LO21>>:$imm - Complexity = 4
    1130             :                 // Dst: (SLI:i32 (LO21:i32 (imm:i32):$imm))
    1131             : /*2122*/      /*Scope*/ 15, /*->2138*/
    1132             : /*2123*/        OPC_CheckPredicate, 13, // Predicate_i32lo16z
    1133             : /*2125*/        OPC_EmitRegister, MVT::i32, Lanai::R0,
    1134             : /*2128*/        OPC_EmitConvertToTarget, 0,
    1135             : /*2130*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1136             :                     MVT::i32, 2/*#Ops*/, 1, 2, 
    1137             :                 // Src: (imm:i32)<<P:Predicate_i32lo16z>><<X:LO16>>:$imm - Complexity = 4
    1138             :                 // Dst: (OR_I_LO:i32 R0:i32, (imm:i32):$imm)
    1139             : /*2138*/      /*Scope*/ 25, /*->2164*/
    1140             : /*2139*/        OPC_EmitConvertToTarget, 0,
    1141             : /*2141*/        OPC_EmitNodeXForm, 1, 1, // HI16
    1142             : /*2144*/        OPC_EmitNode1, TARGET_VAL(Lanai::MOVHI), 0,
    1143             :                     MVT::i32, 1/*#Ops*/, 2,  // Results = #3
    1144             : /*2151*/        OPC_EmitConvertToTarget, 0,
    1145             : /*2153*/        OPC_EmitNodeXForm, 0, 4, // LO16
    1146             : /*2156*/        OPC_MorphNodeTo1, TARGET_VAL(Lanai::OR_I_LO), 0,
    1147             :                     MVT::i32, 2/*#Ops*/, 3, 5, 
    1148             :                 // Src: (imm:i32):$imm - Complexity = 3
    1149             :                 // Dst: (OR_I_LO:i32 (MOVHI:i32 (HI16:i32 (imm:i32):$imm)), (LO16:i32 (imm:i32):$imm))
    1150             : /*2164*/      0, /*End of Scope*/
    1151             : /*2165*/    /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->2182
    1152             : /*2168*/      OPC_RecordNode, // #0 = 'br' chained node
    1153             : /*2169*/      OPC_RecordChild1, // #1 = $addr
    1154             : /*2170*/      OPC_MoveChild1,
    1155             : /*2171*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
    1156             : /*2174*/      OPC_MoveParent,
    1157             : /*2175*/      OPC_EmitMergeInputChains1_0,
    1158             : /*2176*/      OPC_MorphNodeTo0, TARGET_VAL(Lanai::BT), 0|OPFL_Chain,
    1159             :                   1/*#Ops*/, 1, 
    1160             :               // Src: (br (bb:Other):$addr) - Complexity = 3
    1161             :               // Dst: (BT (bb:Other):$addr)
    1162             : /*2182*/    /*SwitchOpcode*/ 11, TARGET_VAL(ISD::BRIND),// ->2196
    1163             : /*2185*/      OPC_RecordNode, // #0 = 'brind' chained node
    1164             : /*2186*/      OPC_RecordChild1, // #1 = $Rs2
    1165             : /*2187*/      OPC_CheckChild1Type, MVT::i32,
    1166             : /*2189*/      OPC_EmitMergeInputChains1_0,
    1167             : /*2190*/      OPC_MorphNodeTo0, TARGET_VAL(Lanai::JR), 0|OPFL_Chain,
    1168             :                   1/*#Ops*/, 1, 
    1169             :               // Src: (brind GPR:i32:$Rs2) - Complexity = 3
    1170             :               // Dst: (JR GPR:i32:$Rs2)
    1171             : /*2196*/    /*SwitchOpcode*/ 8, TARGET_VAL(LanaiISD::RET_FLAG),// ->2207
    1172             : /*2199*/      OPC_RecordNode, // #0 = 'RetFlag' chained node
    1173             : /*2200*/      OPC_CaptureGlueInput,
    1174             : /*2201*/      OPC_EmitMergeInputChains1_0,
    1175             : /*2202*/      OPC_MorphNodeTo0, TARGET_VAL(Lanai::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
    1176             :                   0/*#Ops*/, 
    1177             :               // Src: (RetFlag) - Complexity = 3
    1178             :               // Dst: (RET)
    1179             : /*2207*/    /*SwitchOpcode*/ 9, TARGET_VAL(LanaiISD::ADJDYNALLOC),// ->2219
    1180             : /*2210*/      OPC_RecordChild0, // #0 = $src
    1181             : /*2211*/      OPC_MorphNodeTo2, TARGET_VAL(Lanai::ADJDYNALLOC), 0,
    1182             :                   MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
    1183             :               // Src: (LanaiAdjDynAlloc:i32 GPR:i32:$src) - Complexity = 3
    1184             :               // Dst: (ADJDYNALLOC:i32:i32 GPR:i32:$src)
    1185             : /*2219*/    /*SwitchOpcode*/ 8, TARGET_VAL(ISD::CTPOP),// ->2230
    1186             : /*2222*/      OPC_RecordChild0, // #0 = $Rs1
    1187             : /*2223*/      OPC_MorphNodeTo1, TARGET_VAL(Lanai::POPC), 0,
    1188             :                   MVT::i32, 1/*#Ops*/, 0, 
    1189             :               // Src: (ctpop:i32 GPR:i32:$Rs1) - Complexity = 3
    1190             :               // Dst: (POPC:i32 GPR:i32:$Rs1)
    1191             : /*2230*/    /*SwitchOpcode*/ 8, TARGET_VAL(ISD::CTLZ),// ->2241
    1192             : /*2233*/      OPC_RecordChild0, // #0 = $Rs1
    1193             : /*2234*/      OPC_MorphNodeTo1, TARGET_VAL(Lanai::LEADZ), 0,
    1194             :                   MVT::i32, 1/*#Ops*/, 0, 
    1195             :               // Src: (ctlz:i32 GPR:i32:$Rs1) - Complexity = 3
    1196             :               // Dst: (LEADZ:i32 GPR:i32:$Rs1)
    1197             : /*2241*/    /*SwitchOpcode*/ 8, TARGET_VAL(ISD::CTTZ),// ->2252
    1198             : /*2244*/      OPC_RecordChild0, // #0 = $Rs1
    1199             : /*2245*/      OPC_MorphNodeTo1, TARGET_VAL(Lanai::TRAILZ), 0,
    1200             :                   MVT::i32, 1/*#Ops*/, 0, 
    1201             :               // Src: (cttz:i32 GPR:i32:$Rs1) - Complexity = 3
    1202             :               // Dst: (TRAILZ:i32 GPR:i32:$Rs1)
    1203             : /*2252*/    0, // EndSwitchOpcode
    1204             :     0
    1205             :   }; // Total Array size is 2254 bytes
    1206             : 
    1207             :   // Opcode Histogram:
    1208             :   // #OPC_Scope                          = 41
    1209             :   // #OPC_RecordNode                     = 10
    1210             :   // #OPC_RecordChild                    = 62
    1211             :   // #OPC_RecordMemRef                   = 2
    1212             :   // #OPC_CaptureGlueInput               = 9
    1213             :   // #OPC_MoveChild                      = 32
    1214             :   // #OPC_MoveParent                     = 89
    1215             :   // #OPC_CheckSame                      = 0
    1216             :   // #OPC_CheckChildSame                 = 0
    1217             :   // #OPC_CheckPatternPredicate          = 0
    1218             :   // #OPC_CheckPredicate                 = 67
    1219             :   // #OPC_CheckOpcode                    = 24
    1220             :   // #OPC_SwitchOpcode                   = 9
    1221             :   // #OPC_CheckType                      = 2
    1222             :   // #OPC_SwitchType                     = 0
    1223             :   // #OPC_CheckChildType                 = 6
    1224             :   // #OPC_CheckInteger                   = 0
    1225             :   // #OPC_CheckChildInteger              = 0
    1226             :   // #OPC_CheckCondCode                  = 0
    1227             :   // #OPC_CheckValueType                 = 0
    1228             :   // #OPC_CheckComplexPat                = 21
    1229             :   // #OPC_CheckAndImm                    = 0
    1230             :   // #OPC_CheckOrImm                     = 0
    1231             :   // #OPC_CheckFoldableChainNode         = 0
    1232             :   // #OPC_EmitInteger                    = 15
    1233             :   // #OPC_EmitStringInteger              = 0
    1234             :   // #OPC_EmitRegister                   = 10
    1235             :   // #OPC_EmitConvertToTarget            = 39
    1236             :   // #OPC_EmitMergeInputChains           = 30
    1237             :   // #OPC_EmitCopyToReg                  = 5
    1238             :   // #OPC_EmitNode                       = 3
    1239             :   // #OPC_EmitNodeXForm                  = 38
    1240             :   // #OPC_CompleteMatch                  = 0
    1241             :   // #OPC_MorphNodeTo                    = 124
    1242             : 
    1243             :   #undef TARGET_VAL
    1244        1214 :   SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
    1245             : }
    1246         300 : bool CheckNodePredicate(SDNode *Node,
    1247             :                         unsigned PredNo) const override {
    1248         300 :   switch (PredNo) {
    1249           0 :   default: llvm_unreachable("Invalid predicate in table?");
    1250          66 :   case 0: { 
    1251             :     // Predicate_unindexedload
    1252          66 :     SDNode *N = Node;
    1253             : 
    1254         132 :   return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
    1255             : 
    1256             :   }
    1257          67 :   case 1: { 
    1258             :     // Predicate_load
    1259          67 :     SDNode *N = Node;
    1260             : 
    1261         134 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
    1262             : 
    1263             :   }
    1264           9 :   case 2: { 
    1265             :     // Predicate_zextload
    1266           9 :     SDNode *N = Node;
    1267             : 
    1268          18 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
    1269             : 
    1270             :   }
    1271           0 :   case 3: { 
    1272             :     // Predicate_zextloadi32
    1273           0 :     SDNode *N = Node;
    1274             : 
    1275           0 :   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
    1276             : 
    1277             :   }
    1278           2 :   case 4: { 
    1279             :     // Predicate_zextloadi16
    1280             :     // Predicate_sextloadi16
    1281             :     // Predicate_extloadi16
    1282           2 :     SDNode *N = Node;
    1283             : 
    1284           6 :   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
    1285             : 
    1286             :   }
    1287           2 :   case 5: { 
    1288             :     // Predicate_zextloadi8
    1289             :     // Predicate_sextloadi8
    1290             :     // Predicate_extloadi8
    1291           2 :     SDNode *N = Node;
    1292             : 
    1293           6 :   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
    1294             : 
    1295             :   }
    1296           9 :   case 6: { 
    1297             :     // Predicate_sextload
    1298           9 :     SDNode *N = Node;
    1299             : 
    1300          18 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::SEXTLOAD;
    1301             : 
    1302             :   }
    1303           3 :   case 7: { 
    1304             :     // Predicate_extload
    1305           3 :     SDNode *N = Node;
    1306             : 
    1307           6 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
    1308             : 
    1309             :   }
    1310           5 :   case 8: { 
    1311             :     // Predicate_unindexedstore
    1312           5 :     SDNode *N = Node;
    1313             : 
    1314          10 :   return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
    1315             : 
    1316             :   }
    1317           5 :   case 9: { 
    1318             :     // Predicate_store
    1319           5 :     SDNode *N = Node;
    1320             : 
    1321          10 :   return !cast<StoreSDNode>(N)->isTruncatingStore();
    1322             : 
    1323             :   }
    1324           2 :   case 10: { 
    1325             :     // Predicate_truncstore
    1326           2 :     SDNode *N = Node;
    1327             : 
    1328           4 :   return cast<StoreSDNode>(N)->isTruncatingStore();
    1329             : 
    1330             :   }
    1331           4 :   case 11: { 
    1332             :     // Predicate_truncstorei16
    1333           4 :     SDNode *N = Node;
    1334             : 
    1335          12 :   return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
    1336             : 
    1337             :   }
    1338           2 :   case 12: { 
    1339             :     // Predicate_truncstorei8
    1340           2 :     SDNode *N = Node;
    1341             : 
    1342           6 :   return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
    1343             : 
    1344             :   }
    1345          46 :   case 13: { 
    1346             :     // Predicate_i32lo16z
    1347          46 :     auto *N = cast<ConstantSDNode>(Node);
    1348             : 
    1349             :     // i32lo16 predicate - true if the 32-bit immediate has only rightmost 16
    1350             :     // bits set.
    1351          92 :     return ((N->getZExtValue() & 0xFFFFUL) == N->getZExtValue());
    1352             :   }
    1353          17 :   case 14: { 
    1354             :     // Predicate_i32hi16
    1355          17 :     auto *N = cast<ConstantSDNode>(Node);
    1356             : 
    1357             :     // i32hi16 predicate - true if the 32-bit immediate has only leftmost 16
    1358             :     // bits set.
    1359          34 :     return ((N->getZExtValue() & 0xFFFF0000UL) == N->getZExtValue());
    1360             :   }
    1361           9 :   case 15: { 
    1362             :     // Predicate_i32lo16and
    1363           9 :     auto *N = cast<ConstantSDNode>(Node);
    1364             : 
    1365             :     // i32lo16 predicate - true if the 32-bit immediate has the rightmost 16
    1366             :     // bits set and the leftmost 16 bits 1's.
    1367           9 :     return (N->getZExtValue() >= 0xFFFF0000UL);
    1368             :   }
    1369           8 :   case 16: { 
    1370             :     // Predicate_i32hi16and
    1371           8 :     auto *N = cast<ConstantSDNode>(Node);
    1372             : 
    1373             :     // i32lo16 predicate - true if the 32-bit immediate has the leftmost 16
    1374             :     // bits set and the rightmost 16 bits 1's.
    1375           8 :     return ((N->getZExtValue() & 0xFFFFUL) == 0xFFFFUL);
    1376             :   }
    1377           9 :   case 17: { 
    1378             :     // Predicate_i32neg16
    1379           9 :     auto *N = cast<ConstantSDNode>(Node);
    1380             : 
    1381             :     // i32neg16 predicate - true if the 32-bit immediate is negative and can
    1382             :     // be represented by a 16 bit integer.
    1383           9 :     int Imm = N->getSExtValue();
    1384          18 :     return (Imm < 0) && (isInt<16>(Imm));
    1385             :   }
    1386          27 :   case 18: { 
    1387             :     // Predicate_immShift
    1388          27 :     auto *N = cast<ConstantSDNode>(Node);
    1389             : 
    1390          27 :     int Imm = N->getSExtValue();
    1391          27 :     return Imm >= -31 && Imm <= 31;
    1392             :   }
    1393           8 :   case 19: { 
    1394             :     // Predicate_i32lo21
    1395           8 :     auto *N = cast<ConstantSDNode>(Node);
    1396             : 
    1397             :     // i32lo21 predicate - true if the 32-bit immediate has only rightmost 21
    1398             :     // bits set.
    1399          16 :     return ((N->getZExtValue() & 0x1FFFFFUL) == N->getZExtValue());
    1400             :   }
    1401             :   }
    1402             : }
    1403             : 
    1404          78 : bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
    1405             :                          SDValue N, unsigned PatternNo,
    1406             :          SmallVectorImpl<std::pair<SDValue, SDNode*> > &Result) override {
    1407         156 :   unsigned NextRes = Result.size();
    1408          78 :   switch (PatternNo) {
    1409           0 :   default: llvm_unreachable("Invalid pattern # in table?");
    1410          67 :   case 0:
    1411          67 :     Result.resize(NextRes+3);
    1412         335 :   return selectAddrRi(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
    1413           6 :   case 1:
    1414           6 :     Result.resize(NextRes+3);
    1415          24 :   return selectAddrRr(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
    1416           4 :   case 2:
    1417           4 :     Result.resize(NextRes+3);
    1418          20 :   return selectAddrSpls(N, Result[NextRes+0].first, Result[NextRes+1].first, Result[NextRes+2].first);
    1419           1 :   case 3:
    1420           1 :     Result.resize(NextRes+1);
    1421           2 :   return selectAddrSls(N, Result[NextRes+0].first);
    1422             :   }
    1423             : }
    1424             : 
    1425          57 : SDValue RunSDNodeXForm(SDValue V, unsigned XFormNo) override {
    1426          57 :   switch (XFormNo) {
    1427           0 :   default: llvm_unreachable("Invalid xform # in table?");
    1428          38 :   case 0: {  // LO16
    1429          76 :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1430             : 
    1431          38 :   return CurDAG->getTargetConstant((uint64_t)N->getZExtValue() & 0xffff,
    1432         190 :                                    SDLoc(N), MVT::i32);
    1433             : 
    1434             :   }
    1435           2 :   case 1: {  // HI16
    1436           4 :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1437             : 
    1438           6 :   return CurDAG->getTargetConstant((uint64_t)N->getZExtValue() >> 16, SDLoc(N),
    1439           6 :                                    MVT::i32);
    1440             : 
    1441             :   }
    1442          11 :   case 2: {  // NEG
    1443          22 :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1444             : 
    1445          66 :   return CurDAG->getTargetConstant(-N->getSExtValue(), SDLoc(N), MVT::i32);
    1446             : 
    1447             :   }
    1448           6 :   case 3: {  // LO21
    1449          12 :     ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
    1450             : 
    1451           6 :   return CurDAG->getTargetConstant((uint64_t)N->getZExtValue() & 0x1fffff,
    1452          30 :                                    SDLoc(N), MVT::i32);
    1453             : 
    1454             :   }
    1455             :   }
    1456             : }
    1457             : 

Generated by: LCOV version 1.13