1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: LoongArch.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::LoongArchISD {
14
15enum GenNodeType : unsigned {
16 BITREV_4B = ISD::BUILTIN_OP_END,
17 BITREV_8B,
18 BITREV_W,
19 BRCOND,
20 BREAK,
21 BR_CC,
22 BSTRINS,
23 BSTRPICK,
24 BUILD_PAIR_F64,
25 CALL,
26 CALL_LARGE,
27 CALL_MEDIUM,
28 CLZ_W,
29 CPUCFG,
30 CRCC_W_B_W,
31 CRCC_W_D_W,
32 CRCC_W_H_W,
33 CRCC_W_W_W,
34 CRC_W_B_W,
35 CRC_W_D_W,
36 CRC_W_H_W,
37 CRC_W_W_W,
38 CSRRD,
39 CSRWR,
40 CSRXCHG,
41 CTZ_W,
42 DBAR,
43 DIV_W,
44 DIV_WU,
45 FRECIPE,
46 FRSQRTE,
47 FTINT,
48 IBAR,
49 IOCSRRD_B,
50 IOCSRRD_D,
51 IOCSRRD_H,
52 IOCSRRD_W,
53 IOCSRWR_B,
54 IOCSRWR_D,
55 IOCSRWR_H,
56 IOCSRWR_W,
57 MOD_W,
58 MOD_WU,
59 MOVFCSR2GR,
60 MOVFR2GR_S_LA64,
61 MOVGR2FCSR,
62 MOVGR2FR_D,
63 MOVGR2FR_D_LO_HI,
64 MOVGR2FR_W,
65 MOVGR2FR_W_LA64,
66 PROBED_ALLOCA,
67 RET,
68 REVB_2H,
69 REVB_2W,
70 ROTR_W,
71 SELECT_CC,
72 SITOF,
73 SLL_W,
74 SPLIT_PAIR_F64,
75 SRA_W,
76 SRL_W,
77 SYSCALL,
78 TAIL,
79 TAIL_LARGE,
80 TAIL_MEDIUM,
81 VALLZERO,
82 VALL_NONZERO,
83 VALL_ZERO,
84 VANDN,
85 VANYNONZERO,
86 VANY_NONZERO,
87 VANY_ZERO,
88 VBSLL,
89 VBSRL,
90 VEXTH,
91 VEXTH_U,
92 VFCVT,
93 VFCVTH,
94 VFCVTL,
95 VFFINT,
96 VFTINTRZ,
97 VHADDW,
98 VHADDW_U,
99 VHSUBW,
100 VHSUBW_U,
101 VILVH,
102 VILVL,
103 VLDREPL,
104 VMSKEQZ,
105 VMSKGEZ,
106 VMSKLTZ,
107 VMSKNEZ,
108 VPACKEV,
109 VPACKOD,
110 VPERMI,
111 VPICKEV,
112 VPICKOD,
113 VPICK_SEXT_ELT,
114 VPICK_ZEXT_ELT,
115 VREPLGR2VR,
116 VREPLVE,
117 VREPLVEI,
118 VSHUF,
119 VSHUF4I,
120 VSHUF4I_D,
121 VSLLI,
122 VSLLWIL,
123 VSLLWIL_U,
124 VSRAR,
125 VSRLI,
126 VSRLR,
127 XVINSVE0,
128 XVMSKEQZ,
129 XVMSKGEZ,
130 XVMSKLTZ,
131 XVMSKNEZ,
132 XVPERM,
133 XVPERMI,
134 XVREPLVE0,
135 XVREPLVE0Q,
136};
137
138static constexpr unsigned GENERATED_OPCODE_END = XVREPLVE0Q + 1;
139
140} // namespace llvm::LoongArchISD
141
142#endif // GET_SDNODE_ENUM
143
144#ifdef GET_SDNODE_DESC
145#undef GET_SDNODE_DESC
146
147namespace llvm {
148
149
150#ifdef __GNUC__
151#pragma GCC diagnostic push
152#pragma GCC diagnostic ignored "-Woverlength-strings"
153#endif
154static constexpr char LoongArchSDNodeNamesStorage[] =
155 "\0"
156 "LoongArchISD::BITREV_4B\0"
157 "LoongArchISD::BITREV_8B\0"
158 "LoongArchISD::BITREV_W\0"
159 "LoongArchISD::BRCOND\0"
160 "LoongArchISD::BREAK\0"
161 "LoongArchISD::BR_CC\0"
162 "LoongArchISD::BSTRINS\0"
163 "LoongArchISD::BSTRPICK\0"
164 "LoongArchISD::BUILD_PAIR_F64\0"
165 "LoongArchISD::CALL\0"
166 "LoongArchISD::CALL_LARGE\0"
167 "LoongArchISD::CALL_MEDIUM\0"
168 "LoongArchISD::CLZ_W\0"
169 "LoongArchISD::CPUCFG\0"
170 "LoongArchISD::CRCC_W_B_W\0"
171 "LoongArchISD::CRCC_W_D_W\0"
172 "LoongArchISD::CRCC_W_H_W\0"
173 "LoongArchISD::CRCC_W_W_W\0"
174 "LoongArchISD::CRC_W_B_W\0"
175 "LoongArchISD::CRC_W_D_W\0"
176 "LoongArchISD::CRC_W_H_W\0"
177 "LoongArchISD::CRC_W_W_W\0"
178 "LoongArchISD::CSRRD\0"
179 "LoongArchISD::CSRWR\0"
180 "LoongArchISD::CSRXCHG\0"
181 "LoongArchISD::CTZ_W\0"
182 "LoongArchISD::DBAR\0"
183 "LoongArchISD::DIV_W\0"
184 "LoongArchISD::DIV_WU\0"
185 "LoongArchISD::FRECIPE\0"
186 "LoongArchISD::FRSQRTE\0"
187 "LoongArchISD::FTINT\0"
188 "LoongArchISD::IBAR\0"
189 "LoongArchISD::IOCSRRD_B\0"
190 "LoongArchISD::IOCSRRD_D\0"
191 "LoongArchISD::IOCSRRD_H\0"
192 "LoongArchISD::IOCSRRD_W\0"
193 "LoongArchISD::IOCSRWR_B\0"
194 "LoongArchISD::IOCSRWR_D\0"
195 "LoongArchISD::IOCSRWR_H\0"
196 "LoongArchISD::IOCSRWR_W\0"
197 "LoongArchISD::MOD_W\0"
198 "LoongArchISD::MOD_WU\0"
199 "LoongArchISD::MOVFCSR2GR\0"
200 "LoongArchISD::MOVFR2GR_S_LA64\0"
201 "LoongArchISD::MOVGR2FCSR\0"
202 "LoongArchISD::MOVGR2FR_D\0"
203 "LoongArchISD::MOVGR2FR_D_LO_HI\0"
204 "LoongArchISD::MOVGR2FR_W\0"
205 "LoongArchISD::MOVGR2FR_W_LA64\0"
206 "LoongArchISD::PROBED_ALLOCA\0"
207 "LoongArchISD::RET\0"
208 "LoongArchISD::REVB_2H\0"
209 "LoongArchISD::REVB_2W\0"
210 "LoongArchISD::ROTR_W\0"
211 "LoongArchISD::SELECT_CC\0"
212 "LoongArchISD::SITOF\0"
213 "LoongArchISD::SLL_W\0"
214 "LoongArchISD::SPLIT_PAIR_F64\0"
215 "LoongArchISD::SRA_W\0"
216 "LoongArchISD::SRL_W\0"
217 "LoongArchISD::SYSCALL\0"
218 "LoongArchISD::TAIL\0"
219 "LoongArchISD::TAIL_LARGE\0"
220 "LoongArchISD::TAIL_MEDIUM\0"
221 "LoongArchISD::VALLZERO\0"
222 "LoongArchISD::VALL_NONZERO\0"
223 "LoongArchISD::VALL_ZERO\0"
224 "LoongArchISD::VANDN\0"
225 "LoongArchISD::VANYNONZERO\0"
226 "LoongArchISD::VANY_NONZERO\0"
227 "LoongArchISD::VANY_ZERO\0"
228 "LoongArchISD::VBSLL\0"
229 "LoongArchISD::VBSRL\0"
230 "LoongArchISD::VEXTH\0"
231 "LoongArchISD::VEXTH_U\0"
232 "LoongArchISD::VFCVT\0"
233 "LoongArchISD::VFCVTH\0"
234 "LoongArchISD::VFCVTL\0"
235 "LoongArchISD::VFFINT\0"
236 "LoongArchISD::VFTINTRZ\0"
237 "LoongArchISD::VHADDW\0"
238 "LoongArchISD::VHADDW_U\0"
239 "LoongArchISD::VHSUBW\0"
240 "LoongArchISD::VHSUBW_U\0"
241 "LoongArchISD::VILVH\0"
242 "LoongArchISD::VILVL\0"
243 "LoongArchISD::VLDREPL\0"
244 "LoongArchISD::VMSKEQZ\0"
245 "LoongArchISD::VMSKGEZ\0"
246 "LoongArchISD::VMSKLTZ\0"
247 "LoongArchISD::VMSKNEZ\0"
248 "LoongArchISD::VPACKEV\0"
249 "LoongArchISD::VPACKOD\0"
250 "LoongArchISD::VPERMI\0"
251 "LoongArchISD::VPICKEV\0"
252 "LoongArchISD::VPICKOD\0"
253 "LoongArchISD::VPICK_SEXT_ELT\0"
254 "LoongArchISD::VPICK_ZEXT_ELT\0"
255 "LoongArchISD::VREPLGR2VR\0"
256 "LoongArchISD::VREPLVE\0"
257 "LoongArchISD::VREPLVEI\0"
258 "LoongArchISD::VSHUF\0"
259 "LoongArchISD::VSHUF4I\0"
260 "LoongArchISD::VSHUF4I_D\0"
261 "LoongArchISD::VSLLI\0"
262 "LoongArchISD::VSLLWIL\0"
263 "LoongArchISD::VSLLWIL_U\0"
264 "LoongArchISD::VSRAR\0"
265 "LoongArchISD::VSRLI\0"
266 "LoongArchISD::VSRLR\0"
267 "LoongArchISD::XVINSVE0\0"
268 "LoongArchISD::XVMSKEQZ\0"
269 "LoongArchISD::XVMSKGEZ\0"
270 "LoongArchISD::XVMSKLTZ\0"
271 "LoongArchISD::XVMSKNEZ\0"
272 "LoongArchISD::XVPERM\0"
273 "LoongArchISD::XVPERMI\0"
274 "LoongArchISD::XVREPLVE0\0"
275 "LoongArchISD::XVREPLVE0Q\0"
276 ;
277#ifdef __GNUC__
278#pragma GCC diagnostic pop
279#endif
280
281static constexpr llvm::StringTable
282LoongArchSDNodeNames = LoongArchSDNodeNamesStorage;
283
284static const VTByHwModePair LoongArchVTByHwModeTable[] = {
285 /* 0 */ {0, MVT::i32}, {1, MVT::i64},
286};
287
288static const SDTypeConstraint LoongArchSDTypeConstraints[] = {
289 /* 0 */ {SDTCisVT, 2, 0, 0, MVT::f64}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
290 /* 3 */ {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 2, 0},
291 /* 5 */ {SDTCisVT, 1, 0, 0, MVT::f32}, {SDTCisVT, 0, 0, 0, MVT::i64},
292 /* 7 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f32},
293 /* 9 */ {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::f32},
294 /* 11 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f64},
295 /* 14 */ {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::f64},
296 /* 16 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
297 /* 17 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
298 /* 23 */ {SDTCisVT, 3, 0, 2, 0}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
299 /* 27 */ {SDTCisSameAs, 3, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
300 /* 32 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
301 /* 35 */ {SDTCisSameAs, 2, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
302 /* 39 */ {SDTCisVT, 1, 0, 0, MVT::Other}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
303 /* 41 */ {SDTCisVT, 1, 0, 2, 0}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
304 /* 43 */ {SDTCisSameNumEltsAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
305 /* 46 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
306 /* 48 */ {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
307 /* 50 */ {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
308 /* 52 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
309 /* 57 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
310 /* 62 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
311 /* 67 */ {SDTCisVT, 3, 0, 2, 0}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
312 /* 71 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
313 /* 74 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
314 /* 78 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
315 /* 80 */ {SDTCisSameAs, 2, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
316 /* 85 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
317 /* 88 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
318 /* 91 */ {SDTCisVT, 0, 0, 0, MVT::i64}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
319 /* 94 */ {SDTCisVT, 3, 0, 0, MVT::Other}, {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
320 /* 97 */ {SDTCisSameAs, 4, 5, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 3, 0, 0, MVT::Other}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
321 /* 101 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
322};
323
324static const SDNodeDesc LoongArchSDNodeDescs[] = {
325 {1, 1, 0, 0, 0, 1, 0, 0}, // BITREV_4B
326 {1, 1, 0, 0, 0, 25, 0, 0}, // BITREV_8B
327 {1, 1, 0, 0, 0, 49, 0, 0}, // BITREV_W
328 {0, 2, 0|1<<SDNPHasChain, 0, 0, 72, 39, 2}, // BRCOND
329 {0, 1, 0|1<<SDNPHasChain, 0, 0, 93, 4, 1}, // BREAK
330 {0, 4, 0|1<<SDNPHasChain, 0, 0, 113, 94, 3}, // BR_CC
331 {1, 4, 0, 0, 0, 133, 27, 5}, // BSTRINS
332 {1, 3, 0, 0, 0, 155, 35, 4}, // BSTRPICK
333 {1, 2, 0, 0, 0, 178, 11, 3}, // BUILD_PAIR_F64
334 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 207, 4, 1}, // CALL
335 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 226, 4, 1}, // CALL_LARGE
336 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 251, 4, 1}, // CALL_MEDIUM
337 {1, 1, 0, 0, 0, 277, 43, 3}, // CLZ_W
338 {1, 1, 0|1<<SDNPHasChain, 0, 0, 297, 0, 0}, // CPUCFG
339 {1, 2, 0|1<<SDNPHasChain, 0, 0, 318, 91, 3}, // CRCC_W_B_W
340 {1, 2, 0|1<<SDNPHasChain, 0, 0, 343, 91, 3}, // CRCC_W_D_W
341 {1, 2, 0|1<<SDNPHasChain, 0, 0, 368, 91, 3}, // CRCC_W_H_W
342 {1, 2, 0|1<<SDNPHasChain, 0, 0, 393, 91, 3}, // CRCC_W_W_W
343 {1, 2, 0|1<<SDNPHasChain, 0, 0, 418, 91, 3}, // CRC_W_B_W
344 {1, 2, 0|1<<SDNPHasChain, 0, 0, 442, 91, 3}, // CRC_W_D_W
345 {1, 2, 0|1<<SDNPHasChain, 0, 0, 466, 91, 3}, // CRC_W_H_W
346 {1, 2, 0|1<<SDNPHasChain, 0, 0, 490, 91, 3}, // CRC_W_W_W
347 {1, 1, 0|1<<SDNPHasChain, 0, 0, 514, 41, 2}, // CSRRD
348 {1, 2, 0|1<<SDNPHasChain, 0, 0, 534, 32, 3}, // CSRWR
349 {1, 3, 0|1<<SDNPHasChain, 0, 0, 554, 23, 4}, // CSRXCHG
350 {1, 1, 0, 0, 0, 576, 43, 3}, // CTZ_W
351 {0, 1, 0|1<<SDNPHasChain, 0, 0, 596, 4, 1}, // DBAR
352 {1, 2, 0, 0, 0, 615, 91, 3}, // DIV_W
353 {1, 2, 0, 0, 0, 635, 91, 3}, // DIV_WU
354 {1, 1, 0, 0, 0, 656, 0, 0}, // FRECIPE
355 {1, 1, 0, 0, 0, 678, 0, 0}, // FRSQRTE
356 {1, 1, 0, 0, 0, 700, 50, 2}, // FTINT
357 {0, 1, 0|1<<SDNPHasChain, 0, 0, 720, 4, 1}, // IBAR
358 {1, 1, 0|1<<SDNPHasChain, 0, 0, 739, 0, 0}, // IOCSRRD_B
359 {1, 1, 0|1<<SDNPHasChain, 0, 0, 763, 0, 0}, // IOCSRRD_D
360 {1, 1, 0|1<<SDNPHasChain, 0, 0, 787, 0, 0}, // IOCSRRD_H
361 {1, 1, 0|1<<SDNPHasChain, 0, 0, 811, 0, 0}, // IOCSRRD_W
362 {0, 2, 0|1<<SDNPHasChain, 0, 0, 835, 25, 2}, // IOCSRWR_B
363 {0, 2, 0|1<<SDNPHasChain, 0, 0, 859, 25, 2}, // IOCSRWR_D
364 {0, 2, 0|1<<SDNPHasChain, 0, 0, 883, 25, 2}, // IOCSRWR_H
365 {0, 2, 0|1<<SDNPHasChain, 0, 0, 907, 25, 2}, // IOCSRWR_W
366 {1, 2, 0, 0, 0, 931, 91, 3}, // MOD_W
367 {1, 2, 0, 0, 0, 951, 91, 3}, // MOD_WU
368 {1, 1, 0|1<<SDNPHasChain, 0, 0, 972, 3, 2}, // MOVFCSR2GR
369 {1, 1, 0, 0, 0, 997, 5, 2}, // MOVFR2GR_S_LA64
370 {0, 2, 0|1<<SDNPHasChain, 0, 0, 1027, 3, 2}, // MOVGR2FCSR
371 {1, 1, 0, 0, 0, 1052, 14, 2}, // MOVGR2FR_D
372 {1, 2, 0, 0, 0, 1077, 11, 3}, // MOVGR2FR_D_LO_HI
373 {1, 1, 0, 0, 0, 1108, 7, 2}, // MOVGR2FR_W
374 {1, 1, 0, 0, 0, 1133, 9, 2}, // MOVGR2FR_W_LA64
375 {0, 1, 0|1<<SDNPHasChain, 0, 0, 1163, 16, 1}, // PROBED_ALLOCA
376 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1191, 0, 0}, // RET
377 {1, 1, 0, 0, 0, 1209, 0, 0}, // REVB_2H
378 {1, 1, 0, 0, 0, 1231, 0, 0}, // REVB_2W
379 {1, 2, 0, 0, 0, 1253, 91, 3}, // ROTR_W
380 {1, 5, 0, 0, 0, 1274, 97, 4}, // SELECT_CC
381 {1, 1, 0, 0, 0, 1298, 48, 2}, // SITOF
382 {1, 2, 0, 0, 0, 1318, 91, 3}, // SLL_W
383 {2, 1, 0, 0, 0, 1338, 0, 3}, // SPLIT_PAIR_F64
384 {1, 2, 0, 0, 0, 1367, 91, 3}, // SRA_W
385 {1, 2, 0, 0, 0, 1387, 91, 3}, // SRL_W
386 {0, 1, 0|1<<SDNPHasChain, 0, 0, 1407, 4, 1}, // SYSCALL
387 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1429, 4, 1}, // TAIL
388 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1448, 4, 1}, // TAIL_LARGE
389 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1473, 4, 1}, // TAIL_MEDIUM
390 {1, 1, 0, 0, 0, 1499, 46, 2}, // VALLZERO
391 {1, 1, 0, 0, 0, 1522, 46, 2}, // VALL_NONZERO
392 {1, 1, 0, 0, 0, 1549, 46, 2}, // VALL_ZERO
393 {1, 2, 0, 0, 0, 1573, 68, 3}, // VANDN
394 {1, 1, 0, 0, 0, 1593, 46, 2}, // VANYNONZERO
395 {1, 1, 0, 0, 0, 1619, 46, 2}, // VANY_NONZERO
396 {1, 1, 0, 0, 0, 1646, 46, 2}, // VANY_ZERO
397 {1, 2, 0, 0, 0, 1670, 71, 3}, // VBSLL
398 {1, 2, 0, 0, 0, 1690, 71, 3}, // VBSRL
399 {1, 1, 0, 0, 0, 1710, 86, 2}, // VEXTH
400 {1, 1, 0, 0, 0, 1730, 86, 2}, // VEXTH_U
401 {1, 2, 0, 0, 0, 1752, 62, 5}, // VFCVT
402 {1, 1, 0, 0, 0, 1772, 63, 4}, // VFCVTH
403 {1, 1, 0, 0, 0, 1793, 63, 4}, // VFCVTL
404 {1, 2, 0, 0, 0, 1814, 57, 5}, // VFFINT
405 {1, 2, 0, 0, 0, 1835, 52, 5}, // VFTINTRZ
406 {1, 2, 0, 0, 0, 1858, 85, 3}, // VHADDW
407 {1, 2, 0, 0, 0, 1879, 85, 3}, // VHADDW_U
408 {1, 2, 0, 0, 0, 1902, 85, 3}, // VHSUBW
409 {1, 2, 0, 0, 0, 1923, 85, 3}, // VHSUBW_U
410 {1, 2, 0, 0, 0, 1946, 68, 3}, // VILVH
411 {1, 2, 0, 0, 0, 1966, 68, 3}, // VILVL
412 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1986, 78, 2}, // VLDREPL
413 {1, 1, 0, 0, 0, 2008, 46, 2}, // VMSKEQZ
414 {1, 1, 0, 0, 0, 2030, 46, 2}, // VMSKGEZ
415 {1, 1, 0, 0, 0, 2052, 46, 2}, // VMSKLTZ
416 {1, 1, 0, 0, 0, 2074, 46, 2}, // VMSKNEZ
417 {1, 2, 0, 0, 0, 2096, 68, 3}, // VPACKEV
418 {1, 2, 0, 0, 0, 2118, 68, 3}, // VPACKOD
419 {1, 3, 0, 0, 0, 2140, 67, 4}, // VPERMI
420 {1, 2, 0, 0, 0, 2161, 68, 3}, // VPICKEV
421 {1, 2, 0, 0, 0, 2183, 68, 3}, // VPICKOD
422 {1, 3, 0, 0, 0, 2205, 101, 1}, // VPICK_SEXT_ELT
423 {1, 3, 0, 0, 0, 2234, 101, 1}, // VPICK_ZEXT_ELT
424 {1, 1, 0, 0, 0, 2263, 20, 3}, // VREPLGR2VR
425 {1, 2, 0, 0, 0, 2288, 17, 6}, // VREPLVE
426 {1, 2, 0, 0, 0, 2310, 71, 3}, // VREPLVEI
427 {1, 3, 0, 0, 0, 2333, 80, 5}, // VSHUF
428 {1, 2, 0, 0, 0, 2353, 71, 3}, // VSHUF4I
429 {1, 3, 0, 0, 0, 2375, 67, 4}, // VSHUF4I_D
430 {1, 2, 0, 0, 0, 2399, 71, 3}, // VSLLI
431 {1, 2, 0, 0, 0, 2419, 88, 3}, // VSLLWIL
432 {1, 2, 0, 0, 0, 2441, 88, 3}, // VSLLWIL_U
433 {1, 2, 0, 0, 0, 2465, 68, 3}, // VSRAR
434 {1, 2, 0, 0, 0, 2485, 71, 3}, // VSRLI
435 {1, 2, 0, 0, 0, 2505, 68, 3}, // VSRLR
436 {1, 3, 0, 0, 0, 2525, 67, 4}, // XVINSVE0
437 {1, 1, 0, 0, 0, 2548, 46, 2}, // XVMSKEQZ
438 {1, 1, 0, 0, 0, 2571, 46, 2}, // XVMSKGEZ
439 {1, 1, 0, 0, 0, 2594, 46, 2}, // XVMSKLTZ
440 {1, 1, 0, 0, 0, 2617, 46, 2}, // XVMSKNEZ
441 {1, 2, 0, 0, 0, 2640, 74, 4}, // XVPERM
442 {1, 2, 0, 0, 0, 2661, 71, 3}, // XVPERMI
443 {1, 1, 0, 0, 0, 2683, 69, 2}, // XVREPLVE0
444 {1, 1, 0, 0, 0, 2707, 69, 2}, // XVREPLVE0Q
445};
446
447static const SDNodeInfo LoongArchGenSDNodeInfo(
448 /*NumOpcodes=*/120, LoongArchSDNodeDescs, LoongArchSDNodeNames,
449 LoongArchVTByHwModeTable, LoongArchSDTypeConstraints);
450
451} // namespace llvm
452
453#endif // GET_SDNODE_DESC
454
455