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 : // If GET_DAGISEL_DECL is #defined with any value, only function
13 : // declarations will be included when this file is included.
14 : // If GET_DAGISEL_BODY is #defined, its value should be the name of
15 : // the instruction selector class. Function bodies will be emitted
16 : // and each function's name will be qualified with the name of the
17 : // class.
18 : //
19 : // When neither of the GET_DAGISEL* macros is defined, the functions
20 : // are emitted inline.
21 :
22 : #if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
23 : #error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
24 : #endif
25 :
26 : #ifdef GET_DAGISEL_BODY
27 : #define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
28 : #define LOCAL_DAGISEL_STRINGIZE_(X) #X
29 : static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
30 : "GET_DAGISEL_BODY is empty: it should be defined with the class name");
31 : #undef LOCAL_DAGISEL_STRINGIZE_
32 : #undef LOCAL_DAGISEL_STRINGIZE
33 : #endif
34 :
35 : #if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
36 : #define DAGISEL_INLINE 1
37 : #else
38 : #define DAGISEL_INLINE 0
39 : #endif
40 :
41 : #if !DAGISEL_INLINE
42 : #define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
43 : #else
44 : #define DAGISEL_CLASS_COLONCOLON
45 : #endif
46 :
47 : #ifdef GET_DAGISEL_DECL
48 : void SelectCode(SDNode *N);
49 : #endif
50 : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
51 : void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
52 : {
53 : // Some target values are emitted as 2 bytes, TARGET_VAL handles
54 : // this.
55 : #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
56 : static const unsigned char MatcherTable[] = {
57 : /* 0*/ OPC_SwitchOpcode /*29 cases */, 21|128,1/*149*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->154
58 : /* 5*/ OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
59 : /* 6*/ OPC_Scope, 28, /*->36*/ // 4 children in Scope
60 : /* 8*/ OPC_CheckChild1Integer, 109|128,9/*1261*/,
61 : /* 11*/ OPC_RecordChild2, // #1 = $pseudo
62 : /* 12*/ OPC_MoveChild2,
63 : /* 13*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
64 : /* 16*/ OPC_MoveParent,
65 : /* 17*/ OPC_RecordChild3, // #2 = $imm
66 : /* 18*/ OPC_MoveChild3,
67 : /* 19*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
68 : /* 22*/ OPC_MoveParent,
69 : /* 23*/ OPC_EmitMergeInputChains1_0,
70 : /* 24*/ OPC_EmitConvertToTarget, 1,
71 : /* 26*/ OPC_EmitConvertToTarget, 2,
72 : /* 28*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_pseudo), 0|OPFL_Chain,
73 : MVT::i64, 2/*#Ops*/, 3, 4,
74 : // Src: (intrinsic_w_chain:{ *:[i64] } 1261:{ *:[iPTR] }, (imm:{ *:[i64] }):$pseudo, (imm:{ *:[i64] }):$imm) - Complexity = 14
75 : // Dst: (LD_pseudo:{ *:[i64] } (imm:{ *:[i64] }):$pseudo, (imm:{ *:[i64] }):$imm)
76 : /* 36*/ /*Scope*/ 38, /*->75*/
77 : /* 37*/ OPC_CheckChild1Integer, 106|128,9/*1258*/,
78 : /* 40*/ OPC_RecordChild2, // #1 = $skb
79 : /* 41*/ OPC_CheckChild2Type, MVT::i64,
80 : /* 43*/ OPC_RecordChild3, // #2 = $imm
81 : /* 44*/ OPC_Scope, 18, /*->64*/ // 2 children in Scope
82 : /* 46*/ OPC_MoveChild3,
83 : /* 47*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
84 : /* 50*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
85 : /* 52*/ OPC_MoveParent,
86 : /* 53*/ OPC_EmitMergeInputChains1_0,
87 : /* 54*/ OPC_EmitConvertToTarget, 2,
88 : /* 56*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_B), 0|OPFL_Chain,
89 : MVT::i64, 2/*#Ops*/, 1, 3,
90 : // Src: (intrinsic_w_chain:{ *:[i64] } 1258:{ *:[iPTR] }, GPR:{ *:[i64] }:$skb, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 12
91 : // Dst: (LD_ABS_B:{ *:[i64] } GPR:{ *:[i64] }:$skb, (imm:{ *:[i64] }):$imm)
92 : /* 64*/ /*Scope*/ 9, /*->74*/
93 : /* 65*/ OPC_EmitMergeInputChains1_0,
94 : /* 66*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_B), 0|OPFL_Chain,
95 : MVT::i64, 2/*#Ops*/, 1, 2,
96 : // Src: (intrinsic_w_chain:{ *:[i64] } 1258:{ *:[iPTR] }, GPR:{ *:[i64] }:$skb, GPR:{ *:[i64] }:$val) - Complexity = 8
97 : // Dst: (LD_IND_B:{ *:[i64] } GPR:{ *:[i64] }:$skb, GPR:{ *:[i64] }:$val)
98 : /* 74*/ 0, /*End of Scope*/
99 : /* 75*/ /*Scope*/ 38, /*->114*/
100 : /* 76*/ OPC_CheckChild1Integer, 107|128,9/*1259*/,
101 : /* 79*/ OPC_RecordChild2, // #1 = $skb
102 : /* 80*/ OPC_CheckChild2Type, MVT::i64,
103 : /* 82*/ OPC_RecordChild3, // #2 = $imm
104 : /* 83*/ OPC_Scope, 18, /*->103*/ // 2 children in Scope
105 : /* 85*/ OPC_MoveChild3,
106 : /* 86*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
107 : /* 89*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
108 : /* 91*/ OPC_MoveParent,
109 : /* 92*/ OPC_EmitMergeInputChains1_0,
110 : /* 93*/ OPC_EmitConvertToTarget, 2,
111 : /* 95*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_H), 0|OPFL_Chain,
112 : MVT::i64, 2/*#Ops*/, 1, 3,
113 : // Src: (intrinsic_w_chain:{ *:[i64] } 1259:{ *:[iPTR] }, GPR:{ *:[i64] }:$skb, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 12
114 : // Dst: (LD_ABS_H:{ *:[i64] } GPR:{ *:[i64] }:$skb, (imm:{ *:[i64] }):$imm)
115 : /* 103*/ /*Scope*/ 9, /*->113*/
116 : /* 104*/ OPC_EmitMergeInputChains1_0,
117 : /* 105*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_H), 0|OPFL_Chain,
118 : MVT::i64, 2/*#Ops*/, 1, 2,
119 : // Src: (intrinsic_w_chain:{ *:[i64] } 1259:{ *:[iPTR] }, GPR:{ *:[i64] }:$skb, GPR:{ *:[i64] }:$val) - Complexity = 8
120 : // Dst: (LD_IND_H:{ *:[i64] } GPR:{ *:[i64] }:$skb, GPR:{ *:[i64] }:$val)
121 : /* 113*/ 0, /*End of Scope*/
122 : /* 114*/ /*Scope*/ 38, /*->153*/
123 : /* 115*/ OPC_CheckChild1Integer, 108|128,9/*1260*/,
124 : /* 118*/ OPC_RecordChild2, // #1 = $skb
125 : /* 119*/ OPC_CheckChild2Type, MVT::i64,
126 : /* 121*/ OPC_RecordChild3, // #2 = $imm
127 : /* 122*/ OPC_Scope, 18, /*->142*/ // 2 children in Scope
128 : /* 124*/ OPC_MoveChild3,
129 : /* 125*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
130 : /* 128*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
131 : /* 130*/ OPC_MoveParent,
132 : /* 131*/ OPC_EmitMergeInputChains1_0,
133 : /* 132*/ OPC_EmitConvertToTarget, 2,
134 : /* 134*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_W), 0|OPFL_Chain,
135 : MVT::i64, 2/*#Ops*/, 1, 3,
136 : // Src: (intrinsic_w_chain:{ *:[i64] } 1260:{ *:[iPTR] }, GPR:{ *:[i64] }:$skb, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 12
137 : // Dst: (LD_ABS_W:{ *:[i64] } GPR:{ *:[i64] }:$skb, (imm:{ *:[i64] }):$imm)
138 : /* 142*/ /*Scope*/ 9, /*->152*/
139 : /* 143*/ OPC_EmitMergeInputChains1_0,
140 : /* 144*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_W), 0|OPFL_Chain,
141 : MVT::i64, 2/*#Ops*/, 1, 2,
142 : // Src: (intrinsic_w_chain:{ *:[i64] } 1260:{ *:[iPTR] }, GPR:{ *:[i64] }:$skb, GPR:{ *:[i64] }:$val) - Complexity = 8
143 : // Dst: (LD_IND_W:{ *:[i64] } GPR:{ *:[i64] }:$skb, GPR:{ *:[i64] }:$val)
144 : /* 152*/ 0, /*End of Scope*/
145 : /* 153*/ 0, /*End of Scope*/
146 : /* 154*/ /*SwitchOpcode*/ 114|128,1/*242*/, TARGET_VAL(ISD::STORE),// ->400
147 : /* 158*/ OPC_RecordMemRef,
148 : /* 159*/ OPC_RecordNode, // #0 = 'st' chained node
149 : /* 160*/ OPC_RecordChild1, // #1 = $src
150 : /* 161*/ OPC_Scope, 41|128,1/*169*/, /*->333*/ // 2 children in Scope
151 : /* 164*/ OPC_CheckChild1Type, MVT::i64,
152 : /* 166*/ OPC_RecordChild2, // #2 = $addr
153 : /* 167*/ OPC_CheckChild2Type, MVT::i64,
154 : /* 169*/ OPC_CheckPredicate, 1, // Predicate_unindexedstore
155 : /* 171*/ OPC_Scope, 55, /*->228*/ // 3 children in Scope
156 : /* 173*/ OPC_CheckPredicate, 2, // Predicate_truncstore
157 : /* 175*/ OPC_Scope, 16, /*->193*/ // 3 children in Scope
158 : /* 177*/ OPC_CheckPredicate, 3, // Predicate_truncstorei32
159 : /* 179*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
160 : /* 181*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
161 : /* 184*/ OPC_EmitMergeInputChains1_0,
162 : /* 185*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STW), 0|OPFL_Chain|OPFL_MemRefs,
163 : 3/*#Ops*/, 1, 3, 4,
164 : // Src: (st i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 13
165 : // Dst: (STW i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)
166 : /* 193*/ /*Scope*/ 16, /*->210*/
167 : /* 194*/ OPC_CheckPredicate, 4, // Predicate_truncstorei16
168 : /* 196*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
169 : /* 198*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
170 : /* 201*/ OPC_EmitMergeInputChains1_0,
171 : /* 202*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STH), 0|OPFL_Chain|OPFL_MemRefs,
172 : 3/*#Ops*/, 1, 3, 4,
173 : // Src: (st i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
174 : // Dst: (STH i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)
175 : /* 210*/ /*Scope*/ 16, /*->227*/
176 : /* 211*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
177 : /* 213*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
178 : /* 215*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
179 : /* 218*/ OPC_EmitMergeInputChains1_0,
180 : /* 219*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STB), 0|OPFL_Chain|OPFL_MemRefs,
181 : 3/*#Ops*/, 1, 3, 4,
182 : // Src: (st i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
183 : // Dst: (STB i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)
184 : /* 227*/ 0, /*End of Scope*/
185 : /* 228*/ /*Scope*/ 14, /*->243*/
186 : /* 229*/ OPC_CheckPredicate, 6, // Predicate_store
187 : /* 231*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
188 : /* 234*/ OPC_EmitMergeInputChains1_0,
189 : /* 235*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STD), 0|OPFL_Chain|OPFL_MemRefs,
190 : 3/*#Ops*/, 1, 3, 4,
191 : // Src: (st i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
192 : // Dst: (STD i64:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$addr)
193 : /* 243*/ /*Scope*/ 88, /*->332*/
194 : /* 244*/ OPC_CheckPredicate, 2, // Predicate_truncstore
195 : /* 246*/ OPC_Scope, 27, /*->275*/ // 3 children in Scope
196 : /* 248*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
197 : /* 250*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
198 : /* 252*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4
199 : /* 255*/ OPC_EmitMergeInputChains1_0,
200 : /* 256*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
201 : /* 259*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
202 : MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6
203 : /* 267*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
204 : 3/*#Ops*/, 6, 3, 4,
205 : // Src: (st GPR:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
206 : // Dst: (STB32 (EXTRACT_SUBREG:{ *:[i32] } GPR:{ *:[i64] }:$src, sub_32:{ *:[i32] }), ADDRri:{ *:[i64] }:$dst)
207 : /* 275*/ /*Scope*/ 27, /*->303*/
208 : /* 276*/ OPC_CheckPredicate, 4, // Predicate_truncstorei16
209 : /* 278*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
210 : /* 280*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4
211 : /* 283*/ OPC_EmitMergeInputChains1_0,
212 : /* 284*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
213 : /* 287*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
214 : MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6
215 : /* 295*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
216 : 3/*#Ops*/, 6, 3, 4,
217 : // Src: (st GPR:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
218 : // Dst: (STH32 (EXTRACT_SUBREG:{ *:[i32] } GPR:{ *:[i64] }:$src, sub_32:{ *:[i32] }), ADDRri:{ *:[i64] }:$dst)
219 : /* 303*/ /*Scope*/ 27, /*->331*/
220 : /* 304*/ OPC_CheckPredicate, 3, // Predicate_truncstorei32
221 : /* 306*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
222 : /* 308*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$dst #3 #4
223 : /* 311*/ OPC_EmitMergeInputChains1_0,
224 : /* 312*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
225 : /* 315*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
226 : MVT::i32, 2/*#Ops*/, 1, 5, // Results = #6
227 : /* 323*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
228 : 3/*#Ops*/, 6, 3, 4,
229 : // Src: (st GPR:{ *:[i64] }:$src, ADDRri:{ *:[i64] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 13
230 : // Dst: (STW32 (EXTRACT_SUBREG:{ *:[i32] } GPR:{ *:[i64] }:$src, sub_32:{ *:[i32] }), ADDRri:{ *:[i64] }:$dst)
231 : /* 331*/ 0, /*End of Scope*/
232 : /* 332*/ 0, /*End of Scope*/
233 : /* 333*/ /*Scope*/ 65, /*->399*/
234 : /* 334*/ OPC_CheckChild1Type, MVT::i32,
235 : /* 336*/ OPC_RecordChild2, // #2 = $addr
236 : /* 337*/ OPC_CheckChild2Type, MVT::i64,
237 : /* 339*/ OPC_CheckPredicate, 1, // Predicate_unindexedstore
238 : /* 341*/ OPC_Scope, 16, /*->359*/ // 2 children in Scope
239 : /* 343*/ OPC_CheckPredicate, 6, // Predicate_store
240 : /* 345*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
241 : /* 347*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
242 : /* 350*/ OPC_EmitMergeInputChains1_0,
243 : /* 351*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
244 : 3/*#Ops*/, 1, 3, 4,
245 : // Src: (st i32:{ *:[i32] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 13
246 : // Dst: (STW32 i32:{ *:[i32] }:$src, ADDRri:{ *:[i64] }:$addr)
247 : /* 359*/ /*Scope*/ 38, /*->398*/
248 : /* 360*/ OPC_CheckPredicate, 2, // Predicate_truncstore
249 : /* 362*/ OPC_Scope, 16, /*->380*/ // 2 children in Scope
250 : /* 364*/ OPC_CheckPredicate, 4, // Predicate_truncstorei16
251 : /* 366*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
252 : /* 368*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
253 : /* 371*/ OPC_EmitMergeInputChains1_0,
254 : /* 372*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
255 : 3/*#Ops*/, 1, 3, 4,
256 : // Src: (st i32:{ *:[i32] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 13
257 : // Dst: (STH32 i32:{ *:[i32] }:$src, ADDRri:{ *:[i64] }:$addr)
258 : /* 380*/ /*Scope*/ 16, /*->397*/
259 : /* 381*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
260 : /* 383*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
261 : /* 385*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddr:$addr #3 #4
262 : /* 388*/ OPC_EmitMergeInputChains1_0,
263 : /* 389*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
264 : 3/*#Ops*/, 1, 3, 4,
265 : // Src: (st i32:{ *:[i32] }:$src, ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 13
266 : // Dst: (STB32 i32:{ *:[i32] }:$src, ADDRri:{ *:[i64] }:$addr)
267 : /* 397*/ 0, /*End of Scope*/
268 : /* 398*/ 0, /*End of Scope*/
269 : /* 399*/ 0, /*End of Scope*/
270 : /* 400*/ /*SwitchOpcode*/ 58|128,3/*442*/, TARGET_VAL(ISD::LOAD),// ->846
271 : /* 404*/ OPC_RecordMemRef,
272 : /* 405*/ OPC_RecordNode, // #0 = 'ld' chained node
273 : /* 406*/ OPC_RecordChild1, // #1 = $addr
274 : /* 407*/ OPC_CheckChild1Type, MVT::i64,
275 : /* 409*/ OPC_CheckPredicate, 7, // Predicate_unindexedload
276 : /* 411*/ OPC_SwitchType /*2 cases */, 75|128,2/*331*/, MVT::i64,// ->746
277 : /* 415*/ OPC_Scope, 55, /*->472*/ // 5 children in Scope
278 : /* 417*/ OPC_CheckPredicate, 8, // Predicate_zextload
279 : /* 419*/ OPC_Scope, 16, /*->437*/ // 3 children in Scope
280 : /* 421*/ OPC_CheckPredicate, 9, // Predicate_zextloadi32
281 : /* 423*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
282 : /* 425*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
283 : /* 428*/ OPC_EmitMergeInputChains1_0,
284 : /* 429*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
285 : MVT::i64, 2/*#Ops*/, 2, 3,
286 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
287 : // Dst: (LDW:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)
288 : /* 437*/ /*Scope*/ 16, /*->454*/
289 : /* 438*/ OPC_CheckPredicate, 10, // Predicate_zextloadi16
290 : /* 440*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
291 : /* 442*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
292 : /* 445*/ OPC_EmitMergeInputChains1_0,
293 : /* 446*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
294 : MVT::i64, 2/*#Ops*/, 2, 3,
295 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
296 : // Dst: (LDH:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)
297 : /* 454*/ /*Scope*/ 16, /*->471*/
298 : /* 455*/ OPC_CheckPredicate, 11, // Predicate_zextloadi8
299 : /* 457*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
300 : /* 459*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
301 : /* 462*/ OPC_EmitMergeInputChains1_0,
302 : /* 463*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
303 : MVT::i64, 2/*#Ops*/, 2, 3,
304 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
305 : // Dst: (LDB:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)
306 : /* 471*/ 0, /*End of Scope*/
307 : /* 472*/ /*Scope*/ 14, /*->487*/
308 : /* 473*/ OPC_CheckPredicate, 12, // Predicate_load
309 : /* 475*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
310 : /* 478*/ OPC_EmitMergeInputChains1_0,
311 : /* 479*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDD), 0|OPFL_Chain|OPFL_MemRefs,
312 : MVT::i64, 2/*#Ops*/, 2, 3,
313 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
314 : // Dst: (LDD:{ *:[i64] } ADDRri:{ *:[i64] }:$addr)
315 : /* 487*/ /*Scope*/ 55, /*->543*/
316 : /* 488*/ OPC_CheckPredicate, 13, // Predicate_extload
317 : /* 490*/ OPC_Scope, 16, /*->508*/ // 3 children in Scope
318 : /* 492*/ OPC_CheckPredicate, 11, // Predicate_extloadi8
319 : /* 494*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
320 : /* 496*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
321 : /* 499*/ OPC_EmitMergeInputChains1_0,
322 : /* 500*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
323 : MVT::i64, 2/*#Ops*/, 2, 3,
324 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
325 : // Dst: (LDB:{ *:[i64] } ADDRri:{ *:[i64] }:$src)
326 : /* 508*/ /*Scope*/ 16, /*->525*/
327 : /* 509*/ OPC_CheckPredicate, 10, // Predicate_extloadi16
328 : /* 511*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
329 : /* 513*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
330 : /* 516*/ OPC_EmitMergeInputChains1_0,
331 : /* 517*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
332 : MVT::i64, 2/*#Ops*/, 2, 3,
333 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
334 : // Dst: (LDH:{ *:[i64] } ADDRri:{ *:[i64] }:$src)
335 : /* 525*/ /*Scope*/ 16, /*->542*/
336 : /* 526*/ OPC_CheckPredicate, 9, // Predicate_extloadi32
337 : /* 528*/ OPC_CheckPatternPredicate, 0, // (!Subtarget->getHasAlu32())
338 : /* 530*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
339 : /* 533*/ OPC_EmitMergeInputChains1_0,
340 : /* 534*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
341 : MVT::i64, 2/*#Ops*/, 2, 3,
342 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
343 : // Dst: (LDW:{ *:[i64] } ADDRri:{ *:[i64] }:$src)
344 : /* 542*/ 0, /*End of Scope*/
345 : /* 543*/ /*Scope*/ 100, /*->644*/
346 : /* 544*/ OPC_CheckPredicate, 8, // Predicate_zextload
347 : /* 546*/ OPC_Scope, 31, /*->579*/ // 3 children in Scope
348 : /* 548*/ OPC_CheckPredicate, 11, // Predicate_zextloadi8
349 : /* 550*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
350 : /* 552*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
351 : /* 555*/ OPC_EmitMergeInputChains1_0,
352 : /* 556*/ OPC_EmitInteger, MVT::i64, 0,
353 : /* 559*/ OPC_EmitNode1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
354 : MVT::i32, 2/*#Ops*/, 2, 3, // Results = #5
355 : /* 567*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
356 : /* 570*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
357 : MVT::i64, 3/*#Ops*/, 4, 5, 6,
358 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
359 : // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDB32:{ *:[i32] } ADDRri:{ *:[i64] }:$src), sub_32:{ *:[i32] })
360 : /* 579*/ /*Scope*/ 31, /*->611*/
361 : /* 580*/ OPC_CheckPredicate, 10, // Predicate_zextloadi16
362 : /* 582*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
363 : /* 584*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
364 : /* 587*/ OPC_EmitMergeInputChains1_0,
365 : /* 588*/ OPC_EmitInteger, MVT::i64, 0,
366 : /* 591*/ OPC_EmitNode1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
367 : MVT::i32, 2/*#Ops*/, 2, 3, // Results = #5
368 : /* 599*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
369 : /* 602*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
370 : MVT::i64, 3/*#Ops*/, 4, 5, 6,
371 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
372 : // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDH32:{ *:[i32] } ADDRri:{ *:[i64] }:$src), sub_32:{ *:[i32] })
373 : /* 611*/ /*Scope*/ 31, /*->643*/
374 : /* 612*/ OPC_CheckPredicate, 9, // Predicate_zextloadi32
375 : /* 614*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
376 : /* 616*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
377 : /* 619*/ OPC_EmitMergeInputChains1_0,
378 : /* 620*/ OPC_EmitInteger, MVT::i64, 0,
379 : /* 623*/ OPC_EmitNode1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
380 : MVT::i32, 2/*#Ops*/, 2, 3, // Results = #5
381 : /* 631*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
382 : /* 634*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
383 : MVT::i64, 3/*#Ops*/, 4, 5, 6,
384 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 13
385 : // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDW32:{ *:[i32] } ADDRri:{ *:[i64] }:$src), sub_32:{ *:[i32] })
386 : /* 643*/ 0, /*End of Scope*/
387 : /* 644*/ /*Scope*/ 100, /*->745*/
388 : /* 645*/ OPC_CheckPredicate, 13, // Predicate_extload
389 : /* 647*/ OPC_Scope, 31, /*->680*/ // 3 children in Scope
390 : /* 649*/ OPC_CheckPredicate, 11, // Predicate_extloadi8
391 : /* 651*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
392 : /* 653*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
393 : /* 656*/ OPC_EmitMergeInputChains1_0,
394 : /* 657*/ OPC_EmitInteger, MVT::i64, 0,
395 : /* 660*/ OPC_EmitNode1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
396 : MVT::i32, 2/*#Ops*/, 2, 3, // Results = #5
397 : /* 668*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
398 : /* 671*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
399 : MVT::i64, 3/*#Ops*/, 4, 5, 6,
400 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
401 : // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDB32:{ *:[i32] } ADDRri:{ *:[i64] }:$src), sub_32:{ *:[i32] })
402 : /* 680*/ /*Scope*/ 31, /*->712*/
403 : /* 681*/ OPC_CheckPredicate, 10, // Predicate_extloadi16
404 : /* 683*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
405 : /* 685*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
406 : /* 688*/ OPC_EmitMergeInputChains1_0,
407 : /* 689*/ OPC_EmitInteger, MVT::i64, 0,
408 : /* 692*/ OPC_EmitNode1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
409 : MVT::i32, 2/*#Ops*/, 2, 3, // Results = #5
410 : /* 700*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
411 : /* 703*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
412 : MVT::i64, 3/*#Ops*/, 4, 5, 6,
413 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
414 : // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDH32:{ *:[i32] } ADDRri:{ *:[i64] }:$src), sub_32:{ *:[i32] })
415 : /* 712*/ /*Scope*/ 31, /*->744*/
416 : /* 713*/ OPC_CheckPredicate, 9, // Predicate_extloadi32
417 : /* 715*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
418 : /* 717*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
419 : /* 720*/ OPC_EmitMergeInputChains1_0,
420 : /* 721*/ OPC_EmitInteger, MVT::i64, 0,
421 : /* 724*/ OPC_EmitNode1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
422 : MVT::i32, 2/*#Ops*/, 2, 3, // Results = #5
423 : /* 732*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
424 : /* 735*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
425 : MVT::i64, 3/*#Ops*/, 4, 5, 6,
426 : // Src: (ld:{ *:[i64] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 13
427 : // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (LDW32:{ *:[i32] } ADDRri:{ *:[i64] }:$src), sub_32:{ *:[i32] })
428 : /* 744*/ 0, /*End of Scope*/
429 : /* 745*/ 0, /*End of Scope*/
430 : /* 746*/ /*SwitchType*/ 97, MVT::i32,// ->845
431 : /* 748*/ OPC_Scope, 16, /*->766*/ // 3 children in Scope
432 : /* 750*/ OPC_CheckPredicate, 12, // Predicate_load
433 : /* 752*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
434 : /* 754*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
435 : /* 757*/ OPC_EmitMergeInputChains1_0,
436 : /* 758*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
437 : MVT::i32, 2/*#Ops*/, 2, 3,
438 : // Src: (ld:{ *:[i32] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 13
439 : // Dst: (LDW32:{ *:[i32] } ADDRri:{ *:[i64] }:$addr)
440 : /* 766*/ /*Scope*/ 38, /*->805*/
441 : /* 767*/ OPC_CheckPredicate, 8, // Predicate_zextload
442 : /* 769*/ OPC_Scope, 16, /*->787*/ // 2 children in Scope
443 : /* 771*/ OPC_CheckPredicate, 10, // Predicate_zextloadi16
444 : /* 773*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
445 : /* 775*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
446 : /* 778*/ OPC_EmitMergeInputChains1_0,
447 : /* 779*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
448 : MVT::i32, 2/*#Ops*/, 2, 3,
449 : // Src: (ld:{ *:[i32] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 13
450 : // Dst: (LDH32:{ *:[i32] } ADDRri:{ *:[i64] }:$addr)
451 : /* 787*/ /*Scope*/ 16, /*->804*/
452 : /* 788*/ OPC_CheckPredicate, 11, // Predicate_zextloadi8
453 : /* 790*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
454 : /* 792*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #2 #3
455 : /* 795*/ OPC_EmitMergeInputChains1_0,
456 : /* 796*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
457 : MVT::i32, 2/*#Ops*/, 2, 3,
458 : // Src: (ld:{ *:[i32] } ADDRri:{ *:[i64] }:$addr)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 13
459 : // Dst: (LDB32:{ *:[i32] } ADDRri:{ *:[i64] }:$addr)
460 : /* 804*/ 0, /*End of Scope*/
461 : /* 805*/ /*Scope*/ 38, /*->844*/
462 : /* 806*/ OPC_CheckPredicate, 13, // Predicate_extload
463 : /* 808*/ OPC_Scope, 16, /*->826*/ // 2 children in Scope
464 : /* 810*/ OPC_CheckPredicate, 11, // Predicate_extloadi8
465 : /* 812*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
466 : /* 814*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
467 : /* 817*/ OPC_EmitMergeInputChains1_0,
468 : /* 818*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
469 : MVT::i32, 2/*#Ops*/, 2, 3,
470 : // Src: (ld:{ *:[i32] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 13
471 : // Dst: (LDB32:{ *:[i32] } ADDRri:{ *:[i64] }:$src)
472 : /* 826*/ /*Scope*/ 16, /*->843*/
473 : /* 827*/ OPC_CheckPredicate, 10, // Predicate_extloadi16
474 : /* 829*/ OPC_CheckPatternPredicate, 1, // (Subtarget->getHasAlu32())
475 : /* 831*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$src #2 #3
476 : /* 834*/ OPC_EmitMergeInputChains1_0,
477 : /* 835*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
478 : MVT::i32, 2/*#Ops*/, 2, 3,
479 : // Src: (ld:{ *:[i32] } ADDRri:{ *:[i64] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 13
480 : // Dst: (LDH32:{ *:[i32] } ADDRri:{ *:[i64] }:$src)
481 : /* 843*/ 0, /*End of Scope*/
482 : /* 844*/ 0, /*End of Scope*/
483 : /* 845*/ 0, // EndSwitchType
484 : /* 846*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->891
485 : /* 849*/ OPC_RecordMemRef,
486 : /* 850*/ OPC_RecordNode, // #0 = 'atomic_load_add' chained node
487 : /* 851*/ OPC_RecordChild1, // #1 = $addr
488 : /* 852*/ OPC_CheckChild1Type, MVT::i64,
489 : /* 854*/ OPC_RecordChild2, // #2 = $val
490 : /* 855*/ OPC_CheckType, MVT::i64,
491 : /* 857*/ OPC_Scope, 15, /*->874*/ // 2 children in Scope
492 : /* 859*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_add_32
493 : /* 861*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #3 #4
494 : /* 864*/ OPC_EmitMergeInputChains1_0,
495 : /* 865*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::XADD32), 0|OPFL_Chain|OPFL_MemRefs,
496 : MVT::i64, 3/*#Ops*/, 3, 4, 2,
497 : // Src: (atomic_load_add:{ *:[i64] } ADDRri:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$val)<<P:Predicate_atomic_load_add_32>> - Complexity = 13
498 : // Dst: (XADD32:{ *:[i64] } ADDRri:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$val)
499 : /* 874*/ /*Scope*/ 15, /*->890*/
500 : /* 875*/ OPC_CheckPredicate, 15, // Predicate_atomic_load_add_64
501 : /* 877*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddr:$addr #3 #4
502 : /* 880*/ OPC_EmitMergeInputChains1_0,
503 : /* 881*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::XADD64), 0|OPFL_Chain|OPFL_MemRefs,
504 : MVT::i64, 3/*#Ops*/, 3, 4, 2,
505 : // Src: (atomic_load_add:{ *:[i64] } ADDRri:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$val)<<P:Predicate_atomic_load_add_64>> - Complexity = 13
506 : // Dst: (XADD64:{ *:[i64] } ADDRri:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$val)
507 : /* 890*/ 0, /*End of Scope*/
508 : /* 891*/ /*SwitchOpcode*/ 51|128,3/*435*/, TARGET_VAL(BPFISD::BR_CC),// ->1330
509 : /* 895*/ OPC_RecordNode, // #0 = 'BPFbrcc' chained node
510 : /* 896*/ OPC_CaptureGlueInput,
511 : /* 897*/ OPC_RecordChild1, // #1 = $dst
512 : /* 898*/ OPC_CheckChild1Type, MVT::i64,
513 : /* 900*/ OPC_RecordChild2, // #2 = $imm
514 : /* 901*/ OPC_Scope, 97|128,1/*225*/, /*->1129*/ // 2 children in Scope
515 : /* 904*/ OPC_MoveChild2,
516 : /* 905*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
517 : /* 908*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
518 : /* 910*/ OPC_MoveParent,
519 : /* 911*/ OPC_MoveChild3,
520 : /* 912*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
521 : /* 915*/ OPC_CheckType, MVT::i64,
522 : /* 917*/ OPC_Scope, 20, /*->939*/ // 10 children in Scope
523 : /* 919*/ OPC_CheckPredicate, 16, // Predicate_BPF_CC_EQ
524 : /* 921*/ OPC_MoveParent,
525 : /* 922*/ OPC_RecordChild4, // #3 = $BrDst
526 : /* 923*/ OPC_MoveChild4,
527 : /* 924*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
528 : /* 927*/ OPC_MoveParent,
529 : /* 928*/ OPC_EmitMergeInputChains1_0,
530 : /* 929*/ OPC_EmitConvertToTarget, 2,
531 : /* 931*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
532 : 3/*#Ops*/, 1, 4, 3,
533 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_EQ>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
534 : // Dst: (JEQ_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
535 : /* 939*/ /*Scope*/ 20, /*->960*/
536 : /* 940*/ OPC_CheckPredicate, 17, // Predicate_BPF_CC_GTU
537 : /* 942*/ OPC_MoveParent,
538 : /* 943*/ OPC_RecordChild4, // #3 = $BrDst
539 : /* 944*/ OPC_MoveChild4,
540 : /* 945*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
541 : /* 948*/ OPC_MoveParent,
542 : /* 949*/ OPC_EmitMergeInputChains1_0,
543 : /* 950*/ OPC_EmitConvertToTarget, 2,
544 : /* 952*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
545 : 3/*#Ops*/, 1, 4, 3,
546 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GTU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
547 : // Dst: (JUGT_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
548 : /* 960*/ /*Scope*/ 20, /*->981*/
549 : /* 961*/ OPC_CheckPredicate, 18, // Predicate_BPF_CC_GEU
550 : /* 963*/ OPC_MoveParent,
551 : /* 964*/ OPC_RecordChild4, // #3 = $BrDst
552 : /* 965*/ OPC_MoveChild4,
553 : /* 966*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
554 : /* 969*/ OPC_MoveParent,
555 : /* 970*/ OPC_EmitMergeInputChains1_0,
556 : /* 971*/ OPC_EmitConvertToTarget, 2,
557 : /* 973*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
558 : 3/*#Ops*/, 1, 4, 3,
559 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GEU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
560 : // Dst: (JUGE_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
561 : /* 981*/ /*Scope*/ 20, /*->1002*/
562 : /* 982*/ OPC_CheckPredicate, 19, // Predicate_BPF_CC_NE
563 : /* 984*/ OPC_MoveParent,
564 : /* 985*/ OPC_RecordChild4, // #3 = $BrDst
565 : /* 986*/ OPC_MoveChild4,
566 : /* 987*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
567 : /* 990*/ OPC_MoveParent,
568 : /* 991*/ OPC_EmitMergeInputChains1_0,
569 : /* 992*/ OPC_EmitConvertToTarget, 2,
570 : /* 994*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
571 : 3/*#Ops*/, 1, 4, 3,
572 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_NE>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
573 : // Dst: (JNE_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
574 : /* 1002*/ /*Scope*/ 20, /*->1023*/
575 : /* 1003*/ OPC_CheckPredicate, 20, // Predicate_BPF_CC_GT
576 : /* 1005*/ OPC_MoveParent,
577 : /* 1006*/ OPC_RecordChild4, // #3 = $BrDst
578 : /* 1007*/ OPC_MoveChild4,
579 : /* 1008*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
580 : /* 1011*/ OPC_MoveParent,
581 : /* 1012*/ OPC_EmitMergeInputChains1_0,
582 : /* 1013*/ OPC_EmitConvertToTarget, 2,
583 : /* 1015*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
584 : 3/*#Ops*/, 1, 4, 3,
585 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GT>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
586 : // Dst: (JSGT_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
587 : /* 1023*/ /*Scope*/ 20, /*->1044*/
588 : /* 1024*/ OPC_CheckPredicate, 21, // Predicate_BPF_CC_GE
589 : /* 1026*/ OPC_MoveParent,
590 : /* 1027*/ OPC_RecordChild4, // #3 = $BrDst
591 : /* 1028*/ OPC_MoveChild4,
592 : /* 1029*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
593 : /* 1032*/ OPC_MoveParent,
594 : /* 1033*/ OPC_EmitMergeInputChains1_0,
595 : /* 1034*/ OPC_EmitConvertToTarget, 2,
596 : /* 1036*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
597 : 3/*#Ops*/, 1, 4, 3,
598 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GE>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
599 : // Dst: (JSGE_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
600 : /* 1044*/ /*Scope*/ 20, /*->1065*/
601 : /* 1045*/ OPC_CheckPredicate, 22, // Predicate_BPF_CC_LTU
602 : /* 1047*/ OPC_MoveParent,
603 : /* 1048*/ OPC_RecordChild4, // #3 = $BrDst
604 : /* 1049*/ OPC_MoveChild4,
605 : /* 1050*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
606 : /* 1053*/ OPC_MoveParent,
607 : /* 1054*/ OPC_EmitMergeInputChains1_0,
608 : /* 1055*/ OPC_EmitConvertToTarget, 2,
609 : /* 1057*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
610 : 3/*#Ops*/, 1, 4, 3,
611 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LTU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
612 : // Dst: (JULT_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
613 : /* 1065*/ /*Scope*/ 20, /*->1086*/
614 : /* 1066*/ OPC_CheckPredicate, 23, // Predicate_BPF_CC_LEU
615 : /* 1068*/ OPC_MoveParent,
616 : /* 1069*/ OPC_RecordChild4, // #3 = $BrDst
617 : /* 1070*/ OPC_MoveChild4,
618 : /* 1071*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
619 : /* 1074*/ OPC_MoveParent,
620 : /* 1075*/ OPC_EmitMergeInputChains1_0,
621 : /* 1076*/ OPC_EmitConvertToTarget, 2,
622 : /* 1078*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
623 : 3/*#Ops*/, 1, 4, 3,
624 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LEU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
625 : // Dst: (JULE_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
626 : /* 1086*/ /*Scope*/ 20, /*->1107*/
627 : /* 1087*/ OPC_CheckPredicate, 24, // Predicate_BPF_CC_LT
628 : /* 1089*/ OPC_MoveParent,
629 : /* 1090*/ OPC_RecordChild4, // #3 = $BrDst
630 : /* 1091*/ OPC_MoveChild4,
631 : /* 1092*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
632 : /* 1095*/ OPC_MoveParent,
633 : /* 1096*/ OPC_EmitMergeInputChains1_0,
634 : /* 1097*/ OPC_EmitConvertToTarget, 2,
635 : /* 1099*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
636 : 3/*#Ops*/, 1, 4, 3,
637 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LT>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
638 : // Dst: (JSLT_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
639 : /* 1107*/ /*Scope*/ 20, /*->1128*/
640 : /* 1108*/ OPC_CheckPredicate, 25, // Predicate_BPF_CC_LE
641 : /* 1110*/ OPC_MoveParent,
642 : /* 1111*/ OPC_RecordChild4, // #3 = $BrDst
643 : /* 1112*/ OPC_MoveChild4,
644 : /* 1113*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
645 : /* 1116*/ OPC_MoveParent,
646 : /* 1117*/ OPC_EmitMergeInputChains1_0,
647 : /* 1118*/ OPC_EmitConvertToTarget, 2,
648 : /* 1120*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_ri), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
649 : 3/*#Ops*/, 1, 4, 3,
650 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LE>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 11
651 : // Dst: (JSLE_ri i64:{ *:[i64] }:$dst, (imm:{ *:[i64] }):$imm, (bb:{ *:[Other] }):$BrDst)
652 : /* 1128*/ 0, /*End of Scope*/
653 : /* 1129*/ /*Scope*/ 70|128,1/*198*/, /*->1329*/
654 : /* 1131*/ OPC_MoveChild3,
655 : /* 1132*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
656 : /* 1135*/ OPC_CheckType, MVT::i64,
657 : /* 1137*/ OPC_Scope, 18, /*->1157*/ // 10 children in Scope
658 : /* 1139*/ OPC_CheckPredicate, 16, // Predicate_BPF_CC_EQ
659 : /* 1141*/ OPC_MoveParent,
660 : /* 1142*/ OPC_RecordChild4, // #3 = $BrDst
661 : /* 1143*/ OPC_MoveChild4,
662 : /* 1144*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
663 : /* 1147*/ OPC_MoveParent,
664 : /* 1148*/ OPC_EmitMergeInputChains1_0,
665 : /* 1149*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JEQ_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
666 : 3/*#Ops*/, 1, 2, 3,
667 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_EQ>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
668 : // Dst: (JEQ_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
669 : /* 1157*/ /*Scope*/ 18, /*->1176*/
670 : /* 1158*/ OPC_CheckPredicate, 17, // Predicate_BPF_CC_GTU
671 : /* 1160*/ OPC_MoveParent,
672 : /* 1161*/ OPC_RecordChild4, // #3 = $BrDst
673 : /* 1162*/ OPC_MoveChild4,
674 : /* 1163*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
675 : /* 1166*/ OPC_MoveParent,
676 : /* 1167*/ OPC_EmitMergeInputChains1_0,
677 : /* 1168*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
678 : 3/*#Ops*/, 1, 2, 3,
679 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GTU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
680 : // Dst: (JUGT_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
681 : /* 1176*/ /*Scope*/ 18, /*->1195*/
682 : /* 1177*/ OPC_CheckPredicate, 18, // Predicate_BPF_CC_GEU
683 : /* 1179*/ OPC_MoveParent,
684 : /* 1180*/ OPC_RecordChild4, // #3 = $BrDst
685 : /* 1181*/ OPC_MoveChild4,
686 : /* 1182*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
687 : /* 1185*/ OPC_MoveParent,
688 : /* 1186*/ OPC_EmitMergeInputChains1_0,
689 : /* 1187*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JUGE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
690 : 3/*#Ops*/, 1, 2, 3,
691 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GEU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
692 : // Dst: (JUGE_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
693 : /* 1195*/ /*Scope*/ 18, /*->1214*/
694 : /* 1196*/ OPC_CheckPredicate, 19, // Predicate_BPF_CC_NE
695 : /* 1198*/ OPC_MoveParent,
696 : /* 1199*/ OPC_RecordChild4, // #3 = $BrDst
697 : /* 1200*/ OPC_MoveChild4,
698 : /* 1201*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
699 : /* 1204*/ OPC_MoveParent,
700 : /* 1205*/ OPC_EmitMergeInputChains1_0,
701 : /* 1206*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JNE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
702 : 3/*#Ops*/, 1, 2, 3,
703 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_NE>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
704 : // Dst: (JNE_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
705 : /* 1214*/ /*Scope*/ 18, /*->1233*/
706 : /* 1215*/ OPC_CheckPredicate, 20, // Predicate_BPF_CC_GT
707 : /* 1217*/ OPC_MoveParent,
708 : /* 1218*/ OPC_RecordChild4, // #3 = $BrDst
709 : /* 1219*/ OPC_MoveChild4,
710 : /* 1220*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
711 : /* 1223*/ OPC_MoveParent,
712 : /* 1224*/ OPC_EmitMergeInputChains1_0,
713 : /* 1225*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
714 : 3/*#Ops*/, 1, 2, 3,
715 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GT>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
716 : // Dst: (JSGT_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
717 : /* 1233*/ /*Scope*/ 18, /*->1252*/
718 : /* 1234*/ OPC_CheckPredicate, 21, // Predicate_BPF_CC_GE
719 : /* 1236*/ OPC_MoveParent,
720 : /* 1237*/ OPC_RecordChild4, // #3 = $BrDst
721 : /* 1238*/ OPC_MoveChild4,
722 : /* 1239*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
723 : /* 1242*/ OPC_MoveParent,
724 : /* 1243*/ OPC_EmitMergeInputChains1_0,
725 : /* 1244*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSGE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
726 : 3/*#Ops*/, 1, 2, 3,
727 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_GE>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
728 : // Dst: (JSGE_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
729 : /* 1252*/ /*Scope*/ 18, /*->1271*/
730 : /* 1253*/ OPC_CheckPredicate, 22, // Predicate_BPF_CC_LTU
731 : /* 1255*/ OPC_MoveParent,
732 : /* 1256*/ OPC_RecordChild4, // #3 = $BrDst
733 : /* 1257*/ OPC_MoveChild4,
734 : /* 1258*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
735 : /* 1261*/ OPC_MoveParent,
736 : /* 1262*/ OPC_EmitMergeInputChains1_0,
737 : /* 1263*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JULT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
738 : 3/*#Ops*/, 1, 2, 3,
739 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LTU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
740 : // Dst: (JULT_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
741 : /* 1271*/ /*Scope*/ 18, /*->1290*/
742 : /* 1272*/ OPC_CheckPredicate, 23, // Predicate_BPF_CC_LEU
743 : /* 1274*/ OPC_MoveParent,
744 : /* 1275*/ OPC_RecordChild4, // #3 = $BrDst
745 : /* 1276*/ OPC_MoveChild4,
746 : /* 1277*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
747 : /* 1280*/ OPC_MoveParent,
748 : /* 1281*/ OPC_EmitMergeInputChains1_0,
749 : /* 1282*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JULE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
750 : 3/*#Ops*/, 1, 2, 3,
751 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LEU>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
752 : // Dst: (JULE_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
753 : /* 1290*/ /*Scope*/ 18, /*->1309*/
754 : /* 1291*/ OPC_CheckPredicate, 24, // Predicate_BPF_CC_LT
755 : /* 1293*/ OPC_MoveParent,
756 : /* 1294*/ OPC_RecordChild4, // #3 = $BrDst
757 : /* 1295*/ OPC_MoveChild4,
758 : /* 1296*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
759 : /* 1299*/ OPC_MoveParent,
760 : /* 1300*/ OPC_EmitMergeInputChains1_0,
761 : /* 1301*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLT_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
762 : 3/*#Ops*/, 1, 2, 3,
763 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LT>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
764 : // Dst: (JSLT_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
765 : /* 1309*/ /*Scope*/ 18, /*->1328*/
766 : /* 1310*/ OPC_CheckPredicate, 25, // Predicate_BPF_CC_LE
767 : /* 1312*/ OPC_MoveParent,
768 : /* 1313*/ OPC_RecordChild4, // #3 = $BrDst
769 : /* 1314*/ OPC_MoveChild4,
770 : /* 1315*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
771 : /* 1318*/ OPC_MoveParent,
772 : /* 1319*/ OPC_EmitMergeInputChains1_0,
773 : /* 1320*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JSLE_rr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
774 : 3/*#Ops*/, 1, 2, 3,
775 : // Src: (BPFbrcc i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (imm:{ *:[i64] })<<P:Predicate_BPF_CC_LE>>, (bb:{ *:[Other] }):$BrDst) - Complexity = 7
776 : // Dst: (JSLE_rr i64:{ *:[i64] }:$dst, i64:{ *:[i64] }:$src, (bb:{ *:[Other] }):$BrDst)
777 : /* 1328*/ 0, /*End of Scope*/
778 : /* 1329*/ 0, /*End of Scope*/
779 : /* 1330*/ /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::SRL),// ->1473
780 : /* 1334*/ OPC_Scope, 64, /*->1400*/ // 2 children in Scope
781 : /* 1336*/ OPC_MoveChild0,
782 : /* 1337*/ OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
783 : /* 1340*/ OPC_RecordChild0, // #0 = $src
784 : /* 1341*/ OPC_MoveParent,
785 : /* 1342*/ OPC_CheckType, MVT::i64,
786 : /* 1344*/ OPC_Scope, 26, /*->1372*/ // 2 children in Scope
787 : /* 1346*/ OPC_CheckChild1Integer, 48,
788 : /* 1348*/ OPC_CheckChild1Type, MVT::i64,
789 : /* 1350*/ OPC_Scope, 9, /*->1361*/ // 2 children in Scope
790 : /* 1352*/ OPC_CheckPatternPredicate, 2, // (CurDAG->getDataLayout().isLittleEndian())
791 : /* 1354*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::BE16), 0,
792 : MVT::i64, 1/*#Ops*/, 0,
793 : // Src: (srl:{ *:[i64] } (bswap:{ *:[i64] } GPR:{ *:[i64] }:$src), 48:{ *:[i64] }) - Complexity = 11
794 : // Dst: (BE16:{ *:[i64] } GPR:{ *:[i64] }:$src)
795 : /* 1361*/ /*Scope*/ 9, /*->1371*/
796 : /* 1362*/ OPC_CheckPatternPredicate, 3, // (!CurDAG->getDataLayout().isLittleEndian())
797 : /* 1364*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LE16), 0,
798 : MVT::i64, 1/*#Ops*/, 0,
799 : // Src: (srl:{ *:[i64] } (bswap:{ *:[i64] } GPR:{ *:[i64] }:$src), 48:{ *:[i64] }) - Complexity = 11
800 : // Dst: (LE16:{ *:[i64] } GPR:{ *:[i64] }:$src)
801 : /* 1371*/ 0, /*End of Scope*/
802 : /* 1372*/ /*Scope*/ 26, /*->1399*/
803 : /* 1373*/ OPC_CheckChild1Integer, 32,
804 : /* 1375*/ OPC_CheckChild1Type, MVT::i64,
805 : /* 1377*/ OPC_Scope, 9, /*->1388*/ // 2 children in Scope
806 : /* 1379*/ OPC_CheckPatternPredicate, 2, // (CurDAG->getDataLayout().isLittleEndian())
807 : /* 1381*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::BE32), 0,
808 : MVT::i64, 1/*#Ops*/, 0,
809 : // Src: (srl:{ *:[i64] } (bswap:{ *:[i64] } GPR:{ *:[i64] }:$src), 32:{ *:[i64] }) - Complexity = 11
810 : // Dst: (BE32:{ *:[i64] } GPR:{ *:[i64] }:$src)
811 : /* 1388*/ /*Scope*/ 9, /*->1398*/
812 : /* 1389*/ OPC_CheckPatternPredicate, 3, // (!CurDAG->getDataLayout().isLittleEndian())
813 : /* 1391*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LE32), 0,
814 : MVT::i64, 1/*#Ops*/, 0,
815 : // Src: (srl:{ *:[i64] } (bswap:{ *:[i64] } GPR:{ *:[i64] }:$src), 32:{ *:[i64] }) - Complexity = 11
816 : // Dst: (LE32:{ *:[i64] } GPR:{ *:[i64] }:$src)
817 : /* 1398*/ 0, /*End of Scope*/
818 : /* 1399*/ 0, /*End of Scope*/
819 : /* 1400*/ /*Scope*/ 71, /*->1472*/
820 : /* 1401*/ OPC_RecordChild0, // #0 = $src2
821 : /* 1402*/ OPC_RecordChild1, // #1 = $imm
822 : /* 1403*/ OPC_Scope, 40, /*->1445*/ // 3 children in Scope
823 : /* 1405*/ OPC_MoveChild1,
824 : /* 1406*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
825 : /* 1409*/ OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->1427
826 : /* 1412*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
827 : /* 1414*/ OPC_MoveParent,
828 : /* 1415*/ OPC_CheckType, MVT::i64,
829 : /* 1417*/ OPC_EmitConvertToTarget, 1,
830 : /* 1419*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_ri), 0,
831 : MVT::i64, 2/*#Ops*/, 0, 2,
832 : // Src: (srl:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
833 : // Dst: (SRL_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
834 : /* 1427*/ /*SwitchType*/ 15, MVT::i32,// ->1444
835 : /* 1429*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
836 : /* 1431*/ OPC_MoveParent,
837 : /* 1432*/ OPC_CheckType, MVT::i32,
838 : /* 1434*/ OPC_EmitConvertToTarget, 1,
839 : /* 1436*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_ri_32), 0,
840 : MVT::i32, 2/*#Ops*/, 0, 2,
841 : // Src: (srl:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
842 : // Dst: (SRL_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
843 : /* 1444*/ 0, // EndSwitchType
844 : /* 1445*/ /*Scope*/ 12, /*->1458*/
845 : /* 1446*/ OPC_CheckChild1Type, MVT::i64,
846 : /* 1448*/ OPC_CheckType, MVT::i64,
847 : /* 1450*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_rr), 0,
848 : MVT::i64, 2/*#Ops*/, 0, 1,
849 : // Src: (srl:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
850 : // Dst: (SRL_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
851 : /* 1458*/ /*Scope*/ 12, /*->1471*/
852 : /* 1459*/ OPC_CheckChild1Type, MVT::i32,
853 : /* 1461*/ OPC_CheckType, MVT::i32,
854 : /* 1463*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_rr_32), 0,
855 : MVT::i32, 2/*#Ops*/, 0, 1,
856 : // Src: (srl:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
857 : // Dst: (SRL_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
858 : /* 1471*/ 0, /*End of Scope*/
859 : /* 1472*/ 0, /*End of Scope*/
860 : /* 1473*/ /*SwitchOpcode*/ 82|128,1/*210*/, TARGET_VAL(BPFISD::SELECT_CC),// ->1687
861 : /* 1477*/ OPC_CaptureGlueInput,
862 : /* 1478*/ OPC_RecordChild0, // #0 = $lhs
863 : /* 1479*/ OPC_Scope, 102, /*->1583*/ // 2 children in Scope
864 : /* 1481*/ OPC_CheckChild0Type, MVT::i64,
865 : /* 1483*/ OPC_RecordChild1, // #1 = $rhs
866 : /* 1484*/ OPC_Scope, 53, /*->1539*/ // 2 children in Scope
867 : /* 1486*/ OPC_MoveChild1,
868 : /* 1487*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
869 : /* 1490*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
870 : /* 1492*/ OPC_MoveParent,
871 : /* 1493*/ OPC_RecordChild2, // #2 = $imm
872 : /* 1494*/ OPC_MoveChild2,
873 : /* 1495*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
874 : /* 1498*/ OPC_CheckType, MVT::i64,
875 : /* 1500*/ OPC_MoveParent,
876 : /* 1501*/ OPC_RecordChild3, // #3 = $src
877 : /* 1502*/ OPC_RecordChild4, // #4 = $src2
878 : /* 1503*/ OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->1521
879 : /* 1506*/ OPC_EmitConvertToTarget, 1,
880 : /* 1508*/ OPC_EmitConvertToTarget, 2,
881 : /* 1510*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_Ri), 0|OPFL_GlueInput,
882 : MVT::i64, 5/*#Ops*/, 0, 5, 6, 3, 4,
883 : // Src: (BPFselectcc:{ *:[i64] } i64:{ *:[i64] }:$lhs, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$rhs, (imm:{ *:[i64] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2) - Complexity = 10
884 : // Dst: (Select_Ri:{ *:[i64] } i64:{ *:[i64] }:$lhs, (imm:{ *:[i64] }):$rhs, (imm:{ *:[i64] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2)
885 : /* 1521*/ /*SwitchType*/ 15, MVT::i32,// ->1538
886 : /* 1523*/ OPC_EmitConvertToTarget, 1,
887 : /* 1525*/ OPC_EmitConvertToTarget, 2,
888 : /* 1527*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_Ri_64_32), 0|OPFL_GlueInput,
889 : MVT::i32, 5/*#Ops*/, 0, 5, 6, 3, 4,
890 : // Src: (BPFselectcc:{ *:[i32] } i64:{ *:[i64] }:$lhs, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$rhs, (imm:{ *:[i64] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2) - Complexity = 10
891 : // Dst: (Select_Ri_64_32:{ *:[i32] } i64:{ *:[i64] }:$lhs, (imm:{ *:[i64] }):$rhs, (imm:{ *:[i64] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2)
892 : /* 1538*/ 0, // EndSwitchType
893 : /* 1539*/ /*Scope*/ 42, /*->1582*/
894 : /* 1540*/ OPC_RecordChild2, // #2 = $imm
895 : /* 1541*/ OPC_MoveChild2,
896 : /* 1542*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
897 : /* 1545*/ OPC_CheckType, MVT::i64,
898 : /* 1547*/ OPC_MoveParent,
899 : /* 1548*/ OPC_RecordChild3, // #3 = $src
900 : /* 1549*/ OPC_RecordChild4, // #4 = $src2
901 : /* 1550*/ OPC_SwitchType /*2 cases */, 13, MVT::i64,// ->1566
902 : /* 1553*/ OPC_EmitConvertToTarget, 2,
903 : /* 1555*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select), 0|OPFL_GlueInput,
904 : MVT::i64, 5/*#Ops*/, 0, 1, 5, 3, 4,
905 : // Src: (BPFselectcc:{ *:[i64] } i64:{ *:[i64] }:$lhs, i64:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2) - Complexity = 6
906 : // Dst: (Select:{ *:[i64] } i64:{ *:[i64] }:$lhs, i64:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2)
907 : /* 1566*/ /*SwitchType*/ 13, MVT::i32,// ->1581
908 : /* 1568*/ OPC_EmitConvertToTarget, 2,
909 : /* 1570*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_64_32), 0|OPFL_GlueInput,
910 : MVT::i32, 5/*#Ops*/, 0, 1, 5, 3, 4,
911 : // Src: (BPFselectcc:{ *:[i32] } i64:{ *:[i64] }:$lhs, i64:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2) - Complexity = 6
912 : // Dst: (Select_64_32:{ *:[i32] } i64:{ *:[i64] }:$lhs, i64:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2)
913 : /* 1581*/ 0, // EndSwitchType
914 : /* 1582*/ 0, /*End of Scope*/
915 : /* 1583*/ /*Scope*/ 102, /*->1686*/
916 : /* 1584*/ OPC_CheckChild0Type, MVT::i32,
917 : /* 1586*/ OPC_RecordChild1, // #1 = $rhs
918 : /* 1587*/ OPC_Scope, 53, /*->1642*/ // 2 children in Scope
919 : /* 1589*/ OPC_MoveChild1,
920 : /* 1590*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
921 : /* 1593*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
922 : /* 1595*/ OPC_MoveParent,
923 : /* 1596*/ OPC_RecordChild2, // #2 = $imm
924 : /* 1597*/ OPC_MoveChild2,
925 : /* 1598*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
926 : /* 1601*/ OPC_CheckType, MVT::i32,
927 : /* 1603*/ OPC_MoveParent,
928 : /* 1604*/ OPC_RecordChild3, // #3 = $src
929 : /* 1605*/ OPC_RecordChild4, // #4 = $src2
930 : /* 1606*/ OPC_SwitchType /*2 cases */, 15, MVT::i32,// ->1624
931 : /* 1609*/ OPC_EmitConvertToTarget, 1,
932 : /* 1611*/ OPC_EmitConvertToTarget, 2,
933 : /* 1613*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_Ri_32), 0|OPFL_GlueInput,
934 : MVT::i32, 5/*#Ops*/, 0, 5, 6, 3, 4,
935 : // Src: (BPFselectcc:{ *:[i32] } i32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$rhs, (imm:{ *:[i32] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2) - Complexity = 10
936 : // Dst: (Select_Ri_32:{ *:[i32] } i32:{ *:[i32] }:$lhs, (imm:{ *:[i32] }):$rhs, (imm:{ *:[i32] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2)
937 : /* 1624*/ /*SwitchType*/ 15, MVT::i64,// ->1641
938 : /* 1626*/ OPC_EmitConvertToTarget, 1,
939 : /* 1628*/ OPC_EmitConvertToTarget, 2,
940 : /* 1630*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_Ri_32_64), 0|OPFL_GlueInput,
941 : MVT::i64, 5/*#Ops*/, 0, 5, 6, 3, 4,
942 : // Src: (BPFselectcc:{ *:[i64] } i32:{ *:[i32] }:$lhs, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$rhs, (imm:{ *:[i32] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2) - Complexity = 10
943 : // Dst: (Select_Ri_32_64:{ *:[i64] } i32:{ *:[i32] }:$lhs, (imm:{ *:[i32] }):$rhs, (imm:{ *:[i32] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2)
944 : /* 1641*/ 0, // EndSwitchType
945 : /* 1642*/ /*Scope*/ 42, /*->1685*/
946 : /* 1643*/ OPC_RecordChild2, // #2 = $imm
947 : /* 1644*/ OPC_MoveChild2,
948 : /* 1645*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
949 : /* 1648*/ OPC_CheckType, MVT::i32,
950 : /* 1650*/ OPC_MoveParent,
951 : /* 1651*/ OPC_RecordChild3, // #3 = $src
952 : /* 1652*/ OPC_RecordChild4, // #4 = $src2
953 : /* 1653*/ OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->1669
954 : /* 1656*/ OPC_EmitConvertToTarget, 2,
955 : /* 1658*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_32), 0|OPFL_GlueInput,
956 : MVT::i32, 5/*#Ops*/, 0, 1, 5, 3, 4,
957 : // Src: (BPFselectcc:{ *:[i32] } i32:{ *:[i32] }:$lhs, i32:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2) - Complexity = 6
958 : // Dst: (Select_32:{ *:[i32] } i32:{ *:[i32] }:$lhs, i32:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, i32:{ *:[i32] }:$src, i32:{ *:[i32] }:$src2)
959 : /* 1669*/ /*SwitchType*/ 13, MVT::i64,// ->1684
960 : /* 1671*/ OPC_EmitConvertToTarget, 2,
961 : /* 1673*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::Select_32_64), 0|OPFL_GlueInput,
962 : MVT::i64, 5/*#Ops*/, 0, 1, 5, 3, 4,
963 : // Src: (BPFselectcc:{ *:[i64] } i32:{ *:[i32] }:$lhs, i32:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2) - Complexity = 6
964 : // Dst: (Select_32_64:{ *:[i64] } i32:{ *:[i32] }:$lhs, i32:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, i64:{ *:[i64] }:$src, i64:{ *:[i64] }:$src2)
965 : /* 1684*/ 0, // EndSwitchType
966 : /* 1685*/ 0, /*End of Scope*/
967 : /* 1686*/ 0, /*End of Scope*/
968 : /* 1687*/ /*SwitchOpcode*/ 83, TARGET_VAL(ISD::ADD),// ->1773
969 : /* 1690*/ OPC_Scope, 14, /*->1706*/ // 2 children in Scope
970 : /* 1692*/ OPC_RecordNode, // #0 = $addr
971 : /* 1693*/ OPC_CheckType, MVT::i64,
972 : /* 1695*/ OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectFIAddr:$addr #1 #2
973 : /* 1698*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::FI_ri), 0,
974 : MVT::i64, 2/*#Ops*/, 1, 2,
975 : // Src: FIri:{ *:[i64] }:$addr - Complexity = 9
976 : // Dst: (FI_ri:{ *:[i64] } FIri:{ *:[i64] }:$addr)
977 : /* 1706*/ /*Scope*/ 65, /*->1772*/
978 : /* 1707*/ OPC_RecordChild0, // #0 = $src2
979 : /* 1708*/ OPC_RecordChild1, // #1 = $imm
980 : /* 1709*/ OPC_Scope, 38, /*->1749*/ // 3 children in Scope
981 : /* 1711*/ OPC_MoveChild1,
982 : /* 1712*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
983 : /* 1715*/ OPC_Scope, 15, /*->1732*/ // 2 children in Scope
984 : /* 1717*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
985 : /* 1719*/ OPC_MoveParent,
986 : /* 1720*/ OPC_CheckType, MVT::i64,
987 : /* 1722*/ OPC_EmitConvertToTarget, 1,
988 : /* 1724*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::ADD_ri), 0,
989 : MVT::i64, 2/*#Ops*/, 0, 2,
990 : // Src: (add:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
991 : // Dst: (ADD_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
992 : /* 1732*/ /*Scope*/ 15, /*->1748*/
993 : /* 1733*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
994 : /* 1735*/ OPC_MoveParent,
995 : /* 1736*/ OPC_CheckType, MVT::i32,
996 : /* 1738*/ OPC_EmitConvertToTarget, 1,
997 : /* 1740*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::ADD_ri_32), 0,
998 : MVT::i32, 2/*#Ops*/, 0, 2,
999 : // Src: (add:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1000 : // Dst: (ADD_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1001 : /* 1748*/ 0, /*End of Scope*/
1002 : /* 1749*/ /*Scope*/ 10, /*->1760*/
1003 : /* 1750*/ OPC_CheckType, MVT::i64,
1004 : /* 1752*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::ADD_rr), 0,
1005 : MVT::i64, 2/*#Ops*/, 0, 1,
1006 : // Src: (add:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1007 : // Dst: (ADD_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1008 : /* 1760*/ /*Scope*/ 10, /*->1771*/
1009 : /* 1761*/ OPC_CheckType, MVT::i32,
1010 : /* 1763*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::ADD_rr_32), 0,
1011 : MVT::i32, 2/*#Ops*/, 0, 1,
1012 : // Src: (add:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1013 : // Dst: (ADD_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1014 : /* 1771*/ 0, /*End of Scope*/
1015 : /* 1772*/ 0, /*End of Scope*/
1016 : /* 1773*/ /*SwitchOpcode*/ 83, TARGET_VAL(ISD::OR),// ->1859
1017 : /* 1776*/ OPC_Scope, 14, /*->1792*/ // 2 children in Scope
1018 : /* 1778*/ OPC_RecordNode, // #0 = $addr
1019 : /* 1779*/ OPC_CheckType, MVT::i64,
1020 : /* 1781*/ OPC_CheckComplexPat, /*CP*/1, /*#*/0, // SelectFIAddr:$addr #1 #2
1021 : /* 1784*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::FI_ri), 0,
1022 : MVT::i64, 2/*#Ops*/, 1, 2,
1023 : // Src: FIri:{ *:[i64] }:$addr - Complexity = 9
1024 : // Dst: (FI_ri:{ *:[i64] } FIri:{ *:[i64] }:$addr)
1025 : /* 1792*/ /*Scope*/ 65, /*->1858*/
1026 : /* 1793*/ OPC_RecordChild0, // #0 = $src2
1027 : /* 1794*/ OPC_RecordChild1, // #1 = $imm
1028 : /* 1795*/ OPC_Scope, 38, /*->1835*/ // 3 children in Scope
1029 : /* 1797*/ OPC_MoveChild1,
1030 : /* 1798*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1031 : /* 1801*/ OPC_Scope, 15, /*->1818*/ // 2 children in Scope
1032 : /* 1803*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1033 : /* 1805*/ OPC_MoveParent,
1034 : /* 1806*/ OPC_CheckType, MVT::i64,
1035 : /* 1808*/ OPC_EmitConvertToTarget, 1,
1036 : /* 1810*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::OR_ri), 0,
1037 : MVT::i64, 2/*#Ops*/, 0, 2,
1038 : // Src: (or:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1039 : // Dst: (OR_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1040 : /* 1818*/ /*Scope*/ 15, /*->1834*/
1041 : /* 1819*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1042 : /* 1821*/ OPC_MoveParent,
1043 : /* 1822*/ OPC_CheckType, MVT::i32,
1044 : /* 1824*/ OPC_EmitConvertToTarget, 1,
1045 : /* 1826*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::OR_ri_32), 0,
1046 : MVT::i32, 2/*#Ops*/, 0, 2,
1047 : // Src: (or:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1048 : // Dst: (OR_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1049 : /* 1834*/ 0, /*End of Scope*/
1050 : /* 1835*/ /*Scope*/ 10, /*->1846*/
1051 : /* 1836*/ OPC_CheckType, MVT::i64,
1052 : /* 1838*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::OR_rr), 0,
1053 : MVT::i64, 2/*#Ops*/, 0, 1,
1054 : // Src: (or:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1055 : // Dst: (OR_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1056 : /* 1846*/ /*Scope*/ 10, /*->1857*/
1057 : /* 1847*/ OPC_CheckType, MVT::i32,
1058 : /* 1849*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::OR_rr_32), 0,
1059 : MVT::i32, 2/*#Ops*/, 0, 1,
1060 : // Src: (or:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1061 : // Dst: (OR_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1062 : /* 1857*/ 0, /*End of Scope*/
1063 : /* 1858*/ 0, /*End of Scope*/
1064 : /* 1859*/ /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_START),// ->1884
1065 : /* 1862*/ OPC_RecordNode, // #0 = 'BPFcallseq_start' chained node
1066 : /* 1863*/ OPC_RecordChild1, // #1 = $amt1
1067 : /* 1864*/ OPC_MoveChild1,
1068 : /* 1865*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1069 : /* 1868*/ OPC_MoveParent,
1070 : /* 1869*/ OPC_RecordChild2, // #2 = $amt2
1071 : /* 1870*/ OPC_MoveChild2,
1072 : /* 1871*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1073 : /* 1874*/ OPC_MoveParent,
1074 : /* 1875*/ OPC_EmitMergeInputChains1_0,
1075 : /* 1876*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
1076 : MVT::i64, 2/*#Ops*/, 1, 2,
1077 : // Src: (BPFcallseq_start (timm:{ *:[iPTR] }):$amt1, (timm:{ *:[iPTR] }):$amt2) - Complexity = 9
1078 : // Dst: (ADJCALLSTACKDOWN:{ *:[i64] } (timm:{ *:[i64] }):$amt1, (timm:{ *:[i64] }):$amt2)
1079 : /* 1884*/ /*SwitchOpcode*/ 23, TARGET_VAL(ISD::CALLSEQ_END),// ->1910
1080 : /* 1887*/ OPC_RecordNode, // #0 = 'BPFcallseq_end' chained node
1081 : /* 1888*/ OPC_CaptureGlueInput,
1082 : /* 1889*/ OPC_RecordChild1, // #1 = $amt1
1083 : /* 1890*/ OPC_MoveChild1,
1084 : /* 1891*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1085 : /* 1894*/ OPC_MoveParent,
1086 : /* 1895*/ OPC_RecordChild2, // #2 = $amt2
1087 : /* 1896*/ OPC_MoveChild2,
1088 : /* 1897*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
1089 : /* 1900*/ OPC_MoveParent,
1090 : /* 1901*/ OPC_EmitMergeInputChains1_0,
1091 : /* 1902*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1092 : MVT::i64, 2/*#Ops*/, 1, 2,
1093 : // Src: (BPFcallseq_end (timm:{ *:[iPTR] }):$amt1, (timm:{ *:[iPTR] }):$amt2) - Complexity = 9
1094 : // Dst: (ADJCALLSTACKUP:{ *:[i64] } (timm:{ *:[i64] }):$amt1, (timm:{ *:[i64] }):$amt2)
1095 : /* 1910*/ /*SwitchOpcode*/ 30, TARGET_VAL(BPFISD::MEMCPY),// ->1943
1096 : /* 1913*/ OPC_RecordNode, // #0 = 'BPFmemcpy' chained node
1097 : /* 1914*/ OPC_CaptureGlueInput,
1098 : /* 1915*/ OPC_RecordChild1, // #1 = $dst
1099 : /* 1916*/ OPC_RecordChild2, // #2 = $src
1100 : /* 1917*/ OPC_RecordChild3, // #3 = $len
1101 : /* 1918*/ OPC_MoveChild3,
1102 : /* 1919*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1103 : /* 1922*/ OPC_MoveParent,
1104 : /* 1923*/ OPC_RecordChild4, // #4 = $align
1105 : /* 1924*/ OPC_MoveChild4,
1106 : /* 1925*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1107 : /* 1928*/ OPC_MoveParent,
1108 : /* 1929*/ OPC_EmitMergeInputChains1_0,
1109 : /* 1930*/ OPC_EmitConvertToTarget, 3,
1110 : /* 1932*/ OPC_EmitConvertToTarget, 4,
1111 : /* 1934*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::MEMCPY), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
1112 : 4/*#Ops*/, 1, 2, 5, 6,
1113 : // Src: (BPFmemcpy GPR:{ *:[i64] }:$dst, GPR:{ *:[i64] }:$src, (imm:{ *:[i64] }):$len, (imm:{ *:[i64] }):$align) - Complexity = 9
1114 : // Dst: (MEMCPY GPR:{ *:[i64] }:$dst, GPR:{ *:[i64] }:$src, (imm:{ *:[i64] }):$len, (imm:{ *:[i64] }):$align)
1115 : /* 1943*/ /*SwitchOpcode*/ 92, TARGET_VAL(ISD::SUB),// ->2038
1116 : /* 1946*/ OPC_Scope, 23, /*->1971*/ // 2 children in Scope
1117 : /* 1948*/ OPC_CheckChild0Integer, 0,
1118 : /* 1950*/ OPC_RecordChild1, // #0 = $src
1119 : /* 1951*/ OPC_SwitchType /*2 cases */, 7, MVT::i64,// ->1961
1120 : /* 1954*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::NEG_64), 0,
1121 : MVT::i64, 1/*#Ops*/, 0,
1122 : // Src: (sub:{ *:[i64] } 0:{ *:[i64] }, i64:{ *:[i64] }:$src) - Complexity = 8
1123 : // Dst: (NEG_64:{ *:[i64] } i64:{ *:[i64] }:$src)
1124 : /* 1961*/ /*SwitchType*/ 7, MVT::i32,// ->1970
1125 : /* 1963*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::NEG_32), 0,
1126 : MVT::i32, 1/*#Ops*/, 0,
1127 : // Src: (sub:{ *:[i32] } 0:{ *:[i32] }, i32:{ *:[i32] }:$src) - Complexity = 8
1128 : // Dst: (NEG_32:{ *:[i32] } i32:{ *:[i32] }:$src)
1129 : /* 1970*/ 0, // EndSwitchType
1130 : /* 1971*/ /*Scope*/ 65, /*->2037*/
1131 : /* 1972*/ OPC_RecordChild0, // #0 = $src2
1132 : /* 1973*/ OPC_RecordChild1, // #1 = $imm
1133 : /* 1974*/ OPC_Scope, 38, /*->2014*/ // 3 children in Scope
1134 : /* 1976*/ OPC_MoveChild1,
1135 : /* 1977*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1136 : /* 1980*/ OPC_Scope, 15, /*->1997*/ // 2 children in Scope
1137 : /* 1982*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1138 : /* 1984*/ OPC_MoveParent,
1139 : /* 1985*/ OPC_CheckType, MVT::i64,
1140 : /* 1987*/ OPC_EmitConvertToTarget, 1,
1141 : /* 1989*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SUB_ri), 0,
1142 : MVT::i64, 2/*#Ops*/, 0, 2,
1143 : // Src: (sub:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1144 : // Dst: (SUB_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1145 : /* 1997*/ /*Scope*/ 15, /*->2013*/
1146 : /* 1998*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1147 : /* 2000*/ OPC_MoveParent,
1148 : /* 2001*/ OPC_CheckType, MVT::i32,
1149 : /* 2003*/ OPC_EmitConvertToTarget, 1,
1150 : /* 2005*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SUB_ri_32), 0,
1151 : MVT::i32, 2/*#Ops*/, 0, 2,
1152 : // Src: (sub:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1153 : // Dst: (SUB_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1154 : /* 2013*/ 0, /*End of Scope*/
1155 : /* 2014*/ /*Scope*/ 10, /*->2025*/
1156 : /* 2015*/ OPC_CheckType, MVT::i64,
1157 : /* 2017*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SUB_rr), 0,
1158 : MVT::i64, 2/*#Ops*/, 0, 1,
1159 : // Src: (sub:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1160 : // Dst: (SUB_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1161 : /* 2025*/ /*Scope*/ 10, /*->2036*/
1162 : /* 2026*/ OPC_CheckType, MVT::i32,
1163 : /* 2028*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SUB_rr_32), 0,
1164 : MVT::i32, 2/*#Ops*/, 0, 1,
1165 : // Src: (sub:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1166 : // Dst: (SUB_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1167 : /* 2036*/ 0, /*End of Scope*/
1168 : /* 2037*/ 0, /*End of Scope*/
1169 : /* 2038*/ /*SwitchOpcode*/ 100, TARGET_VAL(ISD::AND),// ->2141
1170 : /* 2041*/ OPC_Scope, 31, /*->2074*/ // 2 children in Scope
1171 : /* 2043*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
1172 : /* 2049*/ OPC_RecordChild0, // #0 = $src
1173 : /* 2050*/ OPC_CheckType, MVT::i64,
1174 : /* 2052*/ OPC_EmitInteger, MVT::i64, 32,
1175 : /* 2055*/ OPC_EmitNode1, TARGET_VAL(BPF::SLL_ri), 0,
1176 : MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2
1177 : /* 2063*/ OPC_EmitInteger, MVT::i64, 32,
1178 : /* 2066*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_ri), 0,
1179 : MVT::i64, 2/*#Ops*/, 2, 3,
1180 : // Src: (and:{ *:[i64] } GPR:{ *:[i64] }:$src, 4294967295:{ *:[i64] }) - Complexity = 8
1181 : // Dst: (SRL_ri:{ *:[i64] } (SLL_ri:{ *:[i64] } GPR:{ *:[i64] }:$src, 32:{ *:[i64] }), 32:{ *:[i64] })
1182 : /* 2074*/ /*Scope*/ 65, /*->2140*/
1183 : /* 2075*/ OPC_RecordChild0, // #0 = $src2
1184 : /* 2076*/ OPC_RecordChild1, // #1 = $imm
1185 : /* 2077*/ OPC_Scope, 38, /*->2117*/ // 3 children in Scope
1186 : /* 2079*/ OPC_MoveChild1,
1187 : /* 2080*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1188 : /* 2083*/ OPC_Scope, 15, /*->2100*/ // 2 children in Scope
1189 : /* 2085*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1190 : /* 2087*/ OPC_MoveParent,
1191 : /* 2088*/ OPC_CheckType, MVT::i64,
1192 : /* 2090*/ OPC_EmitConvertToTarget, 1,
1193 : /* 2092*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::AND_ri), 0,
1194 : MVT::i64, 2/*#Ops*/, 0, 2,
1195 : // Src: (and:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1196 : // Dst: (AND_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1197 : /* 2100*/ /*Scope*/ 15, /*->2116*/
1198 : /* 2101*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1199 : /* 2103*/ OPC_MoveParent,
1200 : /* 2104*/ OPC_CheckType, MVT::i32,
1201 : /* 2106*/ OPC_EmitConvertToTarget, 1,
1202 : /* 2108*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::AND_ri_32), 0,
1203 : MVT::i32, 2/*#Ops*/, 0, 2,
1204 : // Src: (and:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1205 : // Dst: (AND_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1206 : /* 2116*/ 0, /*End of Scope*/
1207 : /* 2117*/ /*Scope*/ 10, /*->2128*/
1208 : /* 2118*/ OPC_CheckType, MVT::i64,
1209 : /* 2120*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::AND_rr), 0,
1210 : MVT::i64, 2/*#Ops*/, 0, 1,
1211 : // Src: (and:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1212 : // Dst: (AND_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1213 : /* 2128*/ /*Scope*/ 10, /*->2139*/
1214 : /* 2129*/ OPC_CheckType, MVT::i32,
1215 : /* 2131*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::AND_rr_32), 0,
1216 : MVT::i32, 2/*#Ops*/, 0, 1,
1217 : // Src: (and:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1218 : // Dst: (AND_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1219 : /* 2139*/ 0, /*End of Scope*/
1220 : /* 2140*/ 0, /*End of Scope*/
1221 : /* 2141*/ /*SwitchOpcode*/ 71, TARGET_VAL(ISD::SHL),// ->2215
1222 : /* 2144*/ OPC_RecordChild0, // #0 = $src2
1223 : /* 2145*/ OPC_RecordChild1, // #1 = $imm
1224 : /* 2146*/ OPC_Scope, 40, /*->2188*/ // 3 children in Scope
1225 : /* 2148*/ OPC_MoveChild1,
1226 : /* 2149*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1227 : /* 2152*/ OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->2170
1228 : /* 2155*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1229 : /* 2157*/ OPC_MoveParent,
1230 : /* 2158*/ OPC_CheckType, MVT::i64,
1231 : /* 2160*/ OPC_EmitConvertToTarget, 1,
1232 : /* 2162*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SLL_ri), 0,
1233 : MVT::i64, 2/*#Ops*/, 0, 2,
1234 : // Src: (shl:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1235 : // Dst: (SLL_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1236 : /* 2170*/ /*SwitchType*/ 15, MVT::i32,// ->2187
1237 : /* 2172*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1238 : /* 2174*/ OPC_MoveParent,
1239 : /* 2175*/ OPC_CheckType, MVT::i32,
1240 : /* 2177*/ OPC_EmitConvertToTarget, 1,
1241 : /* 2179*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SLL_ri_32), 0,
1242 : MVT::i32, 2/*#Ops*/, 0, 2,
1243 : // Src: (shl:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1244 : // Dst: (SLL_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1245 : /* 2187*/ 0, // EndSwitchType
1246 : /* 2188*/ /*Scope*/ 12, /*->2201*/
1247 : /* 2189*/ OPC_CheckChild1Type, MVT::i64,
1248 : /* 2191*/ OPC_CheckType, MVT::i64,
1249 : /* 2193*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SLL_rr), 0,
1250 : MVT::i64, 2/*#Ops*/, 0, 1,
1251 : // Src: (shl:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1252 : // Dst: (SLL_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1253 : /* 2201*/ /*Scope*/ 12, /*->2214*/
1254 : /* 2202*/ OPC_CheckChild1Type, MVT::i32,
1255 : /* 2204*/ OPC_CheckType, MVT::i32,
1256 : /* 2206*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SLL_rr_32), 0,
1257 : MVT::i32, 2/*#Ops*/, 0, 1,
1258 : // Src: (shl:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1259 : // Dst: (SLL_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1260 : /* 2214*/ 0, /*End of Scope*/
1261 : /* 2215*/ /*SwitchOpcode*/ 65, TARGET_VAL(ISD::XOR),// ->2283
1262 : /* 2218*/ OPC_RecordChild0, // #0 = $src2
1263 : /* 2219*/ OPC_RecordChild1, // #1 = $imm
1264 : /* 2220*/ OPC_Scope, 38, /*->2260*/ // 3 children in Scope
1265 : /* 2222*/ OPC_MoveChild1,
1266 : /* 2223*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1267 : /* 2226*/ OPC_Scope, 15, /*->2243*/ // 2 children in Scope
1268 : /* 2228*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1269 : /* 2230*/ OPC_MoveParent,
1270 : /* 2231*/ OPC_CheckType, MVT::i64,
1271 : /* 2233*/ OPC_EmitConvertToTarget, 1,
1272 : /* 2235*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::XOR_ri), 0,
1273 : MVT::i64, 2/*#Ops*/, 0, 2,
1274 : // Src: (xor:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1275 : // Dst: (XOR_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1276 : /* 2243*/ /*Scope*/ 15, /*->2259*/
1277 : /* 2244*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1278 : /* 2246*/ OPC_MoveParent,
1279 : /* 2247*/ OPC_CheckType, MVT::i32,
1280 : /* 2249*/ OPC_EmitConvertToTarget, 1,
1281 : /* 2251*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::XOR_ri_32), 0,
1282 : MVT::i32, 2/*#Ops*/, 0, 2,
1283 : // Src: (xor:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1284 : // Dst: (XOR_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1285 : /* 2259*/ 0, /*End of Scope*/
1286 : /* 2260*/ /*Scope*/ 10, /*->2271*/
1287 : /* 2261*/ OPC_CheckType, MVT::i64,
1288 : /* 2263*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::XOR_rr), 0,
1289 : MVT::i64, 2/*#Ops*/, 0, 1,
1290 : // Src: (xor:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1291 : // Dst: (XOR_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1292 : /* 2271*/ /*Scope*/ 10, /*->2282*/
1293 : /* 2272*/ OPC_CheckType, MVT::i32,
1294 : /* 2274*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::XOR_rr_32), 0,
1295 : MVT::i32, 2/*#Ops*/, 0, 1,
1296 : // Src: (xor:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1297 : // Dst: (XOR_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1298 : /* 2282*/ 0, /*End of Scope*/
1299 : /* 2283*/ /*SwitchOpcode*/ 71, TARGET_VAL(ISD::SRA),// ->2357
1300 : /* 2286*/ OPC_RecordChild0, // #0 = $src2
1301 : /* 2287*/ OPC_RecordChild1, // #1 = $imm
1302 : /* 2288*/ OPC_Scope, 40, /*->2330*/ // 3 children in Scope
1303 : /* 2290*/ OPC_MoveChild1,
1304 : /* 2291*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1305 : /* 2294*/ OPC_SwitchType /*2 cases */, 15, MVT::i64,// ->2312
1306 : /* 2297*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1307 : /* 2299*/ OPC_MoveParent,
1308 : /* 2300*/ OPC_CheckType, MVT::i64,
1309 : /* 2302*/ OPC_EmitConvertToTarget, 1,
1310 : /* 2304*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_ri), 0,
1311 : MVT::i64, 2/*#Ops*/, 0, 2,
1312 : // Src: (sra:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1313 : // Dst: (SRA_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1314 : /* 2312*/ /*SwitchType*/ 15, MVT::i32,// ->2329
1315 : /* 2314*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1316 : /* 2316*/ OPC_MoveParent,
1317 : /* 2317*/ OPC_CheckType, MVT::i32,
1318 : /* 2319*/ OPC_EmitConvertToTarget, 1,
1319 : /* 2321*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_ri_32), 0,
1320 : MVT::i32, 2/*#Ops*/, 0, 2,
1321 : // Src: (sra:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1322 : // Dst: (SRA_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1323 : /* 2329*/ 0, // EndSwitchType
1324 : /* 2330*/ /*Scope*/ 12, /*->2343*/
1325 : /* 2331*/ OPC_CheckChild1Type, MVT::i64,
1326 : /* 2333*/ OPC_CheckType, MVT::i64,
1327 : /* 2335*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_rr), 0,
1328 : MVT::i64, 2/*#Ops*/, 0, 1,
1329 : // Src: (sra:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1330 : // Dst: (SRA_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1331 : /* 2343*/ /*Scope*/ 12, /*->2356*/
1332 : /* 2344*/ OPC_CheckChild1Type, MVT::i32,
1333 : /* 2346*/ OPC_CheckType, MVT::i32,
1334 : /* 2348*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_rr_32), 0,
1335 : MVT::i32, 2/*#Ops*/, 0, 1,
1336 : // Src: (sra:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1337 : // Dst: (SRA_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1338 : /* 2356*/ 0, /*End of Scope*/
1339 : /* 2357*/ /*SwitchOpcode*/ 65, TARGET_VAL(ISD::MUL),// ->2425
1340 : /* 2360*/ OPC_RecordChild0, // #0 = $src2
1341 : /* 2361*/ OPC_RecordChild1, // #1 = $imm
1342 : /* 2362*/ OPC_Scope, 38, /*->2402*/ // 3 children in Scope
1343 : /* 2364*/ OPC_MoveChild1,
1344 : /* 2365*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1345 : /* 2368*/ OPC_Scope, 15, /*->2385*/ // 2 children in Scope
1346 : /* 2370*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1347 : /* 2372*/ OPC_MoveParent,
1348 : /* 2373*/ OPC_CheckType, MVT::i64,
1349 : /* 2375*/ OPC_EmitConvertToTarget, 1,
1350 : /* 2377*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::MUL_ri), 0,
1351 : MVT::i64, 2/*#Ops*/, 0, 2,
1352 : // Src: (mul:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1353 : // Dst: (MUL_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1354 : /* 2385*/ /*Scope*/ 15, /*->2401*/
1355 : /* 2386*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1356 : /* 2388*/ OPC_MoveParent,
1357 : /* 2389*/ OPC_CheckType, MVT::i32,
1358 : /* 2391*/ OPC_EmitConvertToTarget, 1,
1359 : /* 2393*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::MUL_ri_32), 0,
1360 : MVT::i32, 2/*#Ops*/, 0, 2,
1361 : // Src: (mul:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1362 : // Dst: (MUL_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1363 : /* 2401*/ 0, /*End of Scope*/
1364 : /* 2402*/ /*Scope*/ 10, /*->2413*/
1365 : /* 2403*/ OPC_CheckType, MVT::i64,
1366 : /* 2405*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::MUL_rr), 0,
1367 : MVT::i64, 2/*#Ops*/, 0, 1,
1368 : // Src: (mul:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1369 : // Dst: (MUL_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1370 : /* 2413*/ /*Scope*/ 10, /*->2424*/
1371 : /* 2414*/ OPC_CheckType, MVT::i32,
1372 : /* 2416*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::MUL_rr_32), 0,
1373 : MVT::i32, 2/*#Ops*/, 0, 1,
1374 : // Src: (mul:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1375 : // Dst: (MUL_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1376 : /* 2424*/ 0, /*End of Scope*/
1377 : /* 2425*/ /*SwitchOpcode*/ 65, TARGET_VAL(ISD::UDIV),// ->2493
1378 : /* 2428*/ OPC_RecordChild0, // #0 = $src2
1379 : /* 2429*/ OPC_RecordChild1, // #1 = $imm
1380 : /* 2430*/ OPC_Scope, 38, /*->2470*/ // 3 children in Scope
1381 : /* 2432*/ OPC_MoveChild1,
1382 : /* 2433*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
1383 : /* 2436*/ OPC_Scope, 15, /*->2453*/ // 2 children in Scope
1384 : /* 2438*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1385 : /* 2440*/ OPC_MoveParent,
1386 : /* 2441*/ OPC_CheckType, MVT::i64,
1387 : /* 2443*/ OPC_EmitConvertToTarget, 1,
1388 : /* 2445*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::DIV_ri), 0,
1389 : MVT::i64, 2/*#Ops*/, 0, 2,
1390 : // Src: (udiv:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm) - Complexity = 7
1391 : // Dst: (DIV_ri:{ *:[i64] } GPR:{ *:[i64] }:$src2, (imm:{ *:[i64] }):$imm)
1392 : /* 2453*/ /*Scope*/ 15, /*->2469*/
1393 : /* 2454*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1394 : /* 2456*/ OPC_MoveParent,
1395 : /* 2457*/ OPC_CheckType, MVT::i32,
1396 : /* 2459*/ OPC_EmitConvertToTarget, 1,
1397 : /* 2461*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::DIV_ri_32), 0,
1398 : MVT::i32, 2/*#Ops*/, 0, 2,
1399 : // Src: (udiv:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm) - Complexity = 7
1400 : // Dst: (DIV_ri_32:{ *:[i32] } GPR32:{ *:[i32] }:$src2, (imm:{ *:[i32] }):$imm)
1401 : /* 2469*/ 0, /*End of Scope*/
1402 : /* 2470*/ /*Scope*/ 10, /*->2481*/
1403 : /* 2471*/ OPC_CheckType, MVT::i64,
1404 : /* 2473*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::DIV_rr), 0,
1405 : MVT::i64, 2/*#Ops*/, 0, 1,
1406 : // Src: (udiv:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src) - Complexity = 3
1407 : // Dst: (DIV_rr:{ *:[i64] } i64:{ *:[i64] }:$src2, i64:{ *:[i64] }:$src)
1408 : /* 2481*/ /*Scope*/ 10, /*->2492*/
1409 : /* 2482*/ OPC_CheckType, MVT::i32,
1410 : /* 2484*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::DIV_rr_32), 0,
1411 : MVT::i32, 2/*#Ops*/, 0, 1,
1412 : // Src: (udiv:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src) - Complexity = 3
1413 : // Dst: (DIV_rr_32:{ *:[i32] } i32:{ *:[i32] }:$src2, i32:{ *:[i32] }:$src)
1414 : /* 2492*/ 0, /*End of Scope*/
1415 : /* 2493*/ /*SwitchOpcode*/ 15, TARGET_VAL(BPFISD::Wrapper),// ->2511
1416 : /* 2496*/ OPC_RecordChild0, // #0 = $in
1417 : /* 2497*/ OPC_MoveChild0,
1418 : /* 2498*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalAddress),
1419 : /* 2501*/ OPC_MoveParent,
1420 : /* 2502*/ OPC_CheckType, MVT::i64,
1421 : /* 2504*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_imm64), 0,
1422 : MVT::i64, 1/*#Ops*/, 0,
1423 : // Src: (BPFWrapper:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$in) - Complexity = 6
1424 : // Dst: (LD_imm64:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$in)
1425 : /* 2511*/ /*SwitchOpcode*/ 58, TARGET_VAL(BPFISD::CALL),// ->2572
1426 : /* 2514*/ OPC_RecordNode, // #0 = 'BPFcall' chained node
1427 : /* 2515*/ OPC_CaptureGlueInput,
1428 : /* 2516*/ OPC_RecordChild1, // #1 = $dst
1429 : /* 2517*/ OPC_Scope, 41, /*->2560*/ // 2 children in Scope
1430 : /* 2519*/ OPC_MoveChild1,
1431 : /* 2520*/ OPC_SwitchOpcode /*3 cases */, 9, TARGET_VAL(ISD::TargetGlobalAddress),// ->2533
1432 : /* 2524*/ OPC_MoveParent,
1433 : /* 2525*/ OPC_EmitMergeInputChains1_0,
1434 : /* 2526*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1435 : MVT::i64, 1/*#Ops*/, 1,
1436 : // Src: (BPFcall (tglobaladdr:{ *:[iPTR] }):$dst) - Complexity = 6
1437 : // Dst: (JAL:{ *:[i64] } (tglobaladdr:{ *:[i64] }):$dst)
1438 : /* 2533*/ /*SwitchOpcode*/ 9, TARGET_VAL(ISD::TargetExternalSymbol),// ->2545
1439 : /* 2536*/ OPC_MoveParent,
1440 : /* 2537*/ OPC_EmitMergeInputChains1_0,
1441 : /* 2538*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1442 : MVT::i64, 1/*#Ops*/, 1,
1443 : // Src: (BPFcall (texternalsym:{ *:[iPTR] }):$dst) - Complexity = 6
1444 : // Dst: (JAL:{ *:[i64] } (texternalsym:{ *:[i64] }):$dst)
1445 : /* 2545*/ /*SwitchOpcode*/ 11, TARGET_VAL(ISD::Constant),// ->2559
1446 : /* 2548*/ OPC_MoveParent,
1447 : /* 2549*/ OPC_EmitMergeInputChains1_0,
1448 : /* 2550*/ OPC_EmitConvertToTarget, 1,
1449 : /* 2552*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1450 : MVT::i64, 1/*#Ops*/, 2,
1451 : // Src: (BPFcall (imm:{ *:[iPTR] }):$dst) - Complexity = 6
1452 : // Dst: (JAL:{ *:[i64] } (imm:{ *:[i64] }):$dst)
1453 : /* 2559*/ 0, // EndSwitchOpcode
1454 : /* 2560*/ /*Scope*/ 10, /*->2571*/
1455 : /* 2561*/ OPC_CheckChild1Type, MVT::i64,
1456 : /* 2563*/ OPC_EmitMergeInputChains1_0,
1457 : /* 2564*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::JALX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
1458 : MVT::i64, 1/*#Ops*/, 1,
1459 : // Src: (BPFcall GPR:{ *:[i64] }:$dst) - Complexity = 3
1460 : // Dst: (JALX:{ *:[i64] } GPR:{ *:[i64] }:$dst)
1461 : /* 2571*/ 0, /*End of Scope*/
1462 : /* 2572*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::Constant),// ->2617
1463 : /* 2575*/ OPC_RecordNode, // #0 = $imm
1464 : /* 2576*/ OPC_SwitchType /*2 cases */, 24, MVT::i64,// ->2603
1465 : /* 2579*/ OPC_Scope, 11, /*->2592*/ // 2 children in Scope
1466 : /* 2581*/ OPC_CheckPredicate, 0, // Predicate_i64immSExt32
1467 : /* 2583*/ OPC_EmitConvertToTarget, 0,
1468 : /* 2585*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::MOV_ri), 0,
1469 : MVT::i64, 1/*#Ops*/, 1,
1470 : // Src: (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$imm - Complexity = 4
1471 : // Dst: (MOV_ri:{ *:[i64] } (imm:{ *:[i64] }):$imm)
1472 : /* 2592*/ /*Scope*/ 9, /*->2602*/
1473 : /* 2593*/ OPC_EmitConvertToTarget, 0,
1474 : /* 2595*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_imm64), 0,
1475 : MVT::i64, 1/*#Ops*/, 1,
1476 : // Src: (imm:{ *:[i64] }):$imm - Complexity = 3
1477 : // Dst: (LD_imm64:{ *:[i64] } (imm:{ *:[i64] }):$imm)
1478 : /* 2602*/ 0, /*End of Scope*/
1479 : /* 2603*/ /*SwitchType*/ 11, MVT::i32,// ->2616
1480 : /* 2605*/ OPC_CheckPredicate, 0, // Predicate_i32immSExt32
1481 : /* 2607*/ OPC_EmitConvertToTarget, 0,
1482 : /* 2609*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::MOV_ri_32), 0,
1483 : MVT::i32, 1/*#Ops*/, 1,
1484 : // Src: (imm:{ *:[i32] })<<P:Predicate_i32immSExt32>>:$imm - Complexity = 4
1485 : // Dst: (MOV_ri_32:{ *:[i32] } (imm:{ *:[i32] }):$imm)
1486 : /* 2616*/ 0, // EndSwitchType
1487 : /* 2617*/ /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->2634
1488 : /* 2620*/ OPC_RecordNode, // #0 = 'br' chained node
1489 : /* 2621*/ OPC_RecordChild1, // #1 = $BrDst
1490 : /* 2622*/ OPC_MoveChild1,
1491 : /* 2623*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
1492 : /* 2626*/ OPC_MoveParent,
1493 : /* 2627*/ OPC_EmitMergeInputChains1_0,
1494 : /* 2628*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::JMP), 0|OPFL_Chain,
1495 : 1/*#Ops*/, 1,
1496 : // Src: (br (bb:{ *:[Other] }):$BrDst) - Complexity = 3
1497 : // Dst: (JMP (bb:{ *:[Other] }):$BrDst)
1498 : /* 2634*/ /*SwitchOpcode*/ 8, TARGET_VAL(BPFISD::RET_FLAG),// ->2645
1499 : /* 2637*/ OPC_RecordNode, // #0 = 'BPFretflag' chained node
1500 : /* 2638*/ OPC_CaptureGlueInput,
1501 : /* 2639*/ OPC_EmitMergeInputChains1_0,
1502 : /* 2640*/ OPC_MorphNodeTo0, TARGET_VAL(BPF::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
1503 : 0/*#Ops*/,
1504 : // Src: (BPFretflag) - Complexity = 3
1505 : // Dst: (RET)
1506 : /* 2645*/ /*SwitchOpcode*/ 25, TARGET_VAL(ISD::BSWAP),// ->2673
1507 : /* 2648*/ OPC_RecordChild0, // #0 = $src
1508 : /* 2649*/ OPC_CheckType, MVT::i64,
1509 : /* 2651*/ OPC_Scope, 9, /*->2662*/ // 2 children in Scope
1510 : /* 2653*/ OPC_CheckPatternPredicate, 2, // (CurDAG->getDataLayout().isLittleEndian())
1511 : /* 2655*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::BE64), 0,
1512 : MVT::i64, 1/*#Ops*/, 0,
1513 : // Src: (bswap:{ *:[i64] } GPR:{ *:[i64] }:$src) - Complexity = 3
1514 : // Dst: (BE64:{ *:[i64] } GPR:{ *:[i64] }:$src)
1515 : /* 2662*/ /*Scope*/ 9, /*->2672*/
1516 : /* 2663*/ OPC_CheckPatternPredicate, 3, // (!CurDAG->getDataLayout().isLittleEndian())
1517 : /* 2665*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::LE64), 0,
1518 : MVT::i64, 1/*#Ops*/, 0,
1519 : // Src: (bswap:{ *:[i64] } GPR:{ *:[i64] }:$src) - Complexity = 3
1520 : // Dst: (LE64:{ *:[i64] } GPR:{ *:[i64] }:$src)
1521 : /* 2672*/ 0, /*End of Scope*/
1522 : /* 2673*/ /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TRUNCATE),// ->2688
1523 : /* 2676*/ OPC_RecordChild0, // #0 = $src
1524 : /* 2677*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
1525 : /* 2680*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
1526 : MVT::i32, 2/*#Ops*/, 0, 1,
1527 : // Src: (trunc:{ *:[i32] } GPR:{ *:[i64] }:$src) - Complexity = 3
1528 : // Dst: (EXTRACT_SUBREG:{ *:[i32] } GPR:{ *:[i64] }:$src, sub_32:{ *:[i32] })
1529 : /* 2688*/ /*SwitchOpcode*/ 19, TARGET_VAL(ISD::ANY_EXTEND),// ->2710
1530 : /* 2691*/ OPC_RecordChild0, // #0 = $src
1531 : /* 2692*/ OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
1532 : MVT::i64, 0/*#Ops*/, // Results = #1
1533 : /* 2698*/ OPC_EmitInteger, MVT::i32, BPF::sub_32,
1534 : /* 2701*/ OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
1535 : MVT::i64, 3/*#Ops*/, 1, 0, 2,
1536 : // Src: (anyext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3
1537 : // Dst: (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GPR32:{ *:[i32] }:$src, sub_32:{ *:[i32] })
1538 : /* 2710*/ /*SwitchOpcode*/ 30, TARGET_VAL(ISD::SIGN_EXTEND),// ->2743
1539 : /* 2713*/ OPC_RecordChild0, // #0 = $src
1540 : /* 2714*/ OPC_EmitNode1, TARGET_VAL(BPF::MOV_32_64), 0,
1541 : MVT::i64, 1/*#Ops*/, 0, // Results = #1
1542 : /* 2721*/ OPC_EmitInteger, MVT::i64, 32,
1543 : /* 2724*/ OPC_EmitNode1, TARGET_VAL(BPF::SLL_ri), 0,
1544 : MVT::i64, 2/*#Ops*/, 1, 2, // Results = #3
1545 : /* 2732*/ OPC_EmitInteger, MVT::i64, 32,
1546 : /* 2735*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRA_ri), 0,
1547 : MVT::i64, 2/*#Ops*/, 3, 4,
1548 : // Src: (sext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3
1549 : // Dst: (SRA_ri:{ *:[i64] } (SLL_ri:{ *:[i64] } (MOV_32_64:{ *:[i64] } GPR32:{ *:[i32] }:$src), 32:{ *:[i64] }), 32:{ *:[i64] })
1550 : /* 2743*/ /*SwitchOpcode*/ 30, TARGET_VAL(ISD::ZERO_EXTEND),// ->2776
1551 : /* 2746*/ OPC_RecordChild0, // #0 = $src
1552 : /* 2747*/ OPC_EmitNode1, TARGET_VAL(BPF::MOV_32_64), 0,
1553 : MVT::i64, 1/*#Ops*/, 0, // Results = #1
1554 : /* 2754*/ OPC_EmitInteger, MVT::i64, 32,
1555 : /* 2757*/ OPC_EmitNode1, TARGET_VAL(BPF::SLL_ri), 0,
1556 : MVT::i64, 2/*#Ops*/, 1, 2, // Results = #3
1557 : /* 2765*/ OPC_EmitInteger, MVT::i64, 32,
1558 : /* 2768*/ OPC_MorphNodeTo1, TARGET_VAL(BPF::SRL_ri), 0,
1559 : MVT::i64, 2/*#Ops*/, 3, 4,
1560 : // Src: (zext:{ *:[i64] } GPR32:{ *:[i32] }:$src) - Complexity = 3
1561 : // Dst: (SRL_ri:{ *:[i64] } (SLL_ri:{ *:[i64] } (MOV_32_64:{ *:[i64] } GPR32:{ *:[i32] }:$src), 32:{ *:[i64] }), 32:{ *:[i64] })
1562 : /* 2776*/ 0, // EndSwitchOpcode
1563 : 0
1564 : }; // Total Array size is 2778 bytes
1565 :
1566 : // Opcode Histogram:
1567 : // #OPC_Scope = 53
1568 : // #OPC_RecordNode = 14
1569 : // #OPC_RecordChild = 90
1570 : // #OPC_RecordMemRef = 3
1571 : // #OPC_CaptureGlueInput = 6
1572 : // #OPC_MoveChild = 54
1573 : // #OPC_MoveParent = 84
1574 : // #OPC_CheckSame = 0
1575 : // #OPC_CheckChildSame = 0
1576 : // #OPC_CheckPatternPredicate = 32
1577 : // #OPC_CheckPredicate = 90
1578 : // #OPC_CheckOpcode = 53
1579 : // #OPC_SwitchOpcode = 2
1580 : // #OPC_CheckType = 53
1581 : // #OPC_SwitchType = 10
1582 : // #OPC_CheckChildType = 21
1583 : // #OPC_CheckInteger = 0
1584 : // #OPC_CheckChildInteger = 7
1585 : // #OPC_CheckCondCode = 0
1586 : // #OPC_CheckValueType = 0
1587 : // #OPC_CheckComplexPat = 32
1588 : // #OPC_CheckAndImm = 1
1589 : // #OPC_CheckOrImm = 0
1590 : // #OPC_CheckFoldableChainNode = 0
1591 : // #OPC_EmitInteger = 12
1592 : // #OPC_EmitStringInteger = 11
1593 : // #OPC_EmitRegister = 0
1594 : // #OPC_EmitConvertToTarget = 53
1595 : // #OPC_EmitMergeInputChains = 66
1596 : // #OPC_EmitCopyToReg = 0
1597 : // #OPC_EmitNode = 15
1598 : // #OPC_EmitNodeXForm = 0
1599 : // #OPC_CompleteMatch = 0
1600 : // #OPC_MorphNodeTo = 133
1601 :
1602 : #undef TARGET_VAL
1603 4088 : SelectCodeCommon(N, MatcherTable,sizeof(MatcherTable));
1604 : }
1605 : #endif // GET_DAGISEL_BODY
1606 :
1607 : #ifdef GET_DAGISEL_DECL
1608 : bool CheckPatternPredicate(unsigned PredNo) const override;
1609 : #endif
1610 : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
1611 195 : bool DAGISEL_CLASS_COLONCOLON CheckPatternPredicate(unsigned PredNo) const
1612 : #if DAGISEL_INLINE
1613 : override
1614 : #endif
1615 : {
1616 195 : switch (PredNo) {
1617 0 : default: llvm_unreachable("Invalid predicate in table?");
1618 171 : case 0: return (!Subtarget->getHasAlu32());
1619 6 : case 1: return (Subtarget->getHasAlu32());
1620 12 : case 2: return (CurDAG->getDataLayout().isLittleEndian());
1621 6 : case 3: return (!CurDAG->getDataLayout().isLittleEndian());
1622 : }
1623 : }
1624 : #endif // GET_DAGISEL_BODY
1625 :
1626 : #ifdef GET_DAGISEL_DECL
1627 : bool CheckNodePredicate(SDNode *Node, unsigned PredNo) const override;
1628 : #endif
1629 : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
1630 1545 : bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDNode *Node, unsigned PredNo) const
1631 : #if DAGISEL_INLINE
1632 : override
1633 : #endif
1634 : {
1635 1545 : switch (PredNo) {
1636 0 : default: llvm_unreachable("Invalid predicate in table?");
1637 : case 0: {
1638 : // Predicate_i64immSExt32
1639 : // Predicate_i32immSExt32
1640 : auto *N = cast<ConstantSDNode>(Node);
1641 1120 : return isInt<32>(N->getSExtValue());
1642 : }
1643 149 : case 1: {
1644 : // Predicate_unindexedstore
1645 : SDNode *N = Node;
1646 149 : if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
1647 : return true;
1648 :
1649 : }
1650 152 : case 2: {
1651 : // Predicate_truncstore
1652 : SDNode *N = Node;
1653 152 : if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
1654 : return true;
1655 :
1656 : }
1657 132 : case 3: {
1658 : // Predicate_truncstorei32
1659 : SDNode *N = Node;
1660 : if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i32) return false;
1661 : return true;
1662 :
1663 : }
1664 69 : case 4: {
1665 : // Predicate_truncstorei16
1666 : SDNode *N = Node;
1667 : if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i16) return false;
1668 : return true;
1669 :
1670 : }
1671 17 : case 5: {
1672 : // Predicate_truncstorei8
1673 : SDNode *N = Node;
1674 : if (cast<StoreSDNode>(N)->getMemoryVT() != MVT::i8) return false;
1675 : return true;
1676 :
1677 : }
1678 21 : case 6: {
1679 : // Predicate_store
1680 : SDNode *N = Node;
1681 21 : if (cast<StoreSDNode>(N)->isTruncatingStore()) return false;
1682 : return true;
1683 :
1684 : }
1685 58 : case 7: {
1686 : // Predicate_unindexedload
1687 : SDNode *N = Node;
1688 58 : if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
1689 : return true;
1690 :
1691 : }
1692 57 : case 8: {
1693 : // Predicate_zextload
1694 : SDNode *N = Node;
1695 57 : if (cast<LoadSDNode>(N)->getExtensionType() != ISD::ZEXTLOAD) return false;
1696 : return true;
1697 :
1698 : }
1699 29 : case 9: {
1700 : // Predicate_zextloadi32
1701 : // Predicate_extloadi32
1702 : SDNode *N = Node;
1703 : if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i32) return false;
1704 : return true;
1705 :
1706 : }
1707 31 : case 10: {
1708 : // Predicate_zextloadi16
1709 : // Predicate_extloadi16
1710 : SDNode *N = Node;
1711 : if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i16) return false;
1712 : return true;
1713 :
1714 : }
1715 31 : case 11: {
1716 : // Predicate_zextloadi8
1717 : // Predicate_extloadi8
1718 : SDNode *N = Node;
1719 : if (cast<LoadSDNode>(N)->getMemoryVT() != MVT::i8) return false;
1720 : return true;
1721 :
1722 : }
1723 41 : case 12: {
1724 : // Predicate_load
1725 : SDNode *N = Node;
1726 41 : if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
1727 : return true;
1728 :
1729 : }
1730 23 : case 13: {
1731 : // Predicate_extload
1732 : SDNode *N = Node;
1733 23 : if (cast<LoadSDNode>(N)->getExtensionType() != ISD::EXTLOAD) return false;
1734 : return true;
1735 :
1736 : }
1737 9 : case 14: {
1738 : // Predicate_atomic_load_add_32
1739 : SDNode *N = Node;
1740 : if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i32) return false;
1741 : return true;
1742 :
1743 : }
1744 3 : case 15: {
1745 : // Predicate_atomic_load_add_64
1746 : SDNode *N = Node;
1747 : if (cast<AtomicSDNode>(N)->getMemoryVT() != MVT::i64) return false;
1748 : return true;
1749 :
1750 : }
1751 : case 16: {
1752 : // Predicate_BPF_CC_EQ
1753 : auto *N = cast<ConstantSDNode>(Node);
1754 114 : return (N->getZExtValue() == ISD::SETEQ);
1755 : }
1756 : case 17: {
1757 : // Predicate_BPF_CC_GTU
1758 : auto *N = cast<ConstantSDNode>(Node);
1759 64 : return (N->getZExtValue() == ISD::SETUGT);
1760 : }
1761 : case 18: {
1762 : // Predicate_BPF_CC_GEU
1763 : auto *N = cast<ConstantSDNode>(Node);
1764 64 : return (N->getZExtValue() == ISD::SETUGE);
1765 : }
1766 : case 19: {
1767 : // Predicate_BPF_CC_NE
1768 : auto *N = cast<ConstantSDNode>(Node);
1769 64 : return (N->getZExtValue() == ISD::SETNE);
1770 : }
1771 : case 20: {
1772 : // Predicate_BPF_CC_GT
1773 : auto *N = cast<ConstantSDNode>(Node);
1774 14 : return (N->getZExtValue() == ISD::SETGT);
1775 : }
1776 : case 21: {
1777 : // Predicate_BPF_CC_GE
1778 : auto *N = cast<ConstantSDNode>(Node);
1779 6 : return (N->getZExtValue() == ISD::SETGE);
1780 : }
1781 : case 22: {
1782 : // Predicate_BPF_CC_LTU
1783 : auto *N = cast<ConstantSDNode>(Node);
1784 0 : return (N->getZExtValue() == ISD::SETULT);
1785 : }
1786 : case 23: {
1787 : // Predicate_BPF_CC_LEU
1788 : auto *N = cast<ConstantSDNode>(Node);
1789 0 : return (N->getZExtValue() == ISD::SETULE);
1790 : }
1791 : case 24: {
1792 : // Predicate_BPF_CC_LT
1793 : auto *N = cast<ConstantSDNode>(Node);
1794 0 : return (N->getZExtValue() == ISD::SETLT);
1795 : }
1796 : case 25: {
1797 : // Predicate_BPF_CC_LE
1798 : auto *N = cast<ConstantSDNode>(Node);
1799 0 : return (N->getZExtValue() == ISD::SETLE);
1800 : }
1801 : }
1802 : }
1803 : #endif // GET_DAGISEL_BODY
1804 :
1805 : #ifdef GET_DAGISEL_DECL
1806 : bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
1807 : SDValue N, unsigned PatternNo,
1808 : SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result) override;
1809 : #endif
1810 : #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
1811 325 : bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
1812 : SDValue N, unsigned PatternNo,
1813 : SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)
1814 : #if DAGISEL_INLINE
1815 : override
1816 : #endif
1817 : {
1818 325 : unsigned NextRes = Result.size();
1819 325 : switch (PatternNo) {
1820 0 : default: llvm_unreachable("Invalid pattern # in table?");
1821 216 : case 0:
1822 216 : Result.resize(NextRes+2);
1823 648 : return SelectAddr(N, Result[NextRes+0].first, Result[NextRes+1].first);
1824 109 : case 1:
1825 109 : Result.resize(NextRes+2);
1826 327 : return SelectFIAddr(N, Result[NextRes+0].first, Result[NextRes+1].first);
1827 : }
1828 : }
1829 : #endif // GET_DAGISEL_BODY
1830 :
1831 :
1832 : #ifdef DAGISEL_INLINE
1833 : #undef DAGISEL_INLINE
1834 : #endif
1835 : #ifdef DAGISEL_CLASS_COLONCOLON
1836 : #undef DAGISEL_CLASS_COLONCOLON
1837 : #endif
1838 : #ifdef GET_DAGISEL_DECL
1839 : #undef GET_DAGISEL_DECL
1840 : #endif
1841 : #ifdef GET_DAGISEL_BODY
1842 : #undef GET_DAGISEL_BODY
1843 : #endif
|