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 RET,
67 REVB_2H,
68 REVB_2W,
69 ROTR_W,
70 SELECT_CC,
71 SITOF,
72 SLL_W,
73 SPLIT_PAIR_F64,
74 SRA_W,
75 SRL_W,
76 SYSCALL,
77 TAIL,
78 TAIL_LARGE,
79 TAIL_MEDIUM,
80 VALL_NONZERO,
81 VALL_ZERO,
82 VANDN,
83 VANY_NONZERO,
84 VANY_ZERO,
85 VBSLL,
86 VBSRL,
87 VHADDW,
88 VILVH,
89 VILVL,
90 VLDREPL,
91 VMSKEQZ,
92 VMSKGEZ,
93 VMSKLTZ,
94 VMSKNEZ,
95 VPACKEV,
96 VPACKOD,
97 VPICKEV,
98 VPICKOD,
99 VPICK_SEXT_ELT,
100 VPICK_ZEXT_ELT,
101 VREPLGR2VR,
102 VREPLVE,
103 VREPLVEI,
104 VSHUF,
105 VSHUF4I,
106 VSHUF4I_D,
107 VSLLI,
108 VSRLI,
109 XVINSVE0,
110 XVMSKEQZ,
111 XVMSKGEZ,
112 XVMSKLTZ,
113 XVMSKNEZ,
114 XVPERM,
115 XVPERMI,
116 XVREPLVE0,
117 XVREPLVE0Q,
118};
119
120static constexpr unsigned GENERATED_OPCODE_END = XVREPLVE0Q + 1;
121
122} // namespace llvm::LoongArchISD
123
124#endif // GET_SDNODE_ENUM
125
126#ifdef GET_SDNODE_DESC
127#undef GET_SDNODE_DESC
128
129namespace llvm {
130
131
132#ifdef __GNUC__
133#pragma GCC diagnostic push
134#pragma GCC diagnostic ignored "-Woverlength-strings"
135#endif
136static constexpr char LoongArchSDNodeNamesStorage[] =
137 "\0"
138 "LoongArchISD::BITREV_4B\0"
139 "LoongArchISD::BITREV_8B\0"
140 "LoongArchISD::BITREV_W\0"
141 "LoongArchISD::BRCOND\0"
142 "LoongArchISD::BREAK\0"
143 "LoongArchISD::BR_CC\0"
144 "LoongArchISD::BSTRINS\0"
145 "LoongArchISD::BSTRPICK\0"
146 "LoongArchISD::BUILD_PAIR_F64\0"
147 "LoongArchISD::CALL\0"
148 "LoongArchISD::CALL_LARGE\0"
149 "LoongArchISD::CALL_MEDIUM\0"
150 "LoongArchISD::CLZ_W\0"
151 "LoongArchISD::CPUCFG\0"
152 "LoongArchISD::CRCC_W_B_W\0"
153 "LoongArchISD::CRCC_W_D_W\0"
154 "LoongArchISD::CRCC_W_H_W\0"
155 "LoongArchISD::CRCC_W_W_W\0"
156 "LoongArchISD::CRC_W_B_W\0"
157 "LoongArchISD::CRC_W_D_W\0"
158 "LoongArchISD::CRC_W_H_W\0"
159 "LoongArchISD::CRC_W_W_W\0"
160 "LoongArchISD::CSRRD\0"
161 "LoongArchISD::CSRWR\0"
162 "LoongArchISD::CSRXCHG\0"
163 "LoongArchISD::CTZ_W\0"
164 "LoongArchISD::DBAR\0"
165 "LoongArchISD::DIV_W\0"
166 "LoongArchISD::DIV_WU\0"
167 "LoongArchISD::FRECIPE\0"
168 "LoongArchISD::FRSQRTE\0"
169 "LoongArchISD::FTINT\0"
170 "LoongArchISD::IBAR\0"
171 "LoongArchISD::IOCSRRD_B\0"
172 "LoongArchISD::IOCSRRD_D\0"
173 "LoongArchISD::IOCSRRD_H\0"
174 "LoongArchISD::IOCSRRD_W\0"
175 "LoongArchISD::IOCSRWR_B\0"
176 "LoongArchISD::IOCSRWR_D\0"
177 "LoongArchISD::IOCSRWR_H\0"
178 "LoongArchISD::IOCSRWR_W\0"
179 "LoongArchISD::MOD_W\0"
180 "LoongArchISD::MOD_WU\0"
181 "LoongArchISD::MOVFCSR2GR\0"
182 "LoongArchISD::MOVFR2GR_S_LA64\0"
183 "LoongArchISD::MOVGR2FCSR\0"
184 "LoongArchISD::MOVGR2FR_D\0"
185 "LoongArchISD::MOVGR2FR_D_LO_HI\0"
186 "LoongArchISD::MOVGR2FR_W\0"
187 "LoongArchISD::MOVGR2FR_W_LA64\0"
188 "LoongArchISD::RET\0"
189 "LoongArchISD::REVB_2H\0"
190 "LoongArchISD::REVB_2W\0"
191 "LoongArchISD::ROTR_W\0"
192 "LoongArchISD::SELECT_CC\0"
193 "LoongArchISD::SITOF\0"
194 "LoongArchISD::SLL_W\0"
195 "LoongArchISD::SPLIT_PAIR_F64\0"
196 "LoongArchISD::SRA_W\0"
197 "LoongArchISD::SRL_W\0"
198 "LoongArchISD::SYSCALL\0"
199 "LoongArchISD::TAIL\0"
200 "LoongArchISD::TAIL_LARGE\0"
201 "LoongArchISD::TAIL_MEDIUM\0"
202 "LoongArchISD::VALL_NONZERO\0"
203 "LoongArchISD::VALL_ZERO\0"
204 "LoongArchISD::VANDN\0"
205 "LoongArchISD::VANY_NONZERO\0"
206 "LoongArchISD::VANY_ZERO\0"
207 "LoongArchISD::VBSLL\0"
208 "LoongArchISD::VBSRL\0"
209 "LoongArchISD::VHADDW\0"
210 "LoongArchISD::VILVH\0"
211 "LoongArchISD::VILVL\0"
212 "LoongArchISD::VLDREPL\0"
213 "LoongArchISD::VMSKEQZ\0"
214 "LoongArchISD::VMSKGEZ\0"
215 "LoongArchISD::VMSKLTZ\0"
216 "LoongArchISD::VMSKNEZ\0"
217 "LoongArchISD::VPACKEV\0"
218 "LoongArchISD::VPACKOD\0"
219 "LoongArchISD::VPICKEV\0"
220 "LoongArchISD::VPICKOD\0"
221 "LoongArchISD::VPICK_SEXT_ELT\0"
222 "LoongArchISD::VPICK_ZEXT_ELT\0"
223 "LoongArchISD::VREPLGR2VR\0"
224 "LoongArchISD::VREPLVE\0"
225 "LoongArchISD::VREPLVEI\0"
226 "LoongArchISD::VSHUF\0"
227 "LoongArchISD::VSHUF4I\0"
228 "LoongArchISD::VSHUF4I_D\0"
229 "LoongArchISD::VSLLI\0"
230 "LoongArchISD::VSRLI\0"
231 "LoongArchISD::XVINSVE0\0"
232 "LoongArchISD::XVMSKEQZ\0"
233 "LoongArchISD::XVMSKGEZ\0"
234 "LoongArchISD::XVMSKLTZ\0"
235 "LoongArchISD::XVMSKNEZ\0"
236 "LoongArchISD::XVPERM\0"
237 "LoongArchISD::XVPERMI\0"
238 "LoongArchISD::XVREPLVE0\0"
239 "LoongArchISD::XVREPLVE0Q\0"
240 ;
241#ifdef __GNUC__
242#pragma GCC diagnostic pop
243#endif
244
245static constexpr llvm::StringTable
246LoongArchSDNodeNames = LoongArchSDNodeNamesStorage;
247
248static const VTByHwModePair LoongArchVTByHwModeTable[] = {
249 /* 0 */ {0, MVT::i32}, {1, MVT::i64},
250};
251
252static const SDTypeConstraint LoongArchSDTypeConstraints[] = {
253 /* 0 */ {SDTCisVT, 2, 0, 0, MVT::f64}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
254 /* 3 */ {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 2, 0},
255 /* 5 */ {SDTCisVT, 1, 0, 0, MVT::f32}, {SDTCisVT, 0, 0, 0, MVT::i64},
256 /* 7 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f32},
257 /* 9 */ {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::f32},
258 /* 11 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f64},
259 /* 14 */ {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::f64},
260 /* 16 */ {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},
261 /* 22 */ {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},
262 /* 26 */ {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},
263 /* 31 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
264 /* 34 */ {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},
265 /* 38 */ {SDTCisVT, 1, 0, 0, MVT::Other}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
266 /* 40 */ {SDTCisVT, 1, 0, 2, 0}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
267 /* 42 */ {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},
268 /* 45 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
269 /* 47 */ {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
270 /* 49 */ {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
271 /* 51 */ {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},
272 /* 55 */ {SDTCisVT, 2, 0, 2, 0}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
273 /* 58 */ {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},
274 /* 62 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
275 /* 64 */ {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},
276 /* 69 */ {SDTCisVT, 0, 0, 0, MVT::i64}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
277 /* 72 */ {SDTCisVT, 3, 0, 0, MVT::Other}, {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
278 /* 75 */ {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},
279 /* 79 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
280};
281
282static const SDNodeDesc LoongArchSDNodeDescs[] = {
283 {1, 1, 0, 0, 0, 1, 0, 0}, // BITREV_4B
284 {1, 1, 0, 0, 0, 25, 0, 0}, // BITREV_8B
285 {1, 1, 0, 0, 0, 49, 0, 0}, // BITREV_W
286 {0, 2, 0|1<<SDNPHasChain, 0, 0, 72, 38, 2}, // BRCOND
287 {0, 1, 0|1<<SDNPHasChain, 0, 0, 93, 4, 1}, // BREAK
288 {0, 4, 0|1<<SDNPHasChain, 0, 0, 113, 72, 3}, // BR_CC
289 {1, 4, 0, 0, 0, 133, 26, 5}, // BSTRINS
290 {1, 3, 0, 0, 0, 155, 34, 4}, // BSTRPICK
291 {1, 2, 0, 0, 0, 178, 11, 3}, // BUILD_PAIR_F64
292 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 207, 4, 1}, // CALL
293 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 226, 4, 1}, // CALL_LARGE
294 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 251, 4, 1}, // CALL_MEDIUM
295 {1, 1, 0, 0, 0, 277, 42, 3}, // CLZ_W
296 {1, 1, 0|1<<SDNPHasChain, 0, 0, 297, 0, 0}, // CPUCFG
297 {1, 2, 0|1<<SDNPHasChain, 0, 0, 318, 69, 3}, // CRCC_W_B_W
298 {1, 2, 0|1<<SDNPHasChain, 0, 0, 343, 69, 3}, // CRCC_W_D_W
299 {1, 2, 0|1<<SDNPHasChain, 0, 0, 368, 69, 3}, // CRCC_W_H_W
300 {1, 2, 0|1<<SDNPHasChain, 0, 0, 393, 69, 3}, // CRCC_W_W_W
301 {1, 2, 0|1<<SDNPHasChain, 0, 0, 418, 69, 3}, // CRC_W_B_W
302 {1, 2, 0|1<<SDNPHasChain, 0, 0, 442, 69, 3}, // CRC_W_D_W
303 {1, 2, 0|1<<SDNPHasChain, 0, 0, 466, 69, 3}, // CRC_W_H_W
304 {1, 2, 0|1<<SDNPHasChain, 0, 0, 490, 69, 3}, // CRC_W_W_W
305 {1, 1, 0|1<<SDNPHasChain, 0, 0, 514, 40, 2}, // CSRRD
306 {1, 2, 0|1<<SDNPHasChain, 0, 0, 534, 31, 3}, // CSRWR
307 {1, 3, 0|1<<SDNPHasChain, 0, 0, 554, 22, 4}, // CSRXCHG
308 {1, 1, 0, 0, 0, 576, 42, 3}, // CTZ_W
309 {0, 1, 0|1<<SDNPHasChain, 0, 0, 596, 4, 1}, // DBAR
310 {1, 2, 0, 0, 0, 615, 69, 3}, // DIV_W
311 {1, 2, 0, 0, 0, 635, 69, 3}, // DIV_WU
312 {1, 1, 0, 0, 0, 656, 0, 0}, // FRECIPE
313 {1, 1, 0, 0, 0, 678, 0, 0}, // FRSQRTE
314 {1, 1, 0, 0, 0, 700, 49, 2}, // FTINT
315 {0, 1, 0|1<<SDNPHasChain, 0, 0, 720, 4, 1}, // IBAR
316 {1, 1, 0|1<<SDNPHasChain, 0, 0, 739, 0, 0}, // IOCSRRD_B
317 {1, 1, 0|1<<SDNPHasChain, 0, 0, 763, 0, 0}, // IOCSRRD_D
318 {1, 1, 0|1<<SDNPHasChain, 0, 0, 787, 0, 0}, // IOCSRRD_H
319 {1, 1, 0|1<<SDNPHasChain, 0, 0, 811, 0, 0}, // IOCSRRD_W
320 {0, 2, 0|1<<SDNPHasChain, 0, 0, 835, 24, 2}, // IOCSRWR_B
321 {0, 2, 0|1<<SDNPHasChain, 0, 0, 859, 24, 2}, // IOCSRWR_D
322 {0, 2, 0|1<<SDNPHasChain, 0, 0, 883, 24, 2}, // IOCSRWR_H
323 {0, 2, 0|1<<SDNPHasChain, 0, 0, 907, 24, 2}, // IOCSRWR_W
324 {1, 2, 0, 0, 0, 931, 69, 3}, // MOD_W
325 {1, 2, 0, 0, 0, 951, 69, 3}, // MOD_WU
326 {1, 1, 0|1<<SDNPHasChain, 0, 0, 972, 3, 2}, // MOVFCSR2GR
327 {1, 1, 0, 0, 0, 997, 5, 2}, // MOVFR2GR_S_LA64
328 {0, 2, 0|1<<SDNPHasChain, 0, 0, 1027, 3, 2}, // MOVGR2FCSR
329 {1, 1, 0, 0, 0, 1052, 14, 2}, // MOVGR2FR_D
330 {1, 2, 0, 0, 0, 1077, 11, 3}, // MOVGR2FR_D_LO_HI
331 {1, 1, 0, 0, 0, 1108, 7, 2}, // MOVGR2FR_W
332 {1, 1, 0, 0, 0, 1133, 9, 2}, // MOVGR2FR_W_LA64
333 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1163, 0, 0}, // RET
334 {1, 1, 0, 0, 0, 1181, 0, 0}, // REVB_2H
335 {1, 1, 0, 0, 0, 1203, 0, 0}, // REVB_2W
336 {1, 2, 0, 0, 0, 1225, 69, 3}, // ROTR_W
337 {1, 5, 0, 0, 0, 1246, 75, 4}, // SELECT_CC
338 {1, 1, 0, 0, 0, 1270, 47, 2}, // SITOF
339 {1, 2, 0, 0, 0, 1290, 69, 3}, // SLL_W
340 {2, 1, 0, 0, 0, 1310, 0, 3}, // SPLIT_PAIR_F64
341 {1, 2, 0, 0, 0, 1339, 69, 3}, // SRA_W
342 {1, 2, 0, 0, 0, 1359, 69, 3}, // SRL_W
343 {0, 1, 0|1<<SDNPHasChain, 0, 0, 1379, 4, 1}, // SYSCALL
344 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1401, 4, 1}, // TAIL
345 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1420, 4, 1}, // TAIL_LARGE
346 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1445, 4, 1}, // TAIL_MEDIUM
347 {1, 1, 0, 0, 0, 1471, 45, 2}, // VALL_NONZERO
348 {1, 1, 0, 0, 0, 1498, 45, 2}, // VALL_ZERO
349 {1, 2, 0, 0, 0, 1522, 52, 3}, // VANDN
350 {1, 1, 0, 0, 0, 1542, 45, 2}, // VANY_NONZERO
351 {1, 1, 0, 0, 0, 1569, 45, 2}, // VANY_ZERO
352 {1, 2, 0, 0, 0, 1593, 55, 3}, // VBSLL
353 {1, 2, 0, 0, 0, 1613, 55, 3}, // VBSRL
354 {1, 2, 0, 0, 0, 1633, 52, 3}, // VHADDW
355 {1, 2, 0, 0, 0, 1654, 52, 3}, // VILVH
356 {1, 2, 0, 0, 0, 1674, 52, 3}, // VILVL
357 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1694, 62, 2}, // VLDREPL
358 {1, 1, 0, 0, 0, 1716, 45, 2}, // VMSKEQZ
359 {1, 1, 0, 0, 0, 1738, 45, 2}, // VMSKGEZ
360 {1, 1, 0, 0, 0, 1760, 45, 2}, // VMSKLTZ
361 {1, 1, 0, 0, 0, 1782, 45, 2}, // VMSKNEZ
362 {1, 2, 0, 0, 0, 1804, 52, 3}, // VPACKEV
363 {1, 2, 0, 0, 0, 1826, 52, 3}, // VPACKOD
364 {1, 2, 0, 0, 0, 1848, 52, 3}, // VPICKEV
365 {1, 2, 0, 0, 0, 1870, 52, 3}, // VPICKOD
366 {1, 3, 0, 0, 0, 1892, 79, 1}, // VPICK_SEXT_ELT
367 {1, 3, 0, 0, 0, 1921, 79, 1}, // VPICK_ZEXT_ELT
368 {1, 1, 0, 0, 0, 1950, 19, 3}, // VREPLGR2VR
369 {1, 2, 0, 0, 0, 1975, 16, 6}, // VREPLVE
370 {1, 2, 0, 0, 0, 1997, 55, 3}, // VREPLVEI
371 {1, 3, 0, 0, 0, 2020, 64, 5}, // VSHUF
372 {1, 2, 0, 0, 0, 2040, 55, 3}, // VSHUF4I
373 {1, 3, 0, 0, 0, 2062, 51, 4}, // VSHUF4I_D
374 {1, 2, 0, 0, 0, 2086, 55, 3}, // VSLLI
375 {1, 2, 0, 0, 0, 2106, 55, 3}, // VSRLI
376 {1, 3, 0, 0, 0, 2126, 51, 4}, // XVINSVE0
377 {1, 1, 0, 0, 0, 2149, 45, 2}, // XVMSKEQZ
378 {1, 1, 0, 0, 0, 2172, 45, 2}, // XVMSKGEZ
379 {1, 1, 0, 0, 0, 2195, 45, 2}, // XVMSKLTZ
380 {1, 1, 0, 0, 0, 2218, 45, 2}, // XVMSKNEZ
381 {1, 2, 0, 0, 0, 2241, 58, 4}, // XVPERM
382 {1, 2, 0, 0, 0, 2262, 55, 3}, // XVPERMI
383 {1, 1, 0, 0, 0, 2284, 53, 2}, // XVREPLVE0
384 {1, 1, 0, 0, 0, 2308, 53, 2}, // XVREPLVE0Q
385};
386
387static const SDNodeInfo LoongArchGenSDNodeInfo(
388 /*NumOpcodes=*/102, LoongArchSDNodeDescs, LoongArchSDNodeNames,
389 LoongArchVTByHwModeTable, LoongArchSDTypeConstraints);
390
391} // namespace llvm
392
393#endif // GET_SDNODE_DESC
394
395