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