LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/BPF - BPFGenDAGISel.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 78 92 84.8 %
Date: 2017-09-14 15:23:50 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* DAG Instruction Selector for the BPF 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 /*24 cases */, 21|128,1/*149*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->154
      19             : /*5*/         OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
      20             : /*6*/         OPC_Scope, 28, /*->36*/ // 4 children in Scope
      21             : /*8*/           OPC_CheckChild1Integer, 39|128,6/*807*/, 
      22             : /*11*/          OPC_RecordChild2, // #1 = $pseudo
      23             : /*12*/          OPC_MoveChild2,
      24             : /*13*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
      25             : /*16*/          OPC_MoveParent,
      26             : /*17*/          OPC_RecordChild3, // #2 = $imm
      27             : /*18*/          OPC_MoveChild3,
      28             : /*19*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
      29             : /*22*/          OPC_MoveParent,
      30             : /*23*/          OPC_EmitMergeInputChains1_0,
      31             : /*24*/          OPC_EmitConvertToTarget, 1,
      32             : /*26*/          OPC_EmitConvertToTarget, 2,
      33             : /*28*/          OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_pseudo), 0|OPFL_Chain,
      34             :                     MVT::i64, 2/*#Ops*/, 3, 4, 
      35             :                 // Src: (intrinsic_w_chain:i64 807:iPTR, (imm:i64):$pseudo, (imm:i64):$imm) - Complexity = 14
      36             :                 // Dst: (LD_pseudo:i64 (imm:i64):$pseudo, (imm:i64):$imm)
      37             : /*36*/        /*Scope*/ 38, /*->75*/
      38             : /*37*/          OPC_CheckChild1Integer, 36|128,6/*804*/, 
      39             : /*40*/          OPC_RecordChild2, // #1 = $skb
      40             : /*41*/          OPC_CheckChild2Type, MVT::i64,
      41             : /*43*/          OPC_RecordChild3, // #2 = $imm
      42             : /*44*/          OPC_Scope, 18, /*->64*/ // 2 children in Scope
      43             : /*46*/            OPC_MoveChild3,
      44             : /*47*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
      45             : /*50*/            OPC_CheckPredicate, 0, // Predicate_i64immSExt32
      46             : /*52*/            OPC_MoveParent,
      47             : /*53*/            OPC_EmitMergeInputChains1_0,
      48             : /*54*/            OPC_EmitConvertToTarget, 2,
      49             : /*56*/            OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_B), 0|OPFL_Chain,
      50             :                       MVT::i64, 2/*#Ops*/, 1, 3, 
      51             :                   // Src: (intrinsic_w_chain:i64 804:iPTR, GPR:i64:$skb, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 12
      52             :                   // Dst: (LD_ABS_B:i64 GPR:i64:$skb, (imm:i64):$imm)
      53             : /*64*/          /*Scope*/ 9, /*->74*/
      54             : /*65*/            OPC_EmitMergeInputChains1_0,
      55             : /*66*/            OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_B), 0|OPFL_Chain,
      56             :                       MVT::i64, 2/*#Ops*/, 1, 2, 
      57             :                   // Src: (intrinsic_w_chain:i64 804:iPTR, GPR:i64:$skb, GPR:i64:$val) - Complexity = 8
      58             :                   // Dst: (LD_IND_B:i64 GPR:i64:$skb, GPR:i64:$val)
      59             : /*74*/          0, /*End of Scope*/
      60             : /*75*/        /*Scope*/ 38, /*->114*/
      61             : /*76*/          OPC_CheckChild1Integer, 37|128,6/*805*/, 
      62             : /*79*/          OPC_RecordChild2, // #1 = $skb
      63             : /*80*/          OPC_CheckChild2Type, MVT::i64,
      64             : /*82*/          OPC_RecordChild3, // #2 = $imm
      65             : /*83*/          OPC_Scope, 18, /*->103*/ // 2 children in Scope
      66             : /*85*/            OPC_MoveChild3,
      67             : /*86*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
      68             : /*89*/            OPC_CheckPredicate, 0, // Predicate_i64immSExt32
      69             : /*91*/            OPC_MoveParent,
      70             : /*92*/            OPC_EmitMergeInputChains1_0,
      71             : /*93*/            OPC_EmitConvertToTarget, 2,
      72             : /*95*/            OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_H), 0|OPFL_Chain,
      73             :                       MVT::i64, 2/*#Ops*/, 1, 3, 
      74             :                   // Src: (intrinsic_w_chain:i64 805:iPTR, GPR:i64:$skb, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 12
      75             :                   // Dst: (LD_ABS_H:i64 GPR:i64:$skb, (imm:i64):$imm)
      76             : /*103*/         /*Scope*/ 9, /*->113*/
      77             : /*104*/           OPC_EmitMergeInputChains1_0,
      78             : /*105*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_H), 0|OPFL_Chain,
      79             :                       MVT::i64, 2/*#Ops*/, 1, 2, 
      80             :                   // Src: (intrinsic_w_chain:i64 805:iPTR, GPR:i64:$skb, GPR:i64:$val) - Complexity = 8
      81             :                   // Dst: (LD_IND_H:i64 GPR:i64:$skb, GPR:i64:$val)
      82             : /*113*/         0, /*End of Scope*/
      83             : /*114*/       /*Scope*/ 38, /*->153*/
      84             : /*115*/         OPC_CheckChild1Integer, 38|128,6/*806*/, 
      85             : /*118*/         OPC_RecordChild2, // #1 = $skb
      86             : /*119*/         OPC_CheckChild2Type, MVT::i64,
      87             : /*121*/         OPC_RecordChild3, // #2 = $imm
      88             : /*122*/         OPC_Scope, 18, /*->142*/ // 2 children in Scope
      89             : /*124*/           OPC_MoveChild3,
      90             : /*125*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
      91             : /*128*/           OPC_CheckPredicate, 0, // Predicate_i64immSExt32
      92             : /*130*/           OPC_MoveParent,
      93             : /*131*/           OPC_EmitMergeInputChains1_0,
      94             : /*132*/           OPC_EmitConvertToTarget, 2,
      95             : /*134*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_W), 0|OPFL_Chain,
      96             :                       MVT::i64, 2/*#Ops*/, 1, 3, 
      97             :                   // Src: (intrinsic_w_chain:i64 806:iPTR, GPR:i64:$skb, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 12
      98             :                   // Dst: (LD_ABS_W:i64 GPR:i64:$skb, (imm:i64):$imm)
      99             : /*142*/         /*Scope*/ 9, /*->152*/
     100             : /*143*/           OPC_EmitMergeInputChains1_0,
     101             : /*144*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_W), 0|OPFL_Chain,
     102             :                       MVT::i64, 2/*#Ops*/, 1, 2, 
     103             :                   // Src: (intrinsic_w_chain:i64 806:iPTR, GPR:i64:$skb, GPR:i64:$val) - Complexity = 8
     104             :                   // Dst: (LD_IND_W:i64 GPR:i64:$skb, GPR:i64:$val)
     105             : /*152*/         0, /*End of Scope*/
     106             : /*153*/       0, /*End of Scope*/
     107             : /*154*/     /*SwitchOpcode*/ 77, TARGET_VAL(ISD::STORE),// ->234
     108             : /*157*/       OPC_RecordMemRef,
     109             : /*158*/       OPC_RecordNode, // #0 = 'st' chained node
     110             : /*159*/       OPC_RecordChild1, // #1 = $src
     111             : /*160*/       OPC_CheckChild1Type, MVT::i64,
     112             : /*162*/       OPC_RecordChild2, // #2 = $addr
     113             : /*163*/       OPC_CheckChild2Type, MVT::i64,
     114             : /*165*/       OPC_CheckPredicate, 1, // Predicate_unindexedstore
     115             : /*167*/       OPC_Scope, 49, /*->218*/ // 2 children in Scope
     116             : /*169*/         OPC_CheckPredicate, 2, // Predicate_truncstore
     117             : /*171*/         OPC_Scope, 14, /*->187*/ // 3 children in Scope
     118             : /*173*/           OPC_CheckPredicate, 3, // Predicate_truncstorei32
     119             : /*175*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
     120             : /*178*/           OPC_EmitMergeInputChains1_0,
     121             : /*179*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::STW), 0|OPFL_Chain|OPFL_MemRefs,
     122             :                       3/*#Ops*/, 1, 3, 4, 
     123             :                   // Src: (st i64:i64:$src, ADDRri:i64:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 13
     124             :                   // Dst: (STW i64:i64:$src, ADDRri:i64:$addr)
     125             : /*187*/         /*Scope*/ 14, /*->202*/
     126             : /*188*/           OPC_CheckPredicate, 4, // Predicate_truncstorei16
     127             : /*190*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
     128             : /*193*/           OPC_EmitMergeInputChains1_0,
     129             : /*194*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::STH), 0|OPFL_Chain|OPFL_MemRefs,
     130             :                       3/*#Ops*/, 1, 3, 4, 
     131             :                   // Src: (st i64:i64:$src, ADDRri:i64:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
     132             :                   // Dst: (STH i64:i64:$src, ADDRri:i64:$addr)
     133             : /*202*/         /*Scope*/ 14, /*->217*/
     134             : /*203*/           OPC_CheckPredicate, 5, // Predicate_truncstorei8
     135             : /*205*/           OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
     136             : /*208*/           OPC_EmitMergeInputChains1_0,
     137             : /*209*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::STB), 0|OPFL_Chain|OPFL_MemRefs,
     138             :                       3/*#Ops*/, 1, 3, 4, 
     139             :                   // Src: (st i64:i64:$src, ADDRri:i64:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
     140             :                   // Dst: (STB i64:i64:$src, ADDRri:i64:$addr)
     141             : /*217*/         0, /*End of Scope*/
     142             : /*218*/       /*Scope*/ 14, /*->233*/
     143             : /*219*/         OPC_CheckPredicate, 6, // Predicate_store
     144             : /*221*/         OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
     145             : /*224*/         OPC_EmitMergeInputChains1_0,
     146             : /*225*/         OPC_MorphNodeTo0, TARGET_VAL(BPF::STD), 0|OPFL_Chain|OPFL_MemRefs,
     147             :                     3/*#Ops*/, 1, 3, 4, 
     148             :                 // Src: (st i64:i64:$src, ADDRri:i64:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
     149             :                 // Dst: (STD i64:i64:$src, ADDRri:i64:$addr)
     150             : /*233*/       0, /*End of Scope*/
     151             : /*234*/     /*SwitchOpcode*/ 126, TARGET_VAL(ISD::LOAD),// ->363
     152             : /*237*/       OPC_RecordMemRef,
     153             : /*238*/       OPC_RecordNode, // #0 = 'ld' chained node
     154             : /*239*/       OPC_RecordChild1, // #1 = $addr
     155             : /*240*/       OPC_CheckChild1Type, MVT::i64,
     156             : /*242*/       OPC_CheckPredicate, 7, // Predicate_unindexedload
     157             : /*244*/       OPC_CheckType, MVT::i64,
     158             : /*246*/       OPC_Scope, 49, /*->297*/ // 3 children in Scope
     159             : /*248*/         OPC_CheckPredicate, 8, // Predicate_zextload
     160             : /*250*/         OPC_Scope, 14, /*->266*/ // 3 children in Scope
     161             : /*252*/           OPC_CheckPredicate, 9, // Predicate_zextloadi32
     162             : /*254*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
     163             : /*257*/           OPC_EmitMergeInputChains1_0,
     164             : /*258*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
     165             :                       MVT::i64, 2/*#Ops*/, 2, 3, 
     166             :                   // Src: (ld:i64 ADDRri:i64:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
     167             :                   // Dst: (LDW:i64 ADDRri:i64:$addr)
     168             : /*266*/         /*Scope*/ 14, /*->281*/
     169             : /*267*/           OPC_CheckPredicate, 10, // Predicate_zextloadi16
     170             : /*269*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
     171             : /*272*/           OPC_EmitMergeInputChains1_0,
     172             : /*273*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
     173             :                       MVT::i64, 2/*#Ops*/, 2, 3, 
     174             :                   // Src: (ld:i64 ADDRri:i64:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
     175             :                   // Dst: (LDH:i64 ADDRri:i64:$addr)
     176             : /*281*/         /*Scope*/ 14, /*->296*/
     177             : /*282*/           OPC_CheckPredicate, 11, // Predicate_zextloadi8
     178             : /*284*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
     179             : /*287*/           OPC_EmitMergeInputChains1_0,
     180             : /*288*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
     181             :                       MVT::i64, 2/*#Ops*/, 2, 3, 
     182             :                   // Src: (ld:i64 ADDRri:i64:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
     183             :                   // Dst: (LDB:i64 ADDRri:i64:$addr)
     184             : /*296*/         0, /*End of Scope*/
     185             : /*297*/       /*Scope*/ 14, /*->312*/
     186             : /*298*/         OPC_CheckPredicate, 12, // Predicate_load
     187             : /*300*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
     188             : /*303*/         OPC_EmitMergeInputChains1_0,
     189             : /*304*/         OPC_MorphNodeTo1, TARGET_VAL(BPF::LDD), 0|OPFL_Chain|OPFL_MemRefs,
     190             :                     MVT::i64, 2/*#Ops*/, 2, 3, 
     191             :                 // Src: (ld:i64 ADDRri:i64:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
     192             :                 // Dst: (LDD:i64 ADDRri:i64:$addr)
     193             : /*312*/       /*Scope*/ 49, /*->362*/
     194             : /*313*/         OPC_CheckPredicate, 13, // Predicate_extload
     195             : /*315*/         OPC_Scope, 14, /*->331*/ // 3 children in Scope
     196             : /*317*/           OPC_CheckPredicate, 11, // Predicate_extloadi8
     197             : /*319*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
     198             : /*322*/           OPC_EmitMergeInputChains1_0,
     199             : /*323*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
     200             :                       MVT::i64, 2/*#Ops*/, 2, 3, 
     201             :                   // Src: (ld:i64 ADDRri:i64:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
     202             :                   // Dst: (LDB:i64 ADDRri:i64:$src)
     203             : /*331*/         /*Scope*/ 14, /*->346*/
     204             : /*332*/           OPC_CheckPredicate, 10, // Predicate_extloadi16
     205             : /*334*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
     206             : /*337*/           OPC_EmitMergeInputChains1_0,
     207             : /*338*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
     208             :                       MVT::i64, 2/*#Ops*/, 2, 3, 
     209             :                   // Src: (ld:i64 ADDRri:i64:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
     210             :                   // Dst: (LDH:i64 ADDRri:i64:$src)
     211             : /*346*/         /*Scope*/ 14, /*->361*/
     212             : /*347*/           OPC_CheckPredicate, 9, // Predicate_extloadi32
     213             : /*349*/           OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
     214             : /*352*/           OPC_EmitMergeInputChains1_0,
     215             : /*353*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
     216             :                       MVT::i64, 2/*#Ops*/, 2, 3, 
     217             :                   // Src: (ld:i64 ADDRri:i64:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
     218             :                   // Dst: (LDW:i64 ADDRri:i64:$src)
     219             : /*361*/         0, /*End of Scope*/
     220             : /*362*/       0, /*End of Scope*/
     221             : /*363*/     /*SwitchOpcode*/ 40, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->406
     222             : /*366*/       OPC_RecordMemRef,
     223             : /*367*/       OPC_RecordNode, // #0 = 'atomic_load_add' chained node
     224             : /*368*/       OPC_RecordChild1, // #1 = $addr
     225             : /*369*/       OPC_CheckChild1Type, MVT::i64,
     226             : /*371*/       OPC_RecordChild2, // #2 = $val
     227             : /*372*/       OPC_Scope, 15, /*->389*/ // 2 children in Scope
     228             : /*374*/         OPC_CheckPredicate, 14, // Predicate_atomic_load_add_32
     229             : /*376*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #3 #4
     230             : /*379*/         OPC_EmitMergeInputChains1_0,
     231             : /*380*/         OPC_MorphNodeTo1, TARGET_VAL(BPF::XADD32), 0|OPFL_Chain|OPFL_MemRefs,
     232             :                     MVT::i64, 3/*#Ops*/, 3, 4, 2, 
     233             :                 // Src: (atomic_load_add:i64 ADDRri:i64:$addr, GPR:i64:$val)<<P:Predicate_atomic_load_add_32>> - Complexity = 13
     234             :                 // Dst: (XADD32:i64 ADDRri:i64:$addr, GPR:i64:$val)
     235             : /*389*/       /*Scope*/ 15, /*->405*/
     236             : /*390*/         OPC_CheckPredicate, 15, // Predicate_atomic_load_add_64
     237             : /*392*/         OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #3 #4
     238             : /*395*/         OPC_EmitMergeInputChains1_0,
     239             : /*396*/         OPC_MorphNodeTo1, TARGET_VAL(BPF::XADD64), 0|OPFL_Chain|OPFL_MemRefs,
     240             :                     MVT::i64, 3/*#Ops*/, 3, 4, 2, 
     241             :                 // Src: (atomic_load_add:i64 ADDRri:i64:$addr, GPR:i64:$val)<<P:Predicate_atomic_load_add_64>> - Complexity = 13
     242             :                 // Dst: (XADD64:i64 ADDRri:i64:$addr, GPR:i64:$val)
     243             : /*405*/       0, /*End of Scope*/
     244             : /*406*/     /*SwitchOpcode*/ 48|128,3/*432*/, TARGET_VAL(BPFISD::BR_CC),// ->842
     245             : /*410*/       OPC_RecordNode, // #0 = 'BPFbrcc' chained node
     246             : /*411*/       OPC_CaptureGlueInput,
     247             : /*412*/       OPC_RecordChild1, // #1 = $dst
     248             : /*413*/       OPC_Scope, 96|128,1/*224*/, /*->640*/ // 2 children in Scope
     249             : /*416*/         OPC_RecordChild2, // #2 = $imm
     250             : /*417*/         OPC_MoveChild2,
     251             : /*418*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     252             : /*421*/         OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     253             : /*423*/         OPC_MoveParent,
     254             : /*424*/         OPC_MoveChild3,
     255             : /*425*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     256             : /*428*/         OPC_Scope, 20, /*->450*/ // 10 children in Scope
     257             : /*430*/           OPC_CheckPredicate, 16, // Predicate_BPF_CC_EQ
     258             : /*432*/           OPC_MoveParent,
     259             : /*433*/           OPC_RecordChild4, // #3 = $BrDst
     260             : /*434*/           OPC_MoveChild4,
     261             : /*435*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     262             : /*438*/           OPC_MoveParent,
     263             : /*439*/           OPC_EmitMergeInputChains1_0,
     264             : /*440*/           OPC_EmitConvertToTarget, 2,
     265             : /*442*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     266             :                       3/*#Ops*/, 1, 4, 3, 
     267             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_EQ>>, (bb:Other):$BrDst) - Complexity = 11
     268             :                   // Dst: (JEQ_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     269             : /*450*/         /*Scope*/ 20, /*->471*/
     270             : /*451*/           OPC_CheckPredicate, 17, // Predicate_BPF_CC_GTU
     271             : /*453*/           OPC_MoveParent,
     272             : /*454*/           OPC_RecordChild4, // #3 = $BrDst
     273             : /*455*/           OPC_MoveChild4,
     274             : /*456*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     275             : /*459*/           OPC_MoveParent,
     276             : /*460*/           OPC_EmitMergeInputChains1_0,
     277             : /*461*/           OPC_EmitConvertToTarget, 2,
     278             : /*463*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     279             :                       3/*#Ops*/, 1, 4, 3, 
     280             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_GTU>>, (bb:Other):$BrDst) - Complexity = 11
     281             :                   // Dst: (JUGT_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     282             : /*471*/         /*Scope*/ 20, /*->492*/
     283             : /*472*/           OPC_CheckPredicate, 18, // Predicate_BPF_CC_GEU
     284             : /*474*/           OPC_MoveParent,
     285             : /*475*/           OPC_RecordChild4, // #3 = $BrDst
     286             : /*476*/           OPC_MoveChild4,
     287             : /*477*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     288             : /*480*/           OPC_MoveParent,
     289             : /*481*/           OPC_EmitMergeInputChains1_0,
     290             : /*482*/           OPC_EmitConvertToTarget, 2,
     291             : /*484*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     292             :                       3/*#Ops*/, 1, 4, 3, 
     293             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_GEU>>, (bb:Other):$BrDst) - Complexity = 11
     294             :                   // Dst: (JUGE_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     295             : /*492*/         /*Scope*/ 20, /*->513*/
     296             : /*493*/           OPC_CheckPredicate, 19, // Predicate_BPF_CC_NE
     297             : /*495*/           OPC_MoveParent,
     298             : /*496*/           OPC_RecordChild4, // #3 = $BrDst
     299             : /*497*/           OPC_MoveChild4,
     300             : /*498*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     301             : /*501*/           OPC_MoveParent,
     302             : /*502*/           OPC_EmitMergeInputChains1_0,
     303             : /*503*/           OPC_EmitConvertToTarget, 2,
     304             : /*505*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     305             :                       3/*#Ops*/, 1, 4, 3, 
     306             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_NE>>, (bb:Other):$BrDst) - Complexity = 11
     307             :                   // Dst: (JNE_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     308             : /*513*/         /*Scope*/ 20, /*->534*/
     309             : /*514*/           OPC_CheckPredicate, 20, // Predicate_BPF_CC_GT
     310             : /*516*/           OPC_MoveParent,
     311             : /*517*/           OPC_RecordChild4, // #3 = $BrDst
     312             : /*518*/           OPC_MoveChild4,
     313             : /*519*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     314             : /*522*/           OPC_MoveParent,
     315             : /*523*/           OPC_EmitMergeInputChains1_0,
     316             : /*524*/           OPC_EmitConvertToTarget, 2,
     317             : /*526*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     318             :                       3/*#Ops*/, 1, 4, 3, 
     319             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_GT>>, (bb:Other):$BrDst) - Complexity = 11
     320             :                   // Dst: (JSGT_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     321             : /*534*/         /*Scope*/ 20, /*->555*/
     322             : /*535*/           OPC_CheckPredicate, 21, // Predicate_BPF_CC_GE
     323             : /*537*/           OPC_MoveParent,
     324             : /*538*/           OPC_RecordChild4, // #3 = $BrDst
     325             : /*539*/           OPC_MoveChild4,
     326             : /*540*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     327             : /*543*/           OPC_MoveParent,
     328             : /*544*/           OPC_EmitMergeInputChains1_0,
     329             : /*545*/           OPC_EmitConvertToTarget, 2,
     330             : /*547*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     331             :                       3/*#Ops*/, 1, 4, 3, 
     332             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_GE>>, (bb:Other):$BrDst) - Complexity = 11
     333             :                   // Dst: (JSGE_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     334             : /*555*/         /*Scope*/ 20, /*->576*/
     335             : /*556*/           OPC_CheckPredicate, 22, // Predicate_BPF_CC_LTU
     336             : /*558*/           OPC_MoveParent,
     337             : /*559*/           OPC_RecordChild4, // #3 = $BrDst
     338             : /*560*/           OPC_MoveChild4,
     339             : /*561*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     340             : /*564*/           OPC_MoveParent,
     341             : /*565*/           OPC_EmitMergeInputChains1_0,
     342             : /*566*/           OPC_EmitConvertToTarget, 2,
     343             : /*568*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     344             :                       3/*#Ops*/, 1, 4, 3, 
     345             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_LTU>>, (bb:Other):$BrDst) - Complexity = 11
     346             :                   // Dst: (JULT_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     347             : /*576*/         /*Scope*/ 20, /*->597*/
     348             : /*577*/           OPC_CheckPredicate, 23, // Predicate_BPF_CC_LEU
     349             : /*579*/           OPC_MoveParent,
     350             : /*580*/           OPC_RecordChild4, // #3 = $BrDst
     351             : /*581*/           OPC_MoveChild4,
     352             : /*582*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     353             : /*585*/           OPC_MoveParent,
     354             : /*586*/           OPC_EmitMergeInputChains1_0,
     355             : /*587*/           OPC_EmitConvertToTarget, 2,
     356             : /*589*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     357             :                       3/*#Ops*/, 1, 4, 3, 
     358             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_LEU>>, (bb:Other):$BrDst) - Complexity = 11
     359             :                   // Dst: (JULE_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     360             : /*597*/         /*Scope*/ 20, /*->618*/
     361             : /*598*/           OPC_CheckPredicate, 24, // Predicate_BPF_CC_LT
     362             : /*600*/           OPC_MoveParent,
     363             : /*601*/           OPC_RecordChild4, // #3 = $BrDst
     364             : /*602*/           OPC_MoveChild4,
     365             : /*603*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     366             : /*606*/           OPC_MoveParent,
     367             : /*607*/           OPC_EmitMergeInputChains1_0,
     368             : /*608*/           OPC_EmitConvertToTarget, 2,
     369             : /*610*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     370             :                       3/*#Ops*/, 1, 4, 3, 
     371             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_LT>>, (bb:Other):$BrDst) - Complexity = 11
     372             :                   // Dst: (JSLT_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     373             : /*618*/         /*Scope*/ 20, /*->639*/
     374             : /*619*/           OPC_CheckPredicate, 25, // Predicate_BPF_CC_LE
     375             : /*621*/           OPC_MoveParent,
     376             : /*622*/           OPC_RecordChild4, // #3 = $BrDst
     377             : /*623*/           OPC_MoveChild4,
     378             : /*624*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     379             : /*627*/           OPC_MoveParent,
     380             : /*628*/           OPC_EmitMergeInputChains1_0,
     381             : /*629*/           OPC_EmitConvertToTarget, 2,
     382             : /*631*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     383             :                       3/*#Ops*/, 1, 4, 3, 
     384             :                   // Src: (BPFbrcc i64:i64:$dst, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm, (imm:i64)<<P:Predicate_BPF_CC_LE>>, (bb:Other):$BrDst) - Complexity = 11
     385             :                   // Dst: (JSLE_ri i64:i64:$dst, (imm:i64):$imm, (bb:Other):$BrDst)
     386             : /*639*/         0, /*End of Scope*/
     387             : /*640*/       /*Scope*/ 71|128,1/*199*/, /*->841*/
     388             : /*642*/         OPC_CheckChild1Type, MVT::i64,
     389             : /*644*/         OPC_RecordChild2, // #2 = $src
     390             : /*645*/         OPC_MoveChild3,
     391             : /*646*/         OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     392             : /*649*/         OPC_Scope, 18, /*->669*/ // 10 children in Scope
     393             : /*651*/           OPC_CheckPredicate, 16, // Predicate_BPF_CC_EQ
     394             : /*653*/           OPC_MoveParent,
     395             : /*654*/           OPC_RecordChild4, // #3 = $BrDst
     396             : /*655*/           OPC_MoveChild4,
     397             : /*656*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     398             : /*659*/           OPC_MoveParent,
     399             : /*660*/           OPC_EmitMergeInputChains1_0,
     400             : /*661*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     401             :                       3/*#Ops*/, 1, 2, 3, 
     402             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_EQ>>, (bb:Other):$BrDst) - Complexity = 7
     403             :                   // Dst: (JEQ_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     404             : /*669*/         /*Scope*/ 18, /*->688*/
     405             : /*670*/           OPC_CheckPredicate, 17, // Predicate_BPF_CC_GTU
     406             : /*672*/           OPC_MoveParent,
     407             : /*673*/           OPC_RecordChild4, // #3 = $BrDst
     408             : /*674*/           OPC_MoveChild4,
     409             : /*675*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     410             : /*678*/           OPC_MoveParent,
     411             : /*679*/           OPC_EmitMergeInputChains1_0,
     412             : /*680*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     413             :                       3/*#Ops*/, 1, 2, 3, 
     414             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_GTU>>, (bb:Other):$BrDst) - Complexity = 7
     415             :                   // Dst: (JUGT_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     416             : /*688*/         /*Scope*/ 18, /*->707*/
     417             : /*689*/           OPC_CheckPredicate, 18, // Predicate_BPF_CC_GEU
     418             : /*691*/           OPC_MoveParent,
     419             : /*692*/           OPC_RecordChild4, // #3 = $BrDst
     420             : /*693*/           OPC_MoveChild4,
     421             : /*694*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     422             : /*697*/           OPC_MoveParent,
     423             : /*698*/           OPC_EmitMergeInputChains1_0,
     424             : /*699*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     425             :                       3/*#Ops*/, 1, 2, 3, 
     426             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_GEU>>, (bb:Other):$BrDst) - Complexity = 7
     427             :                   // Dst: (JUGE_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     428             : /*707*/         /*Scope*/ 18, /*->726*/
     429             : /*708*/           OPC_CheckPredicate, 19, // Predicate_BPF_CC_NE
     430             : /*710*/           OPC_MoveParent,
     431             : /*711*/           OPC_RecordChild4, // #3 = $BrDst
     432             : /*712*/           OPC_MoveChild4,
     433             : /*713*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     434             : /*716*/           OPC_MoveParent,
     435             : /*717*/           OPC_EmitMergeInputChains1_0,
     436             : /*718*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     437             :                       3/*#Ops*/, 1, 2, 3, 
     438             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_NE>>, (bb:Other):$BrDst) - Complexity = 7
     439             :                   // Dst: (JNE_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     440             : /*726*/         /*Scope*/ 18, /*->745*/
     441             : /*727*/           OPC_CheckPredicate, 20, // Predicate_BPF_CC_GT
     442             : /*729*/           OPC_MoveParent,
     443             : /*730*/           OPC_RecordChild4, // #3 = $BrDst
     444             : /*731*/           OPC_MoveChild4,
     445             : /*732*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     446             : /*735*/           OPC_MoveParent,
     447             : /*736*/           OPC_EmitMergeInputChains1_0,
     448             : /*737*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     449             :                       3/*#Ops*/, 1, 2, 3, 
     450             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_GT>>, (bb:Other):$BrDst) - Complexity = 7
     451             :                   // Dst: (JSGT_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     452             : /*745*/         /*Scope*/ 18, /*->764*/
     453             : /*746*/           OPC_CheckPredicate, 21, // Predicate_BPF_CC_GE
     454             : /*748*/           OPC_MoveParent,
     455             : /*749*/           OPC_RecordChild4, // #3 = $BrDst
     456             : /*750*/           OPC_MoveChild4,
     457             : /*751*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     458             : /*754*/           OPC_MoveParent,
     459             : /*755*/           OPC_EmitMergeInputChains1_0,
     460             : /*756*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     461             :                       3/*#Ops*/, 1, 2, 3, 
     462             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_GE>>, (bb:Other):$BrDst) - Complexity = 7
     463             :                   // Dst: (JSGE_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     464             : /*764*/         /*Scope*/ 18, /*->783*/
     465             : /*765*/           OPC_CheckPredicate, 22, // Predicate_BPF_CC_LTU
     466             : /*767*/           OPC_MoveParent,
     467             : /*768*/           OPC_RecordChild4, // #3 = $BrDst
     468             : /*769*/           OPC_MoveChild4,
     469             : /*770*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     470             : /*773*/           OPC_MoveParent,
     471             : /*774*/           OPC_EmitMergeInputChains1_0,
     472             : /*775*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     473             :                       3/*#Ops*/, 1, 2, 3, 
     474             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_LTU>>, (bb:Other):$BrDst) - Complexity = 7
     475             :                   // Dst: (JULT_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     476             : /*783*/         /*Scope*/ 18, /*->802*/
     477             : /*784*/           OPC_CheckPredicate, 23, // Predicate_BPF_CC_LEU
     478             : /*786*/           OPC_MoveParent,
     479             : /*787*/           OPC_RecordChild4, // #3 = $BrDst
     480             : /*788*/           OPC_MoveChild4,
     481             : /*789*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     482             : /*792*/           OPC_MoveParent,
     483             : /*793*/           OPC_EmitMergeInputChains1_0,
     484             : /*794*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     485             :                       3/*#Ops*/, 1, 2, 3, 
     486             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_LEU>>, (bb:Other):$BrDst) - Complexity = 7
     487             :                   // Dst: (JULE_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     488             : /*802*/         /*Scope*/ 18, /*->821*/
     489             : /*803*/           OPC_CheckPredicate, 24, // Predicate_BPF_CC_LT
     490             : /*805*/           OPC_MoveParent,
     491             : /*806*/           OPC_RecordChild4, // #3 = $BrDst
     492             : /*807*/           OPC_MoveChild4,
     493             : /*808*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     494             : /*811*/           OPC_MoveParent,
     495             : /*812*/           OPC_EmitMergeInputChains1_0,
     496             : /*813*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     497             :                       3/*#Ops*/, 1, 2, 3, 
     498             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_LT>>, (bb:Other):$BrDst) - Complexity = 7
     499             :                   // Dst: (JSLT_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     500             : /*821*/         /*Scope*/ 18, /*->840*/
     501             : /*822*/           OPC_CheckPredicate, 25, // Predicate_BPF_CC_LE
     502             : /*824*/           OPC_MoveParent,
     503             : /*825*/           OPC_RecordChild4, // #3 = $BrDst
     504             : /*826*/           OPC_MoveChild4,
     505             : /*827*/           OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     506             : /*830*/           OPC_MoveParent,
     507             : /*831*/           OPC_EmitMergeInputChains1_0,
     508             : /*832*/           OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     509             :                       3/*#Ops*/, 1, 2, 3, 
     510             :                   // Src: (BPFbrcc i64:i64:$dst, i64:i64:$src, (imm:i64)<<P:Predicate_BPF_CC_LE>>, (bb:Other):$BrDst) - Complexity = 7
     511             :                   // Dst: (JSLE_rr i64:i64:$dst, i64:i64:$src, (bb:Other):$BrDst)
     512             : /*840*/         0, /*End of Scope*/
     513             : /*841*/       0, /*End of Scope*/
     514             : /*842*/     /*SwitchOpcode*/ 63, TARGET_VAL(ISD::SRL),// ->908
     515             : /*845*/       OPC_Scope, 28, /*->875*/ // 2 children in Scope
     516             : /*847*/         OPC_MoveChild0,
     517             : /*848*/         OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
     518             : /*851*/         OPC_RecordChild0, // #0 = $src
     519             : /*852*/         OPC_MoveParent,
     520             : /*853*/         OPC_Scope, 9, /*->864*/ // 2 children in Scope
     521             : /*855*/           OPC_CheckChild1Integer, 48, 
     522             : /*857*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::BSWAP16), 0,
     523             :                       MVT::i64, 1/*#Ops*/, 0, 
     524             :                   // Src: (srl:i64 (bswap:i64 GPR:i64:$src), 48:i64) - Complexity = 11
     525             :                   // Dst: (BSWAP16:i64 GPR:i64:$src)
     526             : /*864*/         /*Scope*/ 9, /*->874*/
     527             : /*865*/           OPC_CheckChild1Integer, 32, 
     528             : /*867*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::BSWAP32), 0,
     529             :                       MVT::i64, 1/*#Ops*/, 0, 
     530             :                   // Src: (srl:i64 (bswap:i64 GPR:i64:$src), 32:i64) - Complexity = 11
     531             :                   // Dst: (BSWAP32:i64 GPR:i64:$src)
     532             : /*874*/         0, /*End of Scope*/
     533             : /*875*/       /*Scope*/ 31, /*->907*/
     534             : /*876*/         OPC_RecordChild0, // #0 = $src2
     535             : /*877*/         OPC_RecordChild1, // #1 = $imm
     536             : /*878*/         OPC_Scope, 17, /*->897*/ // 2 children in Scope
     537             : /*880*/           OPC_MoveChild1,
     538             : /*881*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     539             : /*884*/           OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     540             : /*886*/           OPC_MoveParent,
     541             : /*887*/           OPC_EmitConvertToTarget, 1,
     542             : /*889*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_ri), 0,
     543             :                       MVT::i64, 2/*#Ops*/, 0, 2, 
     544             :                   // Src: (srl:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     545             :                   // Dst: (SRL_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     546             : /*897*/         /*Scope*/ 8, /*->906*/
     547             : /*898*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_rr), 0,
     548             :                       MVT::i64, 2/*#Ops*/, 0, 1, 
     549             :                   // Src: (srl:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     550             :                   // Dst: (SRL_rr:i64 i64:i64:$src2, i64:i64:$src)
     551             : /*906*/         0, /*End of Scope*/
     552             : /*907*/       0, /*End of Scope*/
     553             : /*908*/     /*SwitchOpcode*/ 49, TARGET_VAL(ISD::ADD),// ->960
     554             : /*911*/       OPC_Scope, 14, /*->927*/ // 2 children in Scope
     555             : /*913*/         OPC_RecordNode, // #0 = $addr
     556             : /*914*/         OPC_CheckType, MVT::i64,
     557             : /*916*/         OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectFIAddr:$addr #1 #2
     558             : /*919*/         OPC_MorphNodeTo1, TARGET_VAL(BPF::FI_ri), 0,
     559             :                     MVT::i64, 2/*#Ops*/, 1, 2, 
     560             :                 // Src: FIri:i64:$addr - Complexity = 9
     561             :                 // Dst: (FI_ri:i64 FIri:i64:$addr)
     562             : /*927*/       /*Scope*/ 31, /*->959*/
     563             : /*928*/         OPC_RecordChild0, // #0 = $src2
     564             : /*929*/         OPC_RecordChild1, // #1 = $imm
     565             : /*930*/         OPC_Scope, 17, /*->949*/ // 2 children in Scope
     566             : /*932*/           OPC_MoveChild1,
     567             : /*933*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     568             : /*936*/           OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     569             : /*938*/           OPC_MoveParent,
     570             : /*939*/           OPC_EmitConvertToTarget, 1,
     571             : /*941*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::ADD_ri), 0,
     572             :                       MVT::i64, 2/*#Ops*/, 0, 2, 
     573             :                   // Src: (add:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     574             :                   // Dst: (ADD_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     575             : /*949*/         /*Scope*/ 8, /*->958*/
     576             : /*950*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::ADD_rr), 0,
     577             :                       MVT::i64, 2/*#Ops*/, 0, 1, 
     578             :                   // Src: (add:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     579             :                   // Dst: (ADD_rr:i64 i64:i64:$src2, i64:i64:$src)
     580             : /*958*/         0, /*End of Scope*/
     581             : /*959*/       0, /*End of Scope*/
     582             : /*960*/     /*SwitchOpcode*/ 49, TARGET_VAL(ISD::OR),// ->1012
     583             : /*963*/       OPC_Scope, 14, /*->979*/ // 2 children in Scope
     584             : /*965*/         OPC_RecordNode, // #0 = $addr
     585             : /*966*/         OPC_CheckType, MVT::i64,
     586             : /*968*/         OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectFIAddr:$addr #1 #2
     587             : /*971*/         OPC_MorphNodeTo1, TARGET_VAL(BPF::FI_ri), 0,
     588             :                     MVT::i64, 2/*#Ops*/, 1, 2, 
     589             :                 // Src: FIri:i64:$addr - Complexity = 9
     590             :                 // Dst: (FI_ri:i64 FIri:i64:$addr)
     591             : /*979*/       /*Scope*/ 31, /*->1011*/
     592             : /*980*/         OPC_RecordChild0, // #0 = $src2
     593             : /*981*/         OPC_RecordChild1, // #1 = $imm
     594             : /*982*/         OPC_Scope, 17, /*->1001*/ // 2 children in Scope
     595             : /*984*/           OPC_MoveChild1,
     596             : /*985*/           OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     597             : /*988*/           OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     598             : /*990*/           OPC_MoveParent,
     599             : /*991*/           OPC_EmitConvertToTarget, 1,
     600             : /*993*/           OPC_MorphNodeTo1, TARGET_VAL(BPF::OR_ri), 0,
     601             :                       MVT::i64, 2/*#Ops*/, 0, 2, 
     602             :                   // Src: (or:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     603             :                   // Dst: (OR_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     604             : /*1001*/        /*Scope*/ 8, /*->1010*/
     605             : /*1002*/          OPC_MorphNodeTo1, TARGET_VAL(BPF::OR_rr), 0,
     606             :                       MVT::i64, 2/*#Ops*/, 0, 1, 
     607             :                   // Src: (or:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     608             :                   // Dst: (OR_rr:i64 i64:i64:$src2, i64:i64:$src)
     609             : /*1010*/        0, /*End of Scope*/
     610             : /*1011*/      0, /*End of Scope*/
     611             : /*1012*/    /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_START),// ->1037
     612             : /*1015*/      OPC_RecordNode, // #0 = 'BPFcallseq_start' chained node
     613             : /*1016*/      OPC_RecordChild1, // #1 = $amt1
     614             : /*1017*/      OPC_MoveChild1,
     615             : /*1018*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     616             : /*1021*/      OPC_MoveParent,
     617             : /*1022*/      OPC_RecordChild2, // #2 = $amt2
     618             : /*1023*/      OPC_MoveChild2,
     619             : /*1024*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     620             : /*1027*/      OPC_MoveParent,
     621             : /*1028*/      OPC_EmitMergeInputChains1_0,
     622             : /*1029*/      OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
     623             :                   MVT::i64, 2/*#Ops*/, 1, 2, 
     624             :               // Src: (BPFcallseq_start (timm:iPTR):$amt1, (timm:iPTR):$amt2) - Complexity = 9
     625             :               // Dst: (ADJCALLSTACKDOWN:i64 (timm:i64):$amt1, (timm:i64):$amt2)
     626             : /*1037*/    /*SwitchOpcode*/ 23, TARGET_VAL(ISD::CALLSEQ_END),// ->1063
     627             : /*1040*/      OPC_RecordNode, // #0 = 'BPFcallseq_end' chained node
     628             : /*1041*/      OPC_CaptureGlueInput,
     629             : /*1042*/      OPC_RecordChild1, // #1 = $amt1
     630             : /*1043*/      OPC_MoveChild1,
     631             : /*1044*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     632             : /*1047*/      OPC_MoveParent,
     633             : /*1048*/      OPC_RecordChild2, // #2 = $amt2
     634             : /*1049*/      OPC_MoveChild2,
     635             : /*1050*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
     636             : /*1053*/      OPC_MoveParent,
     637             : /*1054*/      OPC_EmitMergeInputChains1_0,
     638             : /*1055*/      OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
     639             :                   MVT::i64, 2/*#Ops*/, 1, 2, 
     640             :               // Src: (BPFcallseq_end (timm:iPTR):$amt1, (timm:iPTR):$amt2) - Complexity = 9
     641             :               // Dst: (ADJCALLSTACKUP:i64 (timm:i64):$amt1, (timm:i64):$amt2)
     642             : /*1063*/    /*SwitchOpcode*/ 63, TARGET_VAL(BPFISD::SELECT_CC),// ->1129
     643             : /*1066*/      OPC_CaptureGlueInput,
     644             : /*1067*/      OPC_RecordChild0, // #0 = $lhs
     645             : /*1068*/      OPC_Scope, 31, /*->1101*/ // 2 children in Scope
     646             : /*1070*/        OPC_RecordChild1, // #1 = $rhs
     647             : /*1071*/        OPC_MoveChild1,
     648             : /*1072*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     649             : /*1075*/        OPC_MoveParent,
     650             : /*1076*/        OPC_RecordChild2, // #2 = $imm
     651             : /*1077*/        OPC_MoveChild2,
     652             : /*1078*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     653             : /*1081*/        OPC_MoveParent,
     654             : /*1082*/        OPC_RecordChild3, // #3 = $src
     655             : /*1083*/        OPC_RecordChild4, // #4 = $src2
     656             : /*1084*/        OPC_CheckType, MVT::i64,
     657             : /*1086*/        OPC_EmitConvertToTarget, 1,
     658             : /*1088*/        OPC_EmitConvertToTarget, 2,
     659             : /*1090*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_Ri), 0|OPFL_GlueInput,
     660             :                     MVT::i64, 5/*#Ops*/, 0, 5, 6, 3, 4, 
     661             :                 // Src: (BPFselectcc:i64 i64:i64:$lhs, (imm:i64):$rhs, (imm:i64):$imm, i64:i64:$src, i64:i64:$src2) - Complexity = 9
     662             :                 // Dst: (Select_Ri:i64 i64:i64:$lhs, (imm:i64):$rhs, (imm:i64):$imm, i64:i64:$src, i64:i64:$src2)
     663             : /*1101*/      /*Scope*/ 26, /*->1128*/
     664             : /*1102*/        OPC_CheckChild0Type, MVT::i64,
     665             : /*1104*/        OPC_RecordChild1, // #1 = $rhs
     666             : /*1105*/        OPC_RecordChild2, // #2 = $imm
     667             : /*1106*/        OPC_MoveChild2,
     668             : /*1107*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     669             : /*1110*/        OPC_MoveParent,
     670             : /*1111*/        OPC_RecordChild3, // #3 = $src
     671             : /*1112*/        OPC_RecordChild4, // #4 = $src2
     672             : /*1113*/        OPC_CheckType, MVT::i64,
     673             : /*1115*/        OPC_EmitConvertToTarget, 2,
     674             : /*1117*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::Select), 0|OPFL_GlueInput,
     675             :                     MVT::i64, 5/*#Ops*/, 0, 1, 5, 3, 4, 
     676             :                 // Src: (BPFselectcc:i64 i64:i64:$lhs, i64:i64:$rhs, (imm:i64):$imm, i64:i64:$src, i64:i64:$src2) - Complexity = 6
     677             :                 // Dst: (Select:i64 i64:i64:$lhs, i64:i64:$rhs, (imm:i64):$imm, i64:i64:$src, i64:i64:$src2)
     678             : /*1128*/      0, /*End of Scope*/
     679             : /*1129*/    /*SwitchOpcode*/ 64, TARGET_VAL(ISD::AND),// ->1196
     680             : /*1132*/      OPC_Scope, 29, /*->1163*/ // 2 children in Scope
     681             : /*1134*/        OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
     682             : /*1140*/        OPC_RecordChild0, // #0 = $src
     683             : /*1141*/        OPC_EmitInteger, MVT::i64, 32, 
     684             : /*1144*/        OPC_EmitNode1, TARGET_VAL(BPF::SLL_ri), 0,
     685             :                     MVT::i64, 2/*#Ops*/, 0, 1,  // Results = #2
     686             : /*1152*/        OPC_EmitInteger, MVT::i64, 32, 
     687             : /*1155*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_ri), 0,
     688             :                     MVT::i64, 2/*#Ops*/, 2, 3, 
     689             :                 // Src: (and:i64 GPR:i64:$src, 4294967295:i64) - Complexity = 8
     690             :                 // Dst: (SRL_ri:i64 (SLL_ri:i64 GPR:i64:$src, 32:i64), 32:i64)
     691             : /*1163*/      /*Scope*/ 31, /*->1195*/
     692             : /*1164*/        OPC_RecordChild0, // #0 = $src2
     693             : /*1165*/        OPC_RecordChild1, // #1 = $imm
     694             : /*1166*/        OPC_Scope, 17, /*->1185*/ // 2 children in Scope
     695             : /*1168*/          OPC_MoveChild1,
     696             : /*1169*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     697             : /*1172*/          OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     698             : /*1174*/          OPC_MoveParent,
     699             : /*1175*/          OPC_EmitConvertToTarget, 1,
     700             : /*1177*/          OPC_MorphNodeTo1, TARGET_VAL(BPF::AND_ri), 0,
     701             :                       MVT::i64, 2/*#Ops*/, 0, 2, 
     702             :                   // Src: (and:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     703             :                   // Dst: (AND_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     704             : /*1185*/        /*Scope*/ 8, /*->1194*/
     705             : /*1186*/          OPC_MorphNodeTo1, TARGET_VAL(BPF::AND_rr), 0,
     706             :                       MVT::i64, 2/*#Ops*/, 0, 1, 
     707             :                   // Src: (and:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     708             :                   // Dst: (AND_rr:i64 i64:i64:$src2, i64:i64:$src)
     709             : /*1194*/        0, /*End of Scope*/
     710             : /*1195*/      0, /*End of Scope*/
     711             : /*1196*/    /*SwitchOpcode*/ 31, TARGET_VAL(ISD::SUB),// ->1230
     712             : /*1199*/      OPC_RecordChild0, // #0 = $src2
     713             : /*1200*/      OPC_RecordChild1, // #1 = $imm
     714             : /*1201*/      OPC_Scope, 17, /*->1220*/ // 2 children in Scope
     715             : /*1203*/        OPC_MoveChild1,
     716             : /*1204*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     717             : /*1207*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     718             : /*1209*/        OPC_MoveParent,
     719             : /*1210*/        OPC_EmitConvertToTarget, 1,
     720             : /*1212*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SUB_ri), 0,
     721             :                     MVT::i64, 2/*#Ops*/, 0, 2, 
     722             :                 // Src: (sub:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     723             :                 // Dst: (SUB_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     724             : /*1220*/      /*Scope*/ 8, /*->1229*/
     725             : /*1221*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SUB_rr), 0,
     726             :                     MVT::i64, 2/*#Ops*/, 0, 1, 
     727             :                 // Src: (sub:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     728             :                 // Dst: (SUB_rr:i64 i64:i64:$src2, i64:i64:$src)
     729             : /*1229*/      0, /*End of Scope*/
     730             : /*1230*/    /*SwitchOpcode*/ 31, TARGET_VAL(ISD::SHL),// ->1264
     731             : /*1233*/      OPC_RecordChild0, // #0 = $src2
     732             : /*1234*/      OPC_RecordChild1, // #1 = $imm
     733             : /*1235*/      OPC_Scope, 17, /*->1254*/ // 2 children in Scope
     734             : /*1237*/        OPC_MoveChild1,
     735             : /*1238*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     736             : /*1241*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     737             : /*1243*/        OPC_MoveParent,
     738             : /*1244*/        OPC_EmitConvertToTarget, 1,
     739             : /*1246*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SLL_ri), 0,
     740             :                     MVT::i64, 2/*#Ops*/, 0, 2, 
     741             :                 // Src: (shl:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     742             :                 // Dst: (SLL_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     743             : /*1254*/      /*Scope*/ 8, /*->1263*/
     744             : /*1255*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SLL_rr), 0,
     745             :                     MVT::i64, 2/*#Ops*/, 0, 1, 
     746             :                 // Src: (shl:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     747             :                 // Dst: (SLL_rr:i64 i64:i64:$src2, i64:i64:$src)
     748             : /*1263*/      0, /*End of Scope*/
     749             : /*1264*/    /*SwitchOpcode*/ 31, TARGET_VAL(ISD::XOR),// ->1298
     750             : /*1267*/      OPC_RecordChild0, // #0 = $src2
     751             : /*1268*/      OPC_RecordChild1, // #1 = $imm
     752             : /*1269*/      OPC_Scope, 17, /*->1288*/ // 2 children in Scope
     753             : /*1271*/        OPC_MoveChild1,
     754             : /*1272*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     755             : /*1275*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     756             : /*1277*/        OPC_MoveParent,
     757             : /*1278*/        OPC_EmitConvertToTarget, 1,
     758             : /*1280*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::XOR_ri), 0,
     759             :                     MVT::i64, 2/*#Ops*/, 0, 2, 
     760             :                 // Src: (xor:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     761             :                 // Dst: (XOR_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     762             : /*1288*/      /*Scope*/ 8, /*->1297*/
     763             : /*1289*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::XOR_rr), 0,
     764             :                     MVT::i64, 2/*#Ops*/, 0, 1, 
     765             :                 // Src: (xor:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     766             :                 // Dst: (XOR_rr:i64 i64:i64:$src2, i64:i64:$src)
     767             : /*1297*/      0, /*End of Scope*/
     768             : /*1298*/    /*SwitchOpcode*/ 31, TARGET_VAL(ISD::SRA),// ->1332
     769             : /*1301*/      OPC_RecordChild0, // #0 = $src2
     770             : /*1302*/      OPC_RecordChild1, // #1 = $imm
     771             : /*1303*/      OPC_Scope, 17, /*->1322*/ // 2 children in Scope
     772             : /*1305*/        OPC_MoveChild1,
     773             : /*1306*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     774             : /*1309*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     775             : /*1311*/        OPC_MoveParent,
     776             : /*1312*/        OPC_EmitConvertToTarget, 1,
     777             : /*1314*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_ri), 0,
     778             :                     MVT::i64, 2/*#Ops*/, 0, 2, 
     779             :                 // Src: (sra:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     780             :                 // Dst: (SRA_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     781             : /*1322*/      /*Scope*/ 8, /*->1331*/
     782             : /*1323*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_rr), 0,
     783             :                     MVT::i64, 2/*#Ops*/, 0, 1, 
     784             :                 // Src: (sra:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     785             :                 // Dst: (SRA_rr:i64 i64:i64:$src2, i64:i64:$src)
     786             : /*1331*/      0, /*End of Scope*/
     787             : /*1332*/    /*SwitchOpcode*/ 31, TARGET_VAL(ISD::MUL),// ->1366
     788             : /*1335*/      OPC_RecordChild0, // #0 = $src2
     789             : /*1336*/      OPC_RecordChild1, // #1 = $imm
     790             : /*1337*/      OPC_Scope, 17, /*->1356*/ // 2 children in Scope
     791             : /*1339*/        OPC_MoveChild1,
     792             : /*1340*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     793             : /*1343*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     794             : /*1345*/        OPC_MoveParent,
     795             : /*1346*/        OPC_EmitConvertToTarget, 1,
     796             : /*1348*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::MUL_ri), 0,
     797             :                     MVT::i64, 2/*#Ops*/, 0, 2, 
     798             :                 // Src: (mul:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     799             :                 // Dst: (MUL_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     800             : /*1356*/      /*Scope*/ 8, /*->1365*/
     801             : /*1357*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::MUL_rr), 0,
     802             :                     MVT::i64, 2/*#Ops*/, 0, 1, 
     803             :                 // Src: (mul:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     804             :                 // Dst: (MUL_rr:i64 i64:i64:$src2, i64:i64:$src)
     805             : /*1365*/      0, /*End of Scope*/
     806             : /*1366*/    /*SwitchOpcode*/ 31, TARGET_VAL(ISD::UDIV),// ->1400
     807             : /*1369*/      OPC_RecordChild0, // #0 = $src2
     808             : /*1370*/      OPC_RecordChild1, // #1 = $imm
     809             : /*1371*/      OPC_Scope, 17, /*->1390*/ // 2 children in Scope
     810             : /*1373*/        OPC_MoveChild1,
     811             : /*1374*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
     812             : /*1377*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     813             : /*1379*/        OPC_MoveParent,
     814             : /*1380*/        OPC_EmitConvertToTarget, 1,
     815             : /*1382*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::DIV_ri), 0,
     816             :                     MVT::i64, 2/*#Ops*/, 0, 2, 
     817             :                 // Src: (udiv:i64 GPR:i64:$src2, (imm:i64)<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
     818             :                 // Dst: (DIV_ri:i64 GPR:i64:$src2, (imm:i64):$imm)
     819             : /*1390*/      /*Scope*/ 8, /*->1399*/
     820             : /*1391*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::DIV_rr), 0,
     821             :                     MVT::i64, 2/*#Ops*/, 0, 1, 
     822             :                 // Src: (udiv:i64 i64:i64:$src2, i64:i64:$src) - Complexity = 3
     823             :                 // Dst: (DIV_rr:i64 i64:i64:$src2, i64:i64:$src)
     824             : /*1399*/      0, /*End of Scope*/
     825             : /*1400*/    /*SwitchOpcode*/ 15, TARGET_VAL(BPFISD::Wrapper),// ->1418
     826             : /*1403*/      OPC_RecordChild0, // #0 = $in
     827             : /*1404*/      OPC_MoveChild0,
     828             : /*1405*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
     829             : /*1408*/      OPC_MoveParent,
     830             : /*1409*/      OPC_CheckType, MVT::i64,
     831             : /*1411*/      OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_imm64), 0,
     832             :                   MVT::i64, 1/*#Ops*/, 0, 
     833             :               // Src: (BPFWrapper:i64 (tglobaladdr:i64):$in) - Complexity = 6
     834             :               // Dst: (LD_imm64:i64 (tglobaladdr:i64):$in)
     835             : /*1418*/    /*SwitchOpcode*/ 44, TARGET_VAL(BPFISD::CALL),// ->1465
     836             : /*1421*/      OPC_RecordNode, // #0 = 'BPFcall' chained node
     837             : /*1422*/      OPC_CaptureGlueInput,
     838             : /*1423*/      OPC_RecordChild1, // #1 = $dst
     839             : /*1424*/      OPC_MoveChild1,
     840             : /*1425*/      OPC_SwitchOpcode /*3 cases */, 9, TARGET_VAL(ISD::TargetGlobalAddress),// ->1438
     841             : /*1429*/        OPC_MoveParent,
     842             : /*1430*/        OPC_EmitMergeInputChains1_0,
     843             : /*1431*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     844             :                     MVT::i64, 1/*#Ops*/, 1, 
     845             :                 // Src: (BPFcall (tglobaladdr:iPTR):$dst) - Complexity = 6
     846             :                 // Dst: (JAL:i64 (tglobaladdr:i64):$dst)
     847             : /*1438*/      /*SwitchOpcode*/ 9, TARGET_VAL(ISD::TargetExternalSymbol),// ->1450
     848             : /*1441*/        OPC_MoveParent,
     849             : /*1442*/        OPC_EmitMergeInputChains1_0,
     850             : /*1443*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     851             :                     MVT::i64, 1/*#Ops*/, 1, 
     852             :                 // Src: (BPFcall (texternalsym:iPTR):$dst) - Complexity = 6
     853             :                 // Dst: (JAL:i64 (texternalsym:i64):$dst)
     854             : /*1450*/      /*SwitchOpcode*/ 11, TARGET_VAL(ISD::Constant),// ->1464
     855             : /*1453*/        OPC_MoveParent,
     856             : /*1454*/        OPC_EmitMergeInputChains1_0,
     857             : /*1455*/        OPC_EmitConvertToTarget, 1,
     858             : /*1457*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
     859             :                     MVT::i64, 1/*#Ops*/, 2, 
     860             :                 // Src: (BPFcall (imm:iPTR):$dst) - Complexity = 6
     861             :                 // Dst: (JAL:i64 (imm:i64):$dst)
     862             : /*1464*/      0, // EndSwitchOpcode
     863             : /*1465*/    /*SwitchOpcode*/ 25, TARGET_VAL(ISD::Constant),// ->1493
     864             : /*1468*/      OPC_RecordNode, // #0 = $imm
     865             : /*1469*/      OPC_Scope, 11, /*->1482*/ // 2 children in Scope
     866             : /*1471*/        OPC_CheckPredicate, 0, // Predicate_i64immSExt32
     867             : /*1473*/        OPC_EmitConvertToTarget, 0,
     868             : /*1475*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::MOV_ri), 0,
     869             :                     MVT::i64, 1/*#Ops*/, 1, 
     870             :                 // Src: (imm:i64)<<P:Predicate_i64immSExt32>>:$imm - Complexity = 4
     871             :                 // Dst: (MOV_ri:i64 (imm:i64):$imm)
     872             : /*1482*/      /*Scope*/ 9, /*->1492*/
     873             : /*1483*/        OPC_EmitConvertToTarget, 0,
     874             : /*1485*/        OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_imm64), 0,
     875             :                     MVT::i64, 1/*#Ops*/, 1, 
     876             :                 // Src: (imm:i64):$imm - Complexity = 3
     877             :                 // Dst: (LD_imm64:i64 (imm:i64):$imm)
     878             : /*1492*/      0, /*End of Scope*/
     879             : /*1493*/    /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->1510
     880             : /*1496*/      OPC_RecordNode, // #0 = 'br' chained node
     881             : /*1497*/      OPC_RecordChild1, // #1 = $BrDst
     882             : /*1498*/      OPC_MoveChild1,
     883             : /*1499*/      OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     884             : /*1502*/      OPC_MoveParent,
     885             : /*1503*/      OPC_EmitMergeInputChains1_0,
     886             : /*1504*/      OPC_MorphNodeTo0, TARGET_VAL(BPF::JMP), 0|OPFL_Chain,
     887             :                   1/*#Ops*/, 1, 
     888             :               // Src: (br (bb:Other):$BrDst) - Complexity = 3
     889             :               // Dst: (JMP (bb:Other):$BrDst)
     890             : /*1510*/    /*SwitchOpcode*/ 8, TARGET_VAL(BPFISD::RET_FLAG),// ->1521
     891             : /*1513*/      OPC_RecordNode, // #0 = 'BPFretflag' chained node
     892             : /*1514*/      OPC_CaptureGlueInput,
     893             : /*1515*/      OPC_EmitMergeInputChains1_0,
     894             : /*1516*/      OPC_MorphNodeTo0, TARGET_VAL(BPF::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
     895             :                   0/*#Ops*/, 
     896             :               // Src: (BPFretflag) - Complexity = 3
     897             :               // Dst: (RET)
     898             : /*1521*/    /*SwitchOpcode*/ 8, TARGET_VAL(ISD::BSWAP),// ->1532
     899             : /*1524*/      OPC_RecordChild0, // #0 = $src
     900             : /*1525*/      OPC_MorphNodeTo1, TARGET_VAL(BPF::BSWAP64), 0,
     901             :                   MVT::i64, 1/*#Ops*/, 0, 
     902             :               // Src: (bswap:i64 GPR:i64:$src) - Complexity = 3
     903             :               // Dst: (BSWAP64:i64 GPR:i64:$src)
     904             : /*1532*/    0, // EndSwitchOpcode
     905             :     0
     906             :   }; // Total Array size is 1534 bytes
     907             : 
     908             :   // Opcode Histogram:
     909             :   // #OPC_Scope                          = 30
     910             :   // #OPC_RecordNode                     = 13
     911             :   // #OPC_RecordChild                    = 75
     912             :   // #OPC_RecordMemRef                   = 3
     913             :   // #OPC_CaptureGlueInput               = 5
     914             :   // #OPC_MoveChild                      = 49
     915             :   // #OPC_MoveParent                     = 69
     916             :   // #OPC_CheckSame                      = 0
     917             :   // #OPC_CheckChildSame                 = 0
     918             :   // #OPC_CheckPatternPredicate          = 0
     919             :   // #OPC_CheckPredicate                 = 53
     920             :   // #OPC_CheckOpcode                    = 48
     921             :   // #OPC_SwitchOpcode                   = 2
     922             :   // #OPC_CheckType                      = 6
     923             :   // #OPC_SwitchType                     = 0
     924             :   // #OPC_CheckChildType                 = 9
     925             :   // #OPC_CheckInteger                   = 0
     926             :   // #OPC_CheckChildInteger              = 6
     927             :   // #OPC_CheckCondCode                  = 0
     928             :   // #OPC_CheckValueType                 = 0
     929             :   // #OPC_CheckComplexPat                = 15
     930             :   // #OPC_CheckAndImm                    = 1
     931             :   // #OPC_CheckOrImm                     = 0
     932             :   // #OPC_CheckFoldableChainNode         = 0
     933             :   // #OPC_EmitInteger                    = 2
     934             :   // #OPC_EmitStringInteger              = 0
     935             :   // #OPC_EmitRegister                   = 0
     936             :   // #OPC_EmitConvertToTarget            = 31
     937             :   // #OPC_EmitMergeInputChains           = 47
     938             :   // #OPC_EmitCopyToReg                  = 0
     939             :   // #OPC_EmitNode                       = 1
     940             :   // #OPC_EmitNodeXForm                  = 0
     941             :   // #OPC_CompleteMatch                  = 0
     942             :   // #OPC_MorphNodeTo                    = 78
     943             : 
     944             :   #undef TARGET_VAL
     945        3024 :   SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
     946             : }
     947        1251 : bool CheckNodePredicate(SDNode *Node,
     948             :                         unsigned PredNo) const override {
     949        1251 :   switch (PredNo) {
     950           0 :   default: llvm_unreachable("Invalid predicate in table?");
     951         446 :   case 0: { 
     952             :     // Predicate_i64immSExt32
     953         446 :     auto *N = cast<ConstantSDNode>(Node);
     954         892 : return isInt<32>(N->getSExtValue()); 
     955             :   }
     956         143 :   case 1: { 
     957             :     // Predicate_unindexedstore
     958         143 :     SDNode *N = Node;
     959             : 
     960         286 :   return cast<StoreSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
     961             : 
     962             :   }
     963         143 :   case 2: { 
     964             :     // Predicate_truncstore
     965         143 :     SDNode *N = Node;
     966             : 
     967         286 :   return cast<StoreSDNode>(N)->isTruncatingStore();
     968             : 
     969             :   }
     970         131 :   case 3: { 
     971             :     // Predicate_truncstorei32
     972         131 :     SDNode *N = Node;
     973             : 
     974         393 :   return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i32;
     975             : 
     976             :   }
     977          68 :   case 4: { 
     978             :     // Predicate_truncstorei16
     979          68 :     SDNode *N = Node;
     980             : 
     981         204 :   return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i16;
     982             : 
     983             :   }
     984          11 :   case 5: { 
     985             :     // Predicate_truncstorei8
     986          11 :     SDNode *N = Node;
     987             : 
     988          33 :   return cast<StoreSDNode>(N)->getMemoryVT() == MVT::i8;
     989             : 
     990             :   }
     991          12 :   case 6: { 
     992             :     // Predicate_store
     993          12 :     SDNode *N = Node;
     994             : 
     995          24 :   return !cast<StoreSDNode>(N)->isTruncatingStore();
     996             : 
     997             :   }
     998          35 :   case 7: { 
     999             :     // Predicate_unindexedload
    1000          35 :     SDNode *N = Node;
    1001             : 
    1002          70 :   return cast<LoadSDNode>(N)->getAddressingMode() == ISD::UNINDEXED;
    1003             : 
    1004             :   }
    1005          35 :   case 8: { 
    1006             :     // Predicate_zextload
    1007          35 :     SDNode *N = Node;
    1008             : 
    1009          70 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD;
    1010             : 
    1011             :   }
    1012          14 :   case 9: { 
    1013             :     // Predicate_zextloadi32
    1014             :     // Predicate_extloadi32
    1015          14 :     SDNode *N = Node;
    1016             : 
    1017          42 :   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i32;
    1018             : 
    1019             :   }
    1020          18 :   case 10: { 
    1021             :     // Predicate_zextloadi16
    1022             :     // Predicate_extloadi16
    1023          18 :     SDNode *N = Node;
    1024             : 
    1025          54 :   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i16;
    1026             : 
    1027             :   }
    1028          19 :   case 11: { 
    1029             :     // Predicate_zextloadi8
    1030             :     // Predicate_extloadi8
    1031          19 :     SDNode *N = Node;
    1032             : 
    1033          57 :   return cast<LoadSDNode>(N)->getMemoryVT() == MVT::i8;
    1034             : 
    1035             :   }
    1036          25 :   case 12: { 
    1037             :     // Predicate_load
    1038          25 :     SDNode *N = Node;
    1039             : 
    1040          50 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::NON_EXTLOAD;
    1041             : 
    1042             :   }
    1043          15 :   case 13: { 
    1044             :     // Predicate_extload
    1045          15 :     SDNode *N = Node;
    1046             : 
    1047          30 :   return cast<LoadSDNode>(N)->getExtensionType() == ISD::EXTLOAD;
    1048             : 
    1049             :   }
    1050           5 :   case 14: { 
    1051             :     // Predicate_atomic_load_add_32
    1052           5 :     SDNode *N = Node;
    1053             : 
    1054          15 :     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i32;
    1055             :   
    1056             :   }
    1057           3 :   case 15: { 
    1058             :     // Predicate_atomic_load_add_64
    1059           3 :     SDNode *N = Node;
    1060             : 
    1061           9 :     return cast<AtomicSDNode>(N)->getMemoryVT() == MVT::i64;
    1062             :   
    1063             :   }
    1064          46 :   case 16: { 
    1065             :     // Predicate_BPF_CC_EQ
    1066          46 :     auto *N = cast<ConstantSDNode>(Node);
    1067          46 : return (N->getZExtValue() == ISD::SETEQ);
    1068             :   }
    1069          25 :   case 17: { 
    1070             :     // Predicate_BPF_CC_GTU
    1071          25 :     auto *N = cast<ConstantSDNode>(Node);
    1072          25 : return (N->getZExtValue() == ISD::SETUGT);
    1073             :   }
    1074          25 :   case 18: { 
    1075             :     // Predicate_BPF_CC_GEU
    1076          25 :     auto *N = cast<ConstantSDNode>(Node);
    1077          25 : return (N->getZExtValue() == ISD::SETUGE);
    1078             :   }
    1079          25 :   case 19: { 
    1080             :     // Predicate_BPF_CC_NE
    1081          25 :     auto *N = cast<ConstantSDNode>(Node);
    1082          25 : return (N->getZExtValue() == ISD::SETNE);
    1083             :   }
    1084           5 :   case 20: { 
    1085             :     // Predicate_BPF_CC_GT
    1086           5 :     auto *N = cast<ConstantSDNode>(Node);
    1087           5 : return (N->getZExtValue() == ISD::SETGT);
    1088             :   }
    1089           2 :   case 21: { 
    1090             :     // Predicate_BPF_CC_GE
    1091           2 :     auto *N = cast<ConstantSDNode>(Node);
    1092           2 : return (N->getZExtValue() == ISD::SETGE);
    1093             :   }
    1094           0 :   case 22: { 
    1095             :     // Predicate_BPF_CC_LTU
    1096           0 :     auto *N = cast<ConstantSDNode>(Node);
    1097           0 : return (N->getZExtValue() == ISD::SETULT);
    1098             :   }
    1099           0 :   case 23: { 
    1100             :     // Predicate_BPF_CC_LEU
    1101           0 :     auto *N = cast<ConstantSDNode>(Node);
    1102           0 : return (N->getZExtValue() == ISD::SETULE);
    1103             :   }
    1104           0 :   case 24: { 
    1105             :     // Predicate_BPF_CC_LT
    1106           0 :     auto *N = cast<ConstantSDNode>(Node);
    1107           0 : return (N->getZExtValue() == ISD::SETLT);
    1108             :   }
    1109           0 :   case 25: { 
    1110             :     // Predicate_BPF_CC_LE
    1111           0 :     auto *N = cast<ConstantSDNode>(Node);
    1112           0 : return (N->getZExtValue() == ISD::SETLE);
    1113             :   }
    1114             :   }
    1115             : }
    1116             : 
    1117         269 : bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
    1118             :                          SDValue N, unsigned PatternNo,
    1119             :          SmallVectorImpl<std::pair<SDValue, SDNode*> > &Result) override {
    1120         538 :   unsigned NextRes = Result.size();
    1121         269 :   switch (PatternNo) {
    1122           0 :   default: llvm_unreachable("Invalid pattern # in table?");
    1123         183 :   case 0:
    1124         183 :     Result.resize(NextRes+2);
    1125         549 :   return SelectAddr(N, Result[NextRes+0].first, Result[NextRes+1].first);
    1126          86 :   case 1:
    1127          86 :     Result.resize(NextRes+2);
    1128         258 :   return SelectFIAddr(N, Result[NextRes+0].first, Result[NextRes+1].first);
    1129             :   }
    1130             : }
    1131             : 

Generated by: LCOV version 1.13