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 VALL_NONZERO,
82 VALL_ZERO,
83 VANDN,
84 VANY_NONZERO,
85 VANY_ZERO,
86 VBSLL,
87 VBSRL,
88 VFCVT,
89 VFCVTH,
90 VFCVTL,
91 VFTINTRZ,
92 VHADDW,
93 VHADDW_U,
94 VHSUBW,
95 VHSUBW_U,
96 VILVH,
97 VILVL,
98 VLDREPL,
99 VMSKEQZ,
100 VMSKGEZ,
101 VMSKLTZ,
102 VMSKNEZ,
103 VPACKEV,
104 VPACKOD,
105 VPERMI,
106 VPICKEV,
107 VPICKOD,
108 VPICK_SEXT_ELT,
109 VPICK_ZEXT_ELT,
110 VREPLGR2VR,
111 VREPLVE,
112 VREPLVEI,
113 VSHUF,
114 VSHUF4I,
115 VSHUF4I_D,
116 VSLLI,
117 VSLLWIL,
118 VSLLWIL_U,
119 VSRAR,
120 VSRLI,
121 VSRLR,
122 XVINSVE0,
123 XVMSKEQZ,
124 XVMSKGEZ,
125 XVMSKLTZ,
126 XVMSKNEZ,
127 XVPERM,
128 XVPERMI,
129 XVREPLVE0,
130 XVREPLVE0Q,
131};
132
133static constexpr unsigned GENERATED_OPCODE_END = XVREPLVE0Q + 1;
134
135} // namespace llvm::LoongArchISD
136
137#endif // GET_SDNODE_ENUM
138
139#ifdef GET_SDNODE_DESC
140#undef GET_SDNODE_DESC
141
142namespace llvm {
143
144
145#ifdef __GNUC__
146#pragma GCC diagnostic push
147#pragma GCC diagnostic ignored "-Woverlength-strings"
148#endif
149static constexpr char LoongArchSDNodeNamesStorage[] =
150 "\0"
151 "LoongArchISD::BITREV_4B\0"
152 "LoongArchISD::BITREV_8B\0"
153 "LoongArchISD::BITREV_W\0"
154 "LoongArchISD::BRCOND\0"
155 "LoongArchISD::BREAK\0"
156 "LoongArchISD::BR_CC\0"
157 "LoongArchISD::BSTRINS\0"
158 "LoongArchISD::BSTRPICK\0"
159 "LoongArchISD::BUILD_PAIR_F64\0"
160 "LoongArchISD::CALL\0"
161 "LoongArchISD::CALL_LARGE\0"
162 "LoongArchISD::CALL_MEDIUM\0"
163 "LoongArchISD::CLZ_W\0"
164 "LoongArchISD::CPUCFG\0"
165 "LoongArchISD::CRCC_W_B_W\0"
166 "LoongArchISD::CRCC_W_D_W\0"
167 "LoongArchISD::CRCC_W_H_W\0"
168 "LoongArchISD::CRCC_W_W_W\0"
169 "LoongArchISD::CRC_W_B_W\0"
170 "LoongArchISD::CRC_W_D_W\0"
171 "LoongArchISD::CRC_W_H_W\0"
172 "LoongArchISD::CRC_W_W_W\0"
173 "LoongArchISD::CSRRD\0"
174 "LoongArchISD::CSRWR\0"
175 "LoongArchISD::CSRXCHG\0"
176 "LoongArchISD::CTZ_W\0"
177 "LoongArchISD::DBAR\0"
178 "LoongArchISD::DIV_W\0"
179 "LoongArchISD::DIV_WU\0"
180 "LoongArchISD::FRECIPE\0"
181 "LoongArchISD::FRSQRTE\0"
182 "LoongArchISD::FTINT\0"
183 "LoongArchISD::IBAR\0"
184 "LoongArchISD::IOCSRRD_B\0"
185 "LoongArchISD::IOCSRRD_D\0"
186 "LoongArchISD::IOCSRRD_H\0"
187 "LoongArchISD::IOCSRRD_W\0"
188 "LoongArchISD::IOCSRWR_B\0"
189 "LoongArchISD::IOCSRWR_D\0"
190 "LoongArchISD::IOCSRWR_H\0"
191 "LoongArchISD::IOCSRWR_W\0"
192 "LoongArchISD::MOD_W\0"
193 "LoongArchISD::MOD_WU\0"
194 "LoongArchISD::MOVFCSR2GR\0"
195 "LoongArchISD::MOVFR2GR_S_LA64\0"
196 "LoongArchISD::MOVGR2FCSR\0"
197 "LoongArchISD::MOVGR2FR_D\0"
198 "LoongArchISD::MOVGR2FR_D_LO_HI\0"
199 "LoongArchISD::MOVGR2FR_W\0"
200 "LoongArchISD::MOVGR2FR_W_LA64\0"
201 "LoongArchISD::PROBED_ALLOCA\0"
202 "LoongArchISD::RET\0"
203 "LoongArchISD::REVB_2H\0"
204 "LoongArchISD::REVB_2W\0"
205 "LoongArchISD::ROTR_W\0"
206 "LoongArchISD::SELECT_CC\0"
207 "LoongArchISD::SITOF\0"
208 "LoongArchISD::SLL_W\0"
209 "LoongArchISD::SPLIT_PAIR_F64\0"
210 "LoongArchISD::SRA_W\0"
211 "LoongArchISD::SRL_W\0"
212 "LoongArchISD::SYSCALL\0"
213 "LoongArchISD::TAIL\0"
214 "LoongArchISD::TAIL_LARGE\0"
215 "LoongArchISD::TAIL_MEDIUM\0"
216 "LoongArchISD::VALL_NONZERO\0"
217 "LoongArchISD::VALL_ZERO\0"
218 "LoongArchISD::VANDN\0"
219 "LoongArchISD::VANY_NONZERO\0"
220 "LoongArchISD::VANY_ZERO\0"
221 "LoongArchISD::VBSLL\0"
222 "LoongArchISD::VBSRL\0"
223 "LoongArchISD::VFCVT\0"
224 "LoongArchISD::VFCVTH\0"
225 "LoongArchISD::VFCVTL\0"
226 "LoongArchISD::VFTINTRZ\0"
227 "LoongArchISD::VHADDW\0"
228 "LoongArchISD::VHADDW_U\0"
229 "LoongArchISD::VHSUBW\0"
230 "LoongArchISD::VHSUBW_U\0"
231 "LoongArchISD::VILVH\0"
232 "LoongArchISD::VILVL\0"
233 "LoongArchISD::VLDREPL\0"
234 "LoongArchISD::VMSKEQZ\0"
235 "LoongArchISD::VMSKGEZ\0"
236 "LoongArchISD::VMSKLTZ\0"
237 "LoongArchISD::VMSKNEZ\0"
238 "LoongArchISD::VPACKEV\0"
239 "LoongArchISD::VPACKOD\0"
240 "LoongArchISD::VPERMI\0"
241 "LoongArchISD::VPICKEV\0"
242 "LoongArchISD::VPICKOD\0"
243 "LoongArchISD::VPICK_SEXT_ELT\0"
244 "LoongArchISD::VPICK_ZEXT_ELT\0"
245 "LoongArchISD::VREPLGR2VR\0"
246 "LoongArchISD::VREPLVE\0"
247 "LoongArchISD::VREPLVEI\0"
248 "LoongArchISD::VSHUF\0"
249 "LoongArchISD::VSHUF4I\0"
250 "LoongArchISD::VSHUF4I_D\0"
251 "LoongArchISD::VSLLI\0"
252 "LoongArchISD::VSLLWIL\0"
253 "LoongArchISD::VSLLWIL_U\0"
254 "LoongArchISD::VSRAR\0"
255 "LoongArchISD::VSRLI\0"
256 "LoongArchISD::VSRLR\0"
257 "LoongArchISD::XVINSVE0\0"
258 "LoongArchISD::XVMSKEQZ\0"
259 "LoongArchISD::XVMSKGEZ\0"
260 "LoongArchISD::XVMSKLTZ\0"
261 "LoongArchISD::XVMSKNEZ\0"
262 "LoongArchISD::XVPERM\0"
263 "LoongArchISD::XVPERMI\0"
264 "LoongArchISD::XVREPLVE0\0"
265 "LoongArchISD::XVREPLVE0Q\0"
266 ;
267#ifdef __GNUC__
268#pragma GCC diagnostic pop
269#endif
270
271static constexpr llvm::StringTable
272LoongArchSDNodeNames = LoongArchSDNodeNamesStorage;
273
274static const VTByHwModePair LoongArchVTByHwModeTable[] = {
275 /* 0 */ {0, MVT::i32}, {1, MVT::i64},
276};
277
278static const SDTypeConstraint LoongArchSDTypeConstraints[] = {
279 /* 0 */ {SDTCisVT, 2, 0, 0, MVT::f64}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
280 /* 3 */ {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 2, 0},
281 /* 5 */ {SDTCisVT, 1, 0, 0, MVT::f32}, {SDTCisVT, 0, 0, 0, MVT::i64},
282 /* 7 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f32},
283 /* 9 */ {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::f32},
284 /* 11 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f64},
285 /* 14 */ {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::f64},
286 /* 16 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
287 /* 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},
288 /* 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},
289 /* 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},
290 /* 32 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
291 /* 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},
292 /* 39 */ {SDTCisVT, 1, 0, 0, MVT::Other}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
293 /* 41 */ {SDTCisVT, 1, 0, 2, 0}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
294 /* 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},
295 /* 46 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
296 /* 48 */ {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
297 /* 50 */ {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
298 /* 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},
299 /* 57 */ {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},
300 /* 62 */ {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},
301 /* 66 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
302 /* 69 */ {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},
303 /* 73 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
304 /* 75 */ {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},
305 /* 80 */ {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},
306 /* 83 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
307 /* 86 */ {SDTCisVT, 0, 0, 0, MVT::i64}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
308 /* 89 */ {SDTCisVT, 3, 0, 0, MVT::Other}, {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
309 /* 92 */ {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},
310 /* 96 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
311};
312
313static const SDNodeDesc LoongArchSDNodeDescs[] = {
314 {1, 1, 0, 0, 0, 1, 0, 0}, // BITREV_4B
315 {1, 1, 0, 0, 0, 25, 0, 0}, // BITREV_8B
316 {1, 1, 0, 0, 0, 49, 0, 0}, // BITREV_W
317 {0, 2, 0|1<<SDNPHasChain, 0, 0, 72, 39, 2}, // BRCOND
318 {0, 1, 0|1<<SDNPHasChain, 0, 0, 93, 4, 1}, // BREAK
319 {0, 4, 0|1<<SDNPHasChain, 0, 0, 113, 89, 3}, // BR_CC
320 {1, 4, 0, 0, 0, 133, 27, 5}, // BSTRINS
321 {1, 3, 0, 0, 0, 155, 35, 4}, // BSTRPICK
322 {1, 2, 0, 0, 0, 178, 11, 3}, // BUILD_PAIR_F64
323 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 207, 4, 1}, // CALL
324 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 226, 4, 1}, // CALL_LARGE
325 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 251, 4, 1}, // CALL_MEDIUM
326 {1, 1, 0, 0, 0, 277, 43, 3}, // CLZ_W
327 {1, 1, 0|1<<SDNPHasChain, 0, 0, 297, 0, 0}, // CPUCFG
328 {1, 2, 0|1<<SDNPHasChain, 0, 0, 318, 86, 3}, // CRCC_W_B_W
329 {1, 2, 0|1<<SDNPHasChain, 0, 0, 343, 86, 3}, // CRCC_W_D_W
330 {1, 2, 0|1<<SDNPHasChain, 0, 0, 368, 86, 3}, // CRCC_W_H_W
331 {1, 2, 0|1<<SDNPHasChain, 0, 0, 393, 86, 3}, // CRCC_W_W_W
332 {1, 2, 0|1<<SDNPHasChain, 0, 0, 418, 86, 3}, // CRC_W_B_W
333 {1, 2, 0|1<<SDNPHasChain, 0, 0, 442, 86, 3}, // CRC_W_D_W
334 {1, 2, 0|1<<SDNPHasChain, 0, 0, 466, 86, 3}, // CRC_W_H_W
335 {1, 2, 0|1<<SDNPHasChain, 0, 0, 490, 86, 3}, // CRC_W_W_W
336 {1, 1, 0|1<<SDNPHasChain, 0, 0, 514, 41, 2}, // CSRRD
337 {1, 2, 0|1<<SDNPHasChain, 0, 0, 534, 32, 3}, // CSRWR
338 {1, 3, 0|1<<SDNPHasChain, 0, 0, 554, 23, 4}, // CSRXCHG
339 {1, 1, 0, 0, 0, 576, 43, 3}, // CTZ_W
340 {0, 1, 0|1<<SDNPHasChain, 0, 0, 596, 4, 1}, // DBAR
341 {1, 2, 0, 0, 0, 615, 86, 3}, // DIV_W
342 {1, 2, 0, 0, 0, 635, 86, 3}, // DIV_WU
343 {1, 1, 0, 0, 0, 656, 0, 0}, // FRECIPE
344 {1, 1, 0, 0, 0, 678, 0, 0}, // FRSQRTE
345 {1, 1, 0, 0, 0, 700, 50, 2}, // FTINT
346 {0, 1, 0|1<<SDNPHasChain, 0, 0, 720, 4, 1}, // IBAR
347 {1, 1, 0|1<<SDNPHasChain, 0, 0, 739, 0, 0}, // IOCSRRD_B
348 {1, 1, 0|1<<SDNPHasChain, 0, 0, 763, 0, 0}, // IOCSRRD_D
349 {1, 1, 0|1<<SDNPHasChain, 0, 0, 787, 0, 0}, // IOCSRRD_H
350 {1, 1, 0|1<<SDNPHasChain, 0, 0, 811, 0, 0}, // IOCSRRD_W
351 {0, 2, 0|1<<SDNPHasChain, 0, 0, 835, 25, 2}, // IOCSRWR_B
352 {0, 2, 0|1<<SDNPHasChain, 0, 0, 859, 25, 2}, // IOCSRWR_D
353 {0, 2, 0|1<<SDNPHasChain, 0, 0, 883, 25, 2}, // IOCSRWR_H
354 {0, 2, 0|1<<SDNPHasChain, 0, 0, 907, 25, 2}, // IOCSRWR_W
355 {1, 2, 0, 0, 0, 931, 86, 3}, // MOD_W
356 {1, 2, 0, 0, 0, 951, 86, 3}, // MOD_WU
357 {1, 1, 0|1<<SDNPHasChain, 0, 0, 972, 3, 2}, // MOVFCSR2GR
358 {1, 1, 0, 0, 0, 997, 5, 2}, // MOVFR2GR_S_LA64
359 {0, 2, 0|1<<SDNPHasChain, 0, 0, 1027, 3, 2}, // MOVGR2FCSR
360 {1, 1, 0, 0, 0, 1052, 14, 2}, // MOVGR2FR_D
361 {1, 2, 0, 0, 0, 1077, 11, 3}, // MOVGR2FR_D_LO_HI
362 {1, 1, 0, 0, 0, 1108, 7, 2}, // MOVGR2FR_W
363 {1, 1, 0, 0, 0, 1133, 9, 2}, // MOVGR2FR_W_LA64
364 {0, 1, 0|1<<SDNPHasChain, 0, 0, 1163, 16, 1}, // PROBED_ALLOCA
365 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1191, 0, 0}, // RET
366 {1, 1, 0, 0, 0, 1209, 0, 0}, // REVB_2H
367 {1, 1, 0, 0, 0, 1231, 0, 0}, // REVB_2W
368 {1, 2, 0, 0, 0, 1253, 86, 3}, // ROTR_W
369 {1, 5, 0, 0, 0, 1274, 92, 4}, // SELECT_CC
370 {1, 1, 0, 0, 0, 1298, 48, 2}, // SITOF
371 {1, 2, 0, 0, 0, 1318, 86, 3}, // SLL_W
372 {2, 1, 0, 0, 0, 1338, 0, 3}, // SPLIT_PAIR_F64
373 {1, 2, 0, 0, 0, 1367, 86, 3}, // SRA_W
374 {1, 2, 0, 0, 0, 1387, 86, 3}, // SRL_W
375 {0, 1, 0|1<<SDNPHasChain, 0, 0, 1407, 4, 1}, // SYSCALL
376 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1429, 4, 1}, // TAIL
377 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1448, 4, 1}, // TAIL_LARGE
378 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1473, 4, 1}, // TAIL_MEDIUM
379 {1, 1, 0, 0, 0, 1499, 46, 2}, // VALL_NONZERO
380 {1, 1, 0, 0, 0, 1526, 46, 2}, // VALL_ZERO
381 {1, 2, 0, 0, 0, 1550, 63, 3}, // VANDN
382 {1, 1, 0, 0, 0, 1570, 46, 2}, // VANY_NONZERO
383 {1, 1, 0, 0, 0, 1597, 46, 2}, // VANY_ZERO
384 {1, 2, 0, 0, 0, 1621, 66, 3}, // VBSLL
385 {1, 2, 0, 0, 0, 1641, 66, 3}, // VBSRL
386 {1, 2, 0, 0, 0, 1661, 57, 5}, // VFCVT
387 {1, 1, 0, 0, 0, 1681, 58, 4}, // VFCVTH
388 {1, 1, 0, 0, 0, 1702, 58, 4}, // VFCVTL
389 {1, 2, 0, 0, 0, 1723, 52, 5}, // VFTINTRZ
390 {1, 2, 0, 0, 0, 1746, 80, 3}, // VHADDW
391 {1, 2, 0, 0, 0, 1767, 80, 3}, // VHADDW_U
392 {1, 2, 0, 0, 0, 1790, 80, 3}, // VHSUBW
393 {1, 2, 0, 0, 0, 1811, 80, 3}, // VHSUBW_U
394 {1, 2, 0, 0, 0, 1834, 63, 3}, // VILVH
395 {1, 2, 0, 0, 0, 1854, 63, 3}, // VILVL
396 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1874, 73, 2}, // VLDREPL
397 {1, 1, 0, 0, 0, 1896, 46, 2}, // VMSKEQZ
398 {1, 1, 0, 0, 0, 1918, 46, 2}, // VMSKGEZ
399 {1, 1, 0, 0, 0, 1940, 46, 2}, // VMSKLTZ
400 {1, 1, 0, 0, 0, 1962, 46, 2}, // VMSKNEZ
401 {1, 2, 0, 0, 0, 1984, 63, 3}, // VPACKEV
402 {1, 2, 0, 0, 0, 2006, 63, 3}, // VPACKOD
403 {1, 3, 0, 0, 0, 2028, 62, 4}, // VPERMI
404 {1, 2, 0, 0, 0, 2049, 63, 3}, // VPICKEV
405 {1, 2, 0, 0, 0, 2071, 63, 3}, // VPICKOD
406 {1, 3, 0, 0, 0, 2093, 96, 1}, // VPICK_SEXT_ELT
407 {1, 3, 0, 0, 0, 2122, 96, 1}, // VPICK_ZEXT_ELT
408 {1, 1, 0, 0, 0, 2151, 20, 3}, // VREPLGR2VR
409 {1, 2, 0, 0, 0, 2176, 17, 6}, // VREPLVE
410 {1, 2, 0, 0, 0, 2198, 66, 3}, // VREPLVEI
411 {1, 3, 0, 0, 0, 2221, 75, 5}, // VSHUF
412 {1, 2, 0, 0, 0, 2241, 66, 3}, // VSHUF4I
413 {1, 3, 0, 0, 0, 2263, 62, 4}, // VSHUF4I_D
414 {1, 2, 0, 0, 0, 2287, 66, 3}, // VSLLI
415 {1, 2, 0, 0, 0, 2307, 83, 3}, // VSLLWIL
416 {1, 2, 0, 0, 0, 2329, 83, 3}, // VSLLWIL_U
417 {1, 2, 0, 0, 0, 2353, 63, 3}, // VSRAR
418 {1, 2, 0, 0, 0, 2373, 66, 3}, // VSRLI
419 {1, 2, 0, 0, 0, 2393, 63, 3}, // VSRLR
420 {1, 3, 0, 0, 0, 2413, 62, 4}, // XVINSVE0
421 {1, 1, 0, 0, 0, 2436, 46, 2}, // XVMSKEQZ
422 {1, 1, 0, 0, 0, 2459, 46, 2}, // XVMSKGEZ
423 {1, 1, 0, 0, 0, 2482, 46, 2}, // XVMSKLTZ
424 {1, 1, 0, 0, 0, 2505, 46, 2}, // XVMSKNEZ
425 {1, 2, 0, 0, 0, 2528, 69, 4}, // XVPERM
426 {1, 2, 0, 0, 0, 2549, 66, 3}, // XVPERMI
427 {1, 1, 0, 0, 0, 2571, 64, 2}, // XVREPLVE0
428 {1, 1, 0, 0, 0, 2595, 64, 2}, // XVREPLVE0Q
429};
430
431static const SDNodeInfo LoongArchGenSDNodeInfo(
432 /*NumOpcodes=*/115, LoongArchSDNodeDescs, LoongArchSDNodeNames,
433 LoongArchVTByHwModeTable, LoongArchSDTypeConstraints);
434
435} // namespace llvm
436
437#endif // GET_SDNODE_DESC
438
439