1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: PPC.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::PPCISD {
14
15enum GenNodeType : unsigned {
16 ACC_BUILD = ISD::BUILTIN_OP_END,
17 ADDC,
18 ADDE,
19 ADDIS_DTPREL_HA,
20 ADDIS_GOT_TPREL_HA,
21 ADDIS_TLSGD_HA,
22 ADDIS_TLSLD_HA,
23 ADDI_DTPREL_L,
24 ADDI_TLSGD_L,
25 ADDI_TLSGD_L_ADDR,
26 ADDI_TLSLD_L,
27 ADDI_TLSLD_L_ADDR,
28 ADD_TLS,
29 ATOMIC_CMP_SWAP_16,
30 ATOMIC_CMP_SWAP_8,
31 BCDSHIFT,
32 BCDSHIFTROUND,
33 BCDTRUNC,
34 BCDUSHIFT,
35 BCDUTRUNC,
36 BCTRL,
37 BCTRL_LOAD_TOC,
38 BCTRL_LOAD_TOC_RM,
39 BCTRL_RM,
40 BUILD_FP128,
41 BUILD_SPE64,
42 CALL,
43 CALL_NOP,
44 CALL_NOP_RM,
45 CALL_NOTOC,
46 CALL_NOTOC_RM,
47 CALL_RM,
48 CMPB,
49 COND_BRANCH,
50 CR6SET,
51 CR6UNSET,
52 DYNALLOC,
53 DYNAREAOFFSET,
54 EH_SJLJ_LONGJMP,
55 EH_SJLJ_SETJMP,
56 EXTRACT_SPE,
57 EXTRACT_VSX_REG,
58 EXTSWSLI,
59 FADDRTZ,
60 FCFID,
61 FCFIDS,
62 FCFIDU,
63 FCFIDUS,
64 FCTIDUZ,
65 FCTIDZ,
66 FCTIWUZ,
67 FCTIWZ,
68 FNMSUB,
69 FP_EXTEND_HALF,
70 FRE,
71 FRSQRTE,
72 FSEL,
73 FSQRT,
74 FTSQRT,
75 GET_TLSLD_ADDR,
76 GET_TLS_ADDR,
77 GET_TLS_MOD_AIX,
78 GET_TPOINTER,
79 Hi,
80 INST256,
81 INST512,
82 INST512HI,
83 LBRX,
84 LD_GOT_TPREL_L,
85 LD_SPLAT,
86 LD_VSX_LH,
87 LFIWAX,
88 LFIWZX,
89 LOAD_VEC_BE,
90 LXSIZX,
91 LXVD2X,
92 LXVRZX,
93 Lo,
94 MAT_PCREL_ADDR,
95 MFFS,
96 MFVSR,
97 MTCTR,
98 MTVSRA,
99 MTVSRZ,
100 PADDI_DTPREL,
101 PAIR_BUILD,
102 PPC32_GOT,
103 PROBED_ALLOCA,
104 RET_GLUE,
105 SCALAR_TO_VECTOR_PERMUTED,
106 SETBC,
107 SETBCR,
108 SEXT_LD_SPLAT,
109 SHL,
110 SINT_VEC_TO_FP,
111 SRA,
112 SRL,
113 STAT,
114 STBRX,
115 STFIWX,
116 STORE_COND,
117 STORE_VEC_BE,
118 STRICT_FADDRTZ,
119 STRICT_FCFID,
120 STRICT_FCFIDS,
121 STRICT_FCFIDU,
122 STRICT_FCFIDUS,
123 STRICT_FCTIDUZ,
124 STRICT_FCTIDZ,
125 STRICT_FCTIWUZ,
126 STRICT_FCTIWZ,
127 STXSIX,
128 STXVD2X,
129 ST_VSR_SCAL_INT,
130 SUBC,
131 SUBE,
132 SWAP_NO_CHAIN,
133 TC_RETURN,
134 TLSGD_AIX,
135 TLSLD_AIX,
136 TLS_DYNAMIC_MAT_PCREL_ADDR,
137 TLS_LOCAL_EXEC_MAT_ADDR,
138 TOC_ENTRY,
139 UINT_VEC_TO_FP,
140 VCMP,
141 VCMP_rec,
142 VECINSERT,
143 VECSHL,
144 VEXTS,
145 VPERM,
146 VSRQ,
147 XSMAXC,
148 XSMINC,
149 XXMFACC,
150 XXPERM,
151 XXPERMDI,
152 XXSPLT,
153 XXSPLTI32DX,
154 XXSPLTI_SP_TO_DP,
155 XXSWAPD,
156 ZEXT_LD_SPLAT,
157};
158
159static constexpr unsigned GENERATED_OPCODE_END = ZEXT_LD_SPLAT + 1;
160
161} // namespace llvm::PPCISD
162
163#endif // GET_SDNODE_ENUM
164
165#ifdef GET_SDNODE_DESC
166#undef GET_SDNODE_DESC
167
168namespace llvm {
169
170
171#ifdef __GNUC__
172#pragma GCC diagnostic push
173#pragma GCC diagnostic ignored "-Woverlength-strings"
174#endif
175static constexpr char PPCSDNodeNamesStorage[] =
176 "\0"
177 "PPCISD::ACC_BUILD\0"
178 "PPCISD::ADDC\0"
179 "PPCISD::ADDE\0"
180 "PPCISD::ADDIS_DTPREL_HA\0"
181 "PPCISD::ADDIS_GOT_TPREL_HA\0"
182 "PPCISD::ADDIS_TLSGD_HA\0"
183 "PPCISD::ADDIS_TLSLD_HA\0"
184 "PPCISD::ADDI_DTPREL_L\0"
185 "PPCISD::ADDI_TLSGD_L\0"
186 "PPCISD::ADDI_TLSGD_L_ADDR\0"
187 "PPCISD::ADDI_TLSLD_L\0"
188 "PPCISD::ADDI_TLSLD_L_ADDR\0"
189 "PPCISD::ADD_TLS\0"
190 "PPCISD::ATOMIC_CMP_SWAP_16\0"
191 "PPCISD::ATOMIC_CMP_SWAP_8\0"
192 "PPCISD::BCDSHIFT\0"
193 "PPCISD::BCDSHIFTROUND\0"
194 "PPCISD::BCDTRUNC\0"
195 "PPCISD::BCDUSHIFT\0"
196 "PPCISD::BCDUTRUNC\0"
197 "PPCISD::BCTRL\0"
198 "PPCISD::BCTRL_LOAD_TOC\0"
199 "PPCISD::BCTRL_LOAD_TOC_RM\0"
200 "PPCISD::BCTRL_RM\0"
201 "PPCISD::BUILD_FP128\0"
202 "PPCISD::BUILD_SPE64\0"
203 "PPCISD::CALL\0"
204 "PPCISD::CALL_NOP\0"
205 "PPCISD::CALL_NOP_RM\0"
206 "PPCISD::CALL_NOTOC\0"
207 "PPCISD::CALL_NOTOC_RM\0"
208 "PPCISD::CALL_RM\0"
209 "PPCISD::CMPB\0"
210 "PPCISD::COND_BRANCH\0"
211 "PPCISD::CR6SET\0"
212 "PPCISD::CR6UNSET\0"
213 "PPCISD::DYNALLOC\0"
214 "PPCISD::DYNAREAOFFSET\0"
215 "PPCISD::EH_SJLJ_LONGJMP\0"
216 "PPCISD::EH_SJLJ_SETJMP\0"
217 "PPCISD::EXTRACT_SPE\0"
218 "PPCISD::EXTRACT_VSX_REG\0"
219 "PPCISD::EXTSWSLI\0"
220 "PPCISD::FADDRTZ\0"
221 "PPCISD::FCFID\0"
222 "PPCISD::FCFIDS\0"
223 "PPCISD::FCFIDU\0"
224 "PPCISD::FCFIDUS\0"
225 "PPCISD::FCTIDUZ\0"
226 "PPCISD::FCTIDZ\0"
227 "PPCISD::FCTIWUZ\0"
228 "PPCISD::FCTIWZ\0"
229 "PPCISD::FNMSUB\0"
230 "PPCISD::FP_EXTEND_HALF\0"
231 "PPCISD::FRE\0"
232 "PPCISD::FRSQRTE\0"
233 "PPCISD::FSEL\0"
234 "PPCISD::FSQRT\0"
235 "PPCISD::FTSQRT\0"
236 "PPCISD::GET_TLSLD_ADDR\0"
237 "PPCISD::GET_TLS_ADDR\0"
238 "PPCISD::GET_TLS_MOD_AIX\0"
239 "PPCISD::GET_TPOINTER\0"
240 "PPCISD::Hi\0"
241 "PPCISD::INST256\0"
242 "PPCISD::INST512\0"
243 "PPCISD::INST512HI\0"
244 "PPCISD::LBRX\0"
245 "PPCISD::LD_GOT_TPREL_L\0"
246 "PPCISD::LD_SPLAT\0"
247 "PPCISD::LD_VSX_LH\0"
248 "PPCISD::LFIWAX\0"
249 "PPCISD::LFIWZX\0"
250 "PPCISD::LOAD_VEC_BE\0"
251 "PPCISD::LXSIZX\0"
252 "PPCISD::LXVD2X\0"
253 "PPCISD::LXVRZX\0"
254 "PPCISD::Lo\0"
255 "PPCISD::MAT_PCREL_ADDR\0"
256 "PPCISD::MFFS\0"
257 "PPCISD::MFVSR\0"
258 "PPCISD::MTCTR\0"
259 "PPCISD::MTVSRA\0"
260 "PPCISD::MTVSRZ\0"
261 "PPCISD::PADDI_DTPREL\0"
262 "PPCISD::PAIR_BUILD\0"
263 "PPCISD::PPC32_GOT\0"
264 "PPCISD::PROBED_ALLOCA\0"
265 "PPCISD::RET_GLUE\0"
266 "PPCISD::SCALAR_TO_VECTOR_PERMUTED\0"
267 "PPCISD::SETBC\0"
268 "PPCISD::SETBCR\0"
269 "PPCISD::SEXT_LD_SPLAT\0"
270 "PPCISD::SHL\0"
271 "PPCISD::SINT_VEC_TO_FP\0"
272 "PPCISD::SRA\0"
273 "PPCISD::SRL\0"
274 "PPCISD::STAT\0"
275 "PPCISD::STBRX\0"
276 "PPCISD::STFIWX\0"
277 "PPCISD::STORE_COND\0"
278 "PPCISD::STORE_VEC_BE\0"
279 "PPCISD::STRICT_FADDRTZ\0"
280 "PPCISD::STRICT_FCFID\0"
281 "PPCISD::STRICT_FCFIDS\0"
282 "PPCISD::STRICT_FCFIDU\0"
283 "PPCISD::STRICT_FCFIDUS\0"
284 "PPCISD::STRICT_FCTIDUZ\0"
285 "PPCISD::STRICT_FCTIDZ\0"
286 "PPCISD::STRICT_FCTIWUZ\0"
287 "PPCISD::STRICT_FCTIWZ\0"
288 "PPCISD::STXSIX\0"
289 "PPCISD::STXVD2X\0"
290 "PPCISD::ST_VSR_SCAL_INT\0"
291 "PPCISD::SUBC\0"
292 "PPCISD::SUBE\0"
293 "PPCISD::SWAP_NO_CHAIN\0"
294 "PPCISD::TC_RETURN\0"
295 "PPCISD::TLSGD_AIX\0"
296 "PPCISD::TLSLD_AIX\0"
297 "PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR\0"
298 "PPCISD::TLS_LOCAL_EXEC_MAT_ADDR\0"
299 "PPCISD::TOC_ENTRY\0"
300 "PPCISD::UINT_VEC_TO_FP\0"
301 "PPCISD::VCMP\0"
302 "PPCISD::VCMP_rec\0"
303 "PPCISD::VECINSERT\0"
304 "PPCISD::VECSHL\0"
305 "PPCISD::VEXTS\0"
306 "PPCISD::VPERM\0"
307 "PPCISD::VSRQ\0"
308 "PPCISD::XSMAXC\0"
309 "PPCISD::XSMINC\0"
310 "PPCISD::XXMFACC\0"
311 "PPCISD::XXPERM\0"
312 "PPCISD::XXPERMDI\0"
313 "PPCISD::XXSPLT\0"
314 "PPCISD::XXSPLTI32DX\0"
315 "PPCISD::XXSPLTI_SP_TO_DP\0"
316 "PPCISD::XXSWAPD\0"
317 "PPCISD::ZEXT_LD_SPLAT\0"
318 ;
319#ifdef __GNUC__
320#pragma GCC diagnostic pop
321#endif
322
323static constexpr llvm::StringTable
324PPCSDNodeNames = PPCSDNodeNamesStorage;
325
326static const VTByHwModePair PPCVTByHwModeTable[] = {
327 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
328};
329
330static const SDTypeConstraint PPCSDTypeConstraints[] = {
331 /* 0 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::f64}, {SDTCisVT, 0, 0, 0, MVT::i32},
332 /* 3 */ {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisVT, 0, 0, 0, MVT::i32},
333 /* 5 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f64},
334 /* 8 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::f64}, {SDTCisVT, 0, 0, 0, MVT::f64},
335 /* 11 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::f64},
336 /* 14 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::v256i1}, {SDTCisVT, 0, 0, 0, MVT::v256i1},
337 /* 17 */ {SDTCisVT, 2, 0, 0, MVT::v4i32}, {SDTCisVT, 1, 0, 0, MVT::v4i32}, {SDTCisVT, 0, 0, 0, MVT::v256i1},
338 /* 20 */ {SDTCisVT, 2, 0, 0, MVT::v256i1}, {SDTCisVT, 1, 0, 0, MVT::v256i1}, {SDTCisVT, 0, 0, 0, MVT::v512i1},
339 /* 23 */ {SDTCisVT, 1, 0, 0, MVT::v512i1}, {SDTCisVT, 0, 0, 0, MVT::v512i1},
340 /* 25 */ {SDTCisVT, 4, 0, 0, MVT::v4i32}, {SDTCisVT, 3, 0, 0, MVT::v4i32}, {SDTCisVT, 2, 0, 0, MVT::v4i32}, {SDTCisVT, 1, 0, 0, MVT::v4i32}, {SDTCisVT, 0, 0, 0, MVT::v512i1},
341 /* 30 */ {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 2, 0, 0, MVT::v16i8}, {SDTCisVT, 1, 0, 0, MVT::v4i32}, {SDTCisVT, 0, 0, 0, MVT::v16i8},
342 /* 34 */ {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v2i64},
343 /* 38 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v1i128},
344 /* 41 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v4f32},
345 /* 43 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::v4f32}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
346 /* 46 */ {SDTCisVT, 3, 0, 0, MVT::v4i32}, {SDTCisVT, 2, 0, 0, MVT::v2f64}, {SDTCisVT, 1, 0, 0, MVT::v2f64}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
347 /* 50 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
348 /* 52 */ {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
349 /* 54 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
350 /* 56 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
351 /* 59 */ {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
352 /* 62 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
353 /* 65 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisOpSmallerThanOp, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
354 /* 69 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
355 /* 72 */ {SDTCisSameNumEltsAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisOpSmallerThanOp, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
356 /* 76 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameSizeAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
357 /* 79 */ {SDTCisSameAs, 0, 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},
358 /* 82 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
359 /* 84 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
360 /* 87 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
361 /* 90 */ {SDTCisPtrTy, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
362 /* 94 */ {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
363 /* 98 */ {SDTCisSameNumEltsAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
364 /* 102 */ {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
365 /* 104 */ {SDTCisInt, 0, 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},
366 /* 107 */ {SDTCisFP, 0, 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},
367 /* 110 */ {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
368 /* 114 */ {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
369 /* 118 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
370 /* 121 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
371 /* 125 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
372 /* 129 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
373 /* 134 */ {SDTCisVT, 1, 0, 0, MVT::f64}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
374 /* 138 */ {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 3, 0, 0, MVT::v16i8},
375};
376
377static const SDNodeDesc PPCSDNodeDescs[] = {
378 {1, 4, 0, 0, 0, 1, 25, 5}, // ACC_BUILD
379 {2, 2, 0, 0, 0, 19, 121, 4}, // ADDC
380 {2, 3, 0, 0, 0, 32, 129, 5}, // ADDE
381 {1, 2, 0, 0, 0, 45, 104, 3}, // ADDIS_DTPREL_HA
382 {1, 2, 0, 0, 0, 69, 104, 3}, // ADDIS_GOT_TPREL_HA
383 {1, 2, 0, 0, 0, 96, 104, 3}, // ADDIS_TLSGD_HA
384 {1, 2, 0, 0, 0, 119, 104, 3}, // ADDIS_TLSLD_HA
385 {1, 2, 0, 0, 0, 142, 104, 3}, // ADDI_DTPREL_L
386 {1, 2, 0, 0, 0, 164, 104, 3}, // ADDI_TLSGD_L
387 {1, 3, 0, 0, 0, 185, 110, 4}, // ADDI_TLSGD_L_ADDR
388 {1, 2, 0, 0, 0, 211, 104, 3}, // ADDI_TLSLD_L
389 {1, 3, 0, 0, 0, 232, 110, 4}, // ADDI_TLSLD_L_ADDR
390 {1, 2, 0, 0, 0, 258, 104, 3}, // ADD_TLS
391 {1, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 274, 125, 4}, // ATOMIC_CMP_SWAP_16
392 {1, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 301, 125, 4}, // ATOMIC_CMP_SWAP_8
393 {1, 3, 0, 0, 0, 327, 30, 4}, // BCDSHIFT
394 {1, 3, 0, 0, 0, 344, 30, 4}, // BCDSHIFTROUND
395 {1, 3, 0, 0, 0, 366, 30, 4}, // BCDTRUNC
396 {1, 2, 0, 0, 0, 383, 31, 3}, // BCDUSHIFT
397 {1, 2, 0, 0, 0, 401, 31, 3}, // BCDUTRUNC
398 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 419, 0, 0}, // BCTRL
399 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 433, 0, 0}, // BCTRL_LOAD_TOC
400 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 456, 0, 0}, // BCTRL_LOAD_TOC_RM
401 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 482, 0, 0}, // BCTRL_RM
402 {1, 2, 0, 0, 0, 499, 76, 3}, // BUILD_FP128
403 {1, 2, 0, 0, 0, 519, 5, 3}, // BUILD_SPE64
404 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 539, 61, 1}, // CALL
405 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 552, 61, 1}, // CALL_NOP
406 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 569, 61, 1}, // CALL_NOP_RM
407 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 589, 61, 1}, // CALL_NOTOC
408 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 608, 61, 1}, // CALL_NOTOC_RM
409 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 630, 61, 1}, // CALL_RM
410 {1, 2, 0, 0, 0, 646, 104, 3}, // CMPB
411 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue, 0, 0, 659, 3, 2}, // COND_BRANCH
412 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 679, 0, 0}, // CR6SET
413 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 694, 0, 0}, // CR6UNSET
414 {1, 2, 0|1<<SDNPHasChain, 0, 0, 711, 0, 0}, // DYNALLOC
415 {1, 1, 0|1<<SDNPHasChain, 0, 0, 728, 0, 0}, // DYNAREAOFFSET
416 {0, 1, 0|1<<SDNPHasChain, 0, 0, 750, 55, 1}, // EH_SJLJ_LONGJMP
417 {1, 1, 0|1<<SDNPHasChain, 0, 0, 774, 60, 2}, // EH_SJLJ_SETJMP
418 {1, 2, 0, 0, 0, 797, 0, 3}, // EXTRACT_SPE
419 {1, 2, 0, 0, 0, 817, 0, 0}, // EXTRACT_VSX_REG
420 {1, 2, 0, 0, 0, 841, 65, 4}, // EXTSWSLI
421 {1, 2, 0, 0, 0, 858, 107, 3}, // FADDRTZ
422 {1, 1, 0, 0, 0, 874, 102, 2}, // FCFID
423 {1, 1, 0, 0, 0, 888, 72, 4}, // FCFIDS
424 {1, 1, 0, 0, 0, 903, 102, 2}, // FCFIDU
425 {1, 1, 0, 0, 0, 918, 72, 4}, // FCFIDUS
426 {1, 1, 0, 0, 0, 934, 102, 2}, // FCTIDUZ
427 {1, 1, 0, 0, 0, 950, 102, 2}, // FCTIDZ
428 {1, 1, 0, 0, 0, 965, 102, 2}, // FCTIWUZ
429 {1, 1, 0, 0, 0, 981, 102, 2}, // FCTIWZ
430 {1, 3, 0, 0, 0, 996, 114, 4}, // FNMSUB
431 {1, 2, 0, 0, 0, 1011, 43, 3}, // FP_EXTEND_HALF
432 {1, 1, 0, 0, 0, 1034, 102, 2}, // FRE
433 {1, 1, 0, 0, 0, 1046, 102, 2}, // FRSQRTE
434 {1, 3, 0, 0, 0, 1062, 134, 4}, // FSEL
435 {1, 1, 0, 0, 0, 1075, 102, 2}, // FSQRT
436 {1, 1, 0, 0, 0, 1089, 2, 1}, // FTSQRT
437 {1, 2, 0, 0, 0, 1104, 104, 3}, // GET_TLSLD_ADDR
438 {1, 2, 0, 0, 0, 1127, 104, 3}, // GET_TLS_ADDR
439 {1, 1, 0, 0, 0, 1148, 100, 2}, // GET_TLS_MOD_AIX
440 {1, 0, 0, 0, 0, 1172, 61, 1}, // GET_TPOINTER
441 {1, 2, 0, 0, 0, 1193, 104, 3}, // Hi
442 {1, 2, 0, 0, 0, 1204, 14, 3}, // INST256
443 {1, 2, 0, 0, 0, 1220, 20, 3}, // INST512
444 {1, 2, 0, 0, 0, 1236, 20, 3}, // INST512HI
445 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1254, 59, 3}, // LBRX
446 {1, 2, 0, 0, 0, 1267, 104, 3}, // LD_GOT_TPREL_L
447 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1290, 82, 2}, // LD_SPLAT
448 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1307, 41, 2}, // LD_VSX_LH
449 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1325, 12, 2}, // LFIWAX
450 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1340, 12, 2}, // LFIWZX
451 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1355, 82, 2}, // LOAD_VEC_BE
452 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1375, 11, 3}, // LXSIZX
453 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1390, 50, 2}, // LXVD2X
454 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1405, 38, 3}, // LXVRZX
455 {1, 2, 0, 0, 0, 1420, 104, 3}, // Lo
456 {1, 1, 0, 0, 0, 1431, 100, 2}, // MAT_PCREL_ADDR
457 {1, 0, 0|1<<SDNPHasChain, 0, 0, 1454, 7, 1}, // MFFS
458 {1, 1, 0, 0, 0, 1467, 0, 0}, // MFVSR
459 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 1481, 61, 1}, // MTCTR
460 {1, 1, 0, 0, 0, 1495, 0, 0}, // MTVSRA
461 {1, 1, 0, 0, 0, 1510, 0, 0}, // MTVSRZ
462 {1, 2, 0, 0, 0, 1525, 104, 3}, // PADDI_DTPREL
463 {1, 2, 0, 0, 0, 1546, 17, 3}, // PAIR_BUILD
464 {1, 0, 0, 0, 0, 1565, 61, 1}, // PPC32_GOT
465 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1583, 0, 0}, // PROBED_ALLOCA
466 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1605, 0, 0}, // RET_GLUE
467 {1, 1, 0, 0, 0, 1622, 0, 0}, // SCALAR_TO_VECTOR_PERMUTED
468 {1, 1, 0, 0, 0, 1656, 67, 2}, // SETBC
469 {1, 1, 0, 0, 0, 1670, 67, 2}, // SETBCR
470 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1685, 82, 2}, // SEXT_LD_SPLAT
471 {1, 2, 0, 0, 0, 1707, 98, 4}, // SHL
472 {1, 2, 0, 0, 0, 1719, 84, 3}, // SINT_VEC_TO_FP
473 {1, 2, 0, 0, 0, 1742, 98, 4}, // SRA
474 {1, 2, 0, 0, 0, 1754, 98, 4}, // SRL
475 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1766, 62, 3}, // STAT
476 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1779, 59, 3}, // STBRX
477 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1793, 12, 2}, // STFIWX
478 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPMemOperand, 0, 0, 1808, 56, 3}, // STORE_COND
479 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1827, 82, 2}, // STORE_VEC_BE
480 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1848, 107, 3}, // STRICT_FADDRTZ
481 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1871, 102, 2}, // STRICT_FCFID
482 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1892, 72, 4}, // STRICT_FCFIDS
483 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1914, 102, 2}, // STRICT_FCFIDU
484 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1936, 72, 4}, // STRICT_FCFIDUS
485 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1959, 102, 2}, // STRICT_FCTIDUZ
486 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1982, 102, 2}, // STRICT_FCTIDZ
487 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 2004, 102, 2}, // STRICT_FCTIWUZ
488 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 2027, 102, 2}, // STRICT_FCTIWZ
489 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2049, 11, 3}, // STXSIX
490 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2064, 50, 2}, // STXVD2X
491 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2080, 69, 3}, // ST_VSR_SCAL_INT
492 {2, 2, 0, 0, 0, 2104, 121, 4}, // SUBC
493 {2, 3, 0, 0, 0, 2117, 129, 5}, // SUBE
494 {1, 1, 0, 0, 0, 2130, 101, 1}, // SWAP_NO_CHAIN
495 {0, 2, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 2152, 54, 2}, // TC_RETURN
496 {1, 2, 0, 0, 0, 2170, 104, 3}, // TLSGD_AIX
497 {1, 1, 0, 0, 0, 2188, 100, 2}, // TLSLD_AIX
498 {1, 1, 0, 0, 0, 2206, 100, 2}, // TLS_DYNAMIC_MAT_PCREL_ADDR
499 {1, 1, 0, 0, 0, 2241, 100, 2}, // TLS_LOCAL_EXEC_MAT_ADDR
500 {1, 2, 0|1<<SDNPMemOperand, 0, 0, 2273, 104, 3}, // TOC_ENTRY
501 {1, 2, 0, 0, 0, 2291, 84, 3}, // UINT_VEC_TO_FP
502 {1, 3, 0, 0, 0, 2314, 118, 3}, // VCMP
503 {1, 3, 0|1<<SDNPOutGlue, 0, 0, 2327, 118, 3}, // VCMP_rec
504 {1, 3, 0, 0, 0, 2344, 94, 4}, // VECINSERT
505 {1, 3, 0, 0, 0, 2362, 90, 4}, // VECSHL
506 {1, 2, 0, 0, 0, 2377, 8, 3}, // VEXTS
507 {1, 3, 0, 0, 0, 2391, 138, 3}, // VPERM
508 {1, 2, 0, 0, 0, 2405, 79, 3}, // VSRQ
509 {1, 2, 0, 0, 0, 2418, 107, 3}, // XSMAXC
510 {1, 2, 0, 0, 0, 2433, 107, 3}, // XSMINC
511 {1, 1, 0, 0, 0, 2448, 23, 2}, // XXMFACC
512 {1, 3, 0, 0, 0, 2464, 46, 4}, // XXPERM
513 {1, 3, 0, 0, 0, 2479, 94, 4}, // XXPERMDI
514 {1, 2, 0, 0, 0, 2496, 87, 3}, // XXSPLT
515 {1, 3, 0, 0, 0, 2511, 34, 4}, // XXSPLTI32DX
516 {1, 1, 0, 0, 0, 2531, 52, 2}, // XXSPLTI_SP_TO_DP
517 {1, 1, 0|1<<SDNPHasChain, 0, 0, 2556, 101, 1}, // XXSWAPD
518 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2572, 82, 2}, // ZEXT_LD_SPLAT
519};
520
521static const SDNodeInfo PPCGenSDNodeInfo(
522 /*NumOpcodes=*/141, PPCSDNodeDescs, PPCSDNodeNames,
523 PPCVTByHwModeTable, PPCSDTypeConstraints);
524
525} // namespace llvm
526
527#endif // GET_SDNODE_DESC
528
529