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