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 BL_LOAD_TOC,
41 BL_LOAD_TOC_RM,
42 BUILD_FP128,
43 BUILD_SPE64,
44 CALL,
45 CALL_NOP,
46 CALL_NOP_RM,
47 CALL_NOTOC,
48 CALL_NOTOC_RM,
49 CALL_RM,
50 CMPB,
51 COND_BRANCH,
52 CR6SET,
53 CR6UNSET,
54 DYNALLOC,
55 DYNAREAOFFSET,
56 EH_SJLJ_LONGJMP,
57 EH_SJLJ_SETJMP,
58 EXTRACT_SPE,
59 EXTRACT_VSX_REG,
60 EXTSWSLI,
61 FADDRTZ,
62 FCFID,
63 FCFIDS,
64 FCFIDU,
65 FCFIDUS,
66 FCTIDUZ,
67 FCTIDZ,
68 FCTIWUZ,
69 FCTIWZ,
70 FNMSUB,
71 FP_EXTEND_HALF,
72 FRE,
73 FRSQRTE,
74 FSEL,
75 FSQRT,
76 FTSQRT,
77 GET_TLSLD_ADDR,
78 GET_TLS_ADDR,
79 GET_TLS_MOD_AIX,
80 GET_TPOINTER,
81 Hi,
82 INST256,
83 INST512,
84 INST512HI,
85 LBRX,
86 LD_GOT_TPREL_L,
87 LD_SPLAT,
88 LD_VSX_LH,
89 LFIWAX,
90 LFIWZX,
91 LOAD_VEC_BE,
92 LXSIZX,
93 LXVD2X,
94 LXVRZX,
95 Lo,
96 MAT_PCREL_ADDR,
97 MFFS,
98 MFVSR,
99 MTCTR,
100 MTVSRA,
101 MTVSRZ,
102 PADDI_DTPREL,
103 PAIR_BUILD,
104 PPC32_GOT,
105 PROBED_ALLOCA,
106 RET_GLUE,
107 SCALAR_TO_VECTOR_PERMUTED,
108 SETBC,
109 SETBCR,
110 SEXT_LD_SPLAT,
111 SHL,
112 SINT_VEC_TO_FP,
113 SRA,
114 SRL,
115 STBRX,
116 STFIWX,
117 STORE_COND,
118 STORE_VEC_BE,
119 STRICT_FADDRTZ,
120 STRICT_FCFID,
121 STRICT_FCFIDS,
122 STRICT_FCFIDU,
123 STRICT_FCFIDUS,
124 STRICT_FCTIDUZ,
125 STRICT_FCTIDZ,
126 STRICT_FCTIWUZ,
127 STRICT_FCTIWZ,
128 STXSIX,
129 STXVD2X,
130 ST_VSR_SCAL_INT,
131 SUBC,
132 SUBE,
133 SWAP_NO_CHAIN,
134 TC_RETURN,
135 TLSGD_AIX,
136 TLSLD_AIX,
137 TLS_DYNAMIC_MAT_PCREL_ADDR,
138 TLS_LOCAL_EXEC_MAT_ADDR,
139 TOC_ENTRY,
140 UINT_VEC_TO_FP,
141 VCMP,
142 VCMP_rec,
143 VECINSERT,
144 VECSHL,
145 VEXTS,
146 VPERM,
147 VSRQ,
148 XSMAXC,
149 XSMINC,
150 XVCVSXWSP,
151 XXMFACC,
152 XXPERM,
153 XXPERMDI,
154 XXSPLT,
155 XXSPLTI32DX,
156 XXSPLTI_SP_TO_DP,
157 XXSWAPD,
158 ZEXT_LD_SPLAT,
159};
160
161static constexpr unsigned GENERATED_OPCODE_END = ZEXT_LD_SPLAT + 1;
162
163} // namespace llvm::PPCISD
164
165#endif // GET_SDNODE_ENUM
166
167#ifdef GET_SDNODE_DESC
168#undef GET_SDNODE_DESC
169
170namespace llvm {
171
172
173#ifdef __GNUC__
174#pragma GCC diagnostic push
175#pragma GCC diagnostic ignored "-Woverlength-strings"
176#endif
177static constexpr char PPCSDNodeNamesStorage[] =
178 "\0"
179 "PPCISD::ACC_BUILD\0"
180 "PPCISD::ADDC\0"
181 "PPCISD::ADDE\0"
182 "PPCISD::ADDIS_DTPREL_HA\0"
183 "PPCISD::ADDIS_GOT_TPREL_HA\0"
184 "PPCISD::ADDIS_TLSGD_HA\0"
185 "PPCISD::ADDIS_TLSLD_HA\0"
186 "PPCISD::ADDI_DTPREL_L\0"
187 "PPCISD::ADDI_TLSGD_L\0"
188 "PPCISD::ADDI_TLSGD_L_ADDR\0"
189 "PPCISD::ADDI_TLSLD_L\0"
190 "PPCISD::ADDI_TLSLD_L_ADDR\0"
191 "PPCISD::ADD_TLS\0"
192 "PPCISD::ATOMIC_CMP_SWAP_16\0"
193 "PPCISD::ATOMIC_CMP_SWAP_8\0"
194 "PPCISD::BCDSHIFT\0"
195 "PPCISD::BCDSHIFTROUND\0"
196 "PPCISD::BCDTRUNC\0"
197 "PPCISD::BCDUSHIFT\0"
198 "PPCISD::BCDUTRUNC\0"
199 "PPCISD::BCTRL\0"
200 "PPCISD::BCTRL_LOAD_TOC\0"
201 "PPCISD::BCTRL_LOAD_TOC_RM\0"
202 "PPCISD::BCTRL_RM\0"
203 "PPCISD::BL_LOAD_TOC\0"
204 "PPCISD::BL_LOAD_TOC_RM\0"
205 "PPCISD::BUILD_FP128\0"
206 "PPCISD::BUILD_SPE64\0"
207 "PPCISD::CALL\0"
208 "PPCISD::CALL_NOP\0"
209 "PPCISD::CALL_NOP_RM\0"
210 "PPCISD::CALL_NOTOC\0"
211 "PPCISD::CALL_NOTOC_RM\0"
212 "PPCISD::CALL_RM\0"
213 "PPCISD::CMPB\0"
214 "PPCISD::COND_BRANCH\0"
215 "PPCISD::CR6SET\0"
216 "PPCISD::CR6UNSET\0"
217 "PPCISD::DYNALLOC\0"
218 "PPCISD::DYNAREAOFFSET\0"
219 "PPCISD::EH_SJLJ_LONGJMP\0"
220 "PPCISD::EH_SJLJ_SETJMP\0"
221 "PPCISD::EXTRACT_SPE\0"
222 "PPCISD::EXTRACT_VSX_REG\0"
223 "PPCISD::EXTSWSLI\0"
224 "PPCISD::FADDRTZ\0"
225 "PPCISD::FCFID\0"
226 "PPCISD::FCFIDS\0"
227 "PPCISD::FCFIDU\0"
228 "PPCISD::FCFIDUS\0"
229 "PPCISD::FCTIDUZ\0"
230 "PPCISD::FCTIDZ\0"
231 "PPCISD::FCTIWUZ\0"
232 "PPCISD::FCTIWZ\0"
233 "PPCISD::FNMSUB\0"
234 "PPCISD::FP_EXTEND_HALF\0"
235 "PPCISD::FRE\0"
236 "PPCISD::FRSQRTE\0"
237 "PPCISD::FSEL\0"
238 "PPCISD::FSQRT\0"
239 "PPCISD::FTSQRT\0"
240 "PPCISD::GET_TLSLD_ADDR\0"
241 "PPCISD::GET_TLS_ADDR\0"
242 "PPCISD::GET_TLS_MOD_AIX\0"
243 "PPCISD::GET_TPOINTER\0"
244 "PPCISD::Hi\0"
245 "PPCISD::INST256\0"
246 "PPCISD::INST512\0"
247 "PPCISD::INST512HI\0"
248 "PPCISD::LBRX\0"
249 "PPCISD::LD_GOT_TPREL_L\0"
250 "PPCISD::LD_SPLAT\0"
251 "PPCISD::LD_VSX_LH\0"
252 "PPCISD::LFIWAX\0"
253 "PPCISD::LFIWZX\0"
254 "PPCISD::LOAD_VEC_BE\0"
255 "PPCISD::LXSIZX\0"
256 "PPCISD::LXVD2X\0"
257 "PPCISD::LXVRZX\0"
258 "PPCISD::Lo\0"
259 "PPCISD::MAT_PCREL_ADDR\0"
260 "PPCISD::MFFS\0"
261 "PPCISD::MFVSR\0"
262 "PPCISD::MTCTR\0"
263 "PPCISD::MTVSRA\0"
264 "PPCISD::MTVSRZ\0"
265 "PPCISD::PADDI_DTPREL\0"
266 "PPCISD::PAIR_BUILD\0"
267 "PPCISD::PPC32_GOT\0"
268 "PPCISD::PROBED_ALLOCA\0"
269 "PPCISD::RET_GLUE\0"
270 "PPCISD::SCALAR_TO_VECTOR_PERMUTED\0"
271 "PPCISD::SETBC\0"
272 "PPCISD::SETBCR\0"
273 "PPCISD::SEXT_LD_SPLAT\0"
274 "PPCISD::SHL\0"
275 "PPCISD::SINT_VEC_TO_FP\0"
276 "PPCISD::SRA\0"
277 "PPCISD::SRL\0"
278 "PPCISD::STBRX\0"
279 "PPCISD::STFIWX\0"
280 "PPCISD::STORE_COND\0"
281 "PPCISD::STORE_VEC_BE\0"
282 "PPCISD::STRICT_FADDRTZ\0"
283 "PPCISD::STRICT_FCFID\0"
284 "PPCISD::STRICT_FCFIDS\0"
285 "PPCISD::STRICT_FCFIDU\0"
286 "PPCISD::STRICT_FCFIDUS\0"
287 "PPCISD::STRICT_FCTIDUZ\0"
288 "PPCISD::STRICT_FCTIDZ\0"
289 "PPCISD::STRICT_FCTIWUZ\0"
290 "PPCISD::STRICT_FCTIWZ\0"
291 "PPCISD::STXSIX\0"
292 "PPCISD::STXVD2X\0"
293 "PPCISD::ST_VSR_SCAL_INT\0"
294 "PPCISD::SUBC\0"
295 "PPCISD::SUBE\0"
296 "PPCISD::SWAP_NO_CHAIN\0"
297 "PPCISD::TC_RETURN\0"
298 "PPCISD::TLSGD_AIX\0"
299 "PPCISD::TLSLD_AIX\0"
300 "PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR\0"
301 "PPCISD::TLS_LOCAL_EXEC_MAT_ADDR\0"
302 "PPCISD::TOC_ENTRY\0"
303 "PPCISD::UINT_VEC_TO_FP\0"
304 "PPCISD::VCMP\0"
305 "PPCISD::VCMP_rec\0"
306 "PPCISD::VECINSERT\0"
307 "PPCISD::VECSHL\0"
308 "PPCISD::VEXTS\0"
309 "PPCISD::VPERM\0"
310 "PPCISD::VSRQ\0"
311 "PPCISD::XSMAXC\0"
312 "PPCISD::XSMINC\0"
313 "PPCISD::XVCVSXWSP\0"
314 "PPCISD::XXMFACC\0"
315 "PPCISD::XXPERM\0"
316 "PPCISD::XXPERMDI\0"
317 "PPCISD::XXSPLT\0"
318 "PPCISD::XXSPLTI32DX\0"
319 "PPCISD::XXSPLTI_SP_TO_DP\0"
320 "PPCISD::XXSWAPD\0"
321 "PPCISD::ZEXT_LD_SPLAT\0"
322 ;
323#ifdef __GNUC__
324#pragma GCC diagnostic pop
325#endif
326
327static constexpr llvm::StringTable
328PPCSDNodeNames = PPCSDNodeNamesStorage;
329
330static const VTByHwModePair PPCVTByHwModeTable[] = {
331 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
332};
333
334static const SDTypeConstraint PPCSDTypeConstraints[] = {
335 /* 0 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::f64}, {SDTCisVT, 0, 0, 0, MVT::i32},
336 /* 3 */ {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisVT, 0, 0, 0, MVT::i32},
337 /* 5 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::f64},
338 /* 8 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::f64}, {SDTCisVT, 0, 0, 0, MVT::f64},
339 /* 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},
340 /* 14 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::v256i1}, {SDTCisVT, 0, 0, 0, MVT::v256i1},
341 /* 17 */ {SDTCisVT, 2, 0, 0, MVT::v4i32}, {SDTCisVT, 1, 0, 0, MVT::v4i32}, {SDTCisVT, 0, 0, 0, MVT::v256i1},
342 /* 20 */ {SDTCisVT, 2, 0, 0, MVT::v256i1}, {SDTCisVT, 1, 0, 0, MVT::v256i1}, {SDTCisVT, 0, 0, 0, MVT::v512i1},
343 /* 23 */ {SDTCisVT, 1, 0, 0, MVT::v512i1}, {SDTCisVT, 0, 0, 0, MVT::v512i1},
344 /* 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},
345 /* 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},
346 /* 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},
347 /* 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},
348 /* 41 */ {SDTCisVT, 1, 0, 0, MVT::v4i32}, {SDTCisVT, 0, 0, 0, MVT::v4f32},
349 /* 43 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v4f32},
350 /* 45 */ {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::v4f32}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
351 /* 48 */ {SDTCisVT, 3, 0, 0, MVT::v4i32}, {SDTCisVT, 2, 0, 0, MVT::v2f64}, {SDTCisVT, 1, 0, 0, MVT::v2f64}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
352 /* 52 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
353 /* 54 */ {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::v2f64},
354 /* 56 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
355 /* 58 */ {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},
356 /* 61 */ {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
357 /* 64 */ {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},
358 /* 68 */ {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},
359 /* 71 */ {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},
360 /* 75 */ {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},
361 /* 78 */ {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},
362 /* 81 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
363 /* 83 */ {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},
364 /* 86 */ {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},
365 /* 89 */ {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},
366 /* 93 */ {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},
367 /* 97 */ {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},
368 /* 101 */ {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
369 /* 103 */ {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},
370 /* 106 */ {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},
371 /* 109 */ {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},
372 /* 113 */ {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},
373 /* 117 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
374 /* 120 */ {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},
375 /* 124 */ {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},
376 /* 128 */ {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},
377 /* 133 */ {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},
378 /* 137 */ {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 3, 0, 0, MVT::v16i8},
379};
380
381static const SDNodeDesc PPCSDNodeDescs[] = {
382 {1, 4, 0, 0, 0, 1, 25, 5}, // ACC_BUILD
383 {2, 2, 0, 0, 0, 19, 120, 4}, // ADDC
384 {2, 3, 0, 0, 0, 32, 128, 5}, // ADDE
385 {1, 2, 0, 0, 0, 45, 103, 3}, // ADDIS_DTPREL_HA
386 {1, 2, 0, 0, 0, 69, 103, 3}, // ADDIS_GOT_TPREL_HA
387 {1, 2, 0, 0, 0, 96, 103, 3}, // ADDIS_TLSGD_HA
388 {1, 2, 0, 0, 0, 119, 103, 3}, // ADDIS_TLSLD_HA
389 {1, 2, 0, 0, 0, 142, 103, 3}, // ADDI_DTPREL_L
390 {1, 2, 0, 0, 0, 164, 103, 3}, // ADDI_TLSGD_L
391 {1, 3, 0, 0, 0, 185, 109, 4}, // ADDI_TLSGD_L_ADDR
392 {1, 2, 0, 0, 0, 211, 103, 3}, // ADDI_TLSLD_L
393 {1, 3, 0, 0, 0, 232, 109, 4}, // ADDI_TLSLD_L_ADDR
394 {1, 2, 0, 0, 0, 258, 103, 3}, // ADD_TLS
395 {1, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 274, 124, 4}, // ATOMIC_CMP_SWAP_16
396 {1, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 301, 124, 4}, // ATOMIC_CMP_SWAP_8
397 {1, 3, 0, 0, 0, 327, 30, 4}, // BCDSHIFT
398 {1, 3, 0, 0, 0, 344, 30, 4}, // BCDSHIFTROUND
399 {1, 3, 0, 0, 0, 366, 30, 4}, // BCDTRUNC
400 {1, 2, 0, 0, 0, 383, 31, 3}, // BCDUSHIFT
401 {1, 2, 0, 0, 0, 401, 31, 3}, // BCDUTRUNC
402 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 419, 0, 0}, // BCTRL
403 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 433, 0, 0}, // BCTRL_LOAD_TOC
404 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 456, 0, 0}, // BCTRL_LOAD_TOC_RM
405 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 482, 0, 0}, // BCTRL_RM
406 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 499, 0, 0}, // BL_LOAD_TOC
407 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 519, 0, 0}, // BL_LOAD_TOC_RM
408 {1, 2, 0, 0, 0, 542, 75, 3}, // BUILD_FP128
409 {1, 2, 0, 0, 0, 562, 5, 3}, // BUILD_SPE64
410 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 582, 63, 1}, // CALL
411 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 595, 63, 1}, // CALL_NOP
412 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 612, 63, 1}, // CALL_NOP_RM
413 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 632, 63, 1}, // CALL_NOTOC
414 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 651, 63, 1}, // CALL_NOTOC_RM
415 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 673, 63, 1}, // CALL_RM
416 {1, 2, 0, 0, 0, 689, 103, 3}, // CMPB
417 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue, 0, 0, 702, 3, 2}, // COND_BRANCH
418 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 722, 0, 0}, // CR6SET
419 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 737, 0, 0}, // CR6UNSET
420 {1, 2, 0|1<<SDNPHasChain, 0, 0, 754, 0, 0}, // DYNALLOC
421 {1, 1, 0|1<<SDNPHasChain, 0, 0, 771, 0, 0}, // DYNAREAOFFSET
422 {0, 1, 0|1<<SDNPHasChain, 0, 0, 793, 57, 1}, // EH_SJLJ_LONGJMP
423 {1, 1, 0|1<<SDNPHasChain, 0, 0, 817, 62, 2}, // EH_SJLJ_SETJMP
424 {1, 2, 0, 0, 0, 840, 0, 3}, // EXTRACT_SPE
425 {1, 2, 0, 0, 0, 860, 0, 0}, // EXTRACT_VSX_REG
426 {1, 2, 0, 0, 0, 884, 64, 4}, // EXTSWSLI
427 {1, 2, 0, 0, 0, 901, 106, 3}, // FADDRTZ
428 {1, 1, 0, 0, 0, 917, 101, 2}, // FCFID
429 {1, 1, 0, 0, 0, 931, 71, 4}, // FCFIDS
430 {1, 1, 0, 0, 0, 946, 101, 2}, // FCFIDU
431 {1, 1, 0, 0, 0, 961, 71, 4}, // FCFIDUS
432 {1, 1, 0, 0, 0, 977, 101, 2}, // FCTIDUZ
433 {1, 1, 0, 0, 0, 993, 101, 2}, // FCTIDZ
434 {1, 1, 0, 0, 0, 1008, 101, 2}, // FCTIWUZ
435 {1, 1, 0, 0, 0, 1024, 101, 2}, // FCTIWZ
436 {1, 3, 0, 0, 0, 1039, 113, 4}, // FNMSUB
437 {1, 2, 0, 0, 0, 1054, 45, 3}, // FP_EXTEND_HALF
438 {1, 1, 0, 0, 0, 1077, 101, 2}, // FRE
439 {1, 1, 0, 0, 0, 1089, 101, 2}, // FRSQRTE
440 {1, 3, 0, 0, 0, 1105, 133, 4}, // FSEL
441 {1, 1, 0, 0, 0, 1118, 101, 2}, // FSQRT
442 {1, 1, 0, 0, 0, 1132, 2, 1}, // FTSQRT
443 {1, 2, 0, 0, 0, 1147, 103, 3}, // GET_TLSLD_ADDR
444 {1, 2, 0, 0, 0, 1170, 103, 3}, // GET_TLS_ADDR
445 {1, 1, 0, 0, 0, 1191, 99, 2}, // GET_TLS_MOD_AIX
446 {1, 0, 0, 0, 0, 1215, 63, 1}, // GET_TPOINTER
447 {1, 2, 0, 0, 0, 1236, 103, 3}, // Hi
448 {1, 2, 0, 0, 0, 1247, 14, 3}, // INST256
449 {1, 2, 0, 0, 0, 1263, 20, 3}, // INST512
450 {1, 2, 0, 0, 0, 1279, 20, 3}, // INST512HI
451 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1297, 61, 3}, // LBRX
452 {1, 2, 0, 0, 0, 1310, 103, 3}, // LD_GOT_TPREL_L
453 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1333, 81, 2}, // LD_SPLAT
454 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1350, 43, 2}, // LD_VSX_LH
455 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1368, 12, 2}, // LFIWAX
456 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1383, 12, 2}, // LFIWZX
457 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1398, 81, 2}, // LOAD_VEC_BE
458 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1418, 11, 3}, // LXSIZX
459 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1433, 52, 2}, // LXVD2X
460 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1448, 38, 3}, // LXVRZX
461 {1, 2, 0, 0, 0, 1463, 103, 3}, // Lo
462 {1, 1, 0, 0, 0, 1474, 99, 2}, // MAT_PCREL_ADDR
463 {1, 0, 0|1<<SDNPHasChain, 0, 0, 1497, 7, 1}, // MFFS
464 {1, 1, 0, 0, 0, 1510, 0, 0}, // MFVSR
465 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 1524, 63, 1}, // MTCTR
466 {1, 1, 0, 0, 0, 1538, 0, 0}, // MTVSRA
467 {1, 1, 0, 0, 0, 1553, 0, 0}, // MTVSRZ
468 {1, 2, 0, 0, 0, 1568, 103, 3}, // PADDI_DTPREL
469 {1, 2, 0, 0, 0, 1589, 17, 3}, // PAIR_BUILD
470 {1, 0, 0, 0, 0, 1608, 63, 1}, // PPC32_GOT
471 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1626, 0, 0}, // PROBED_ALLOCA
472 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1648, 0, 0}, // RET_GLUE
473 {1, 1, 0, 0, 0, 1665, 0, 0}, // SCALAR_TO_VECTOR_PERMUTED
474 {1, 1, 0, 0, 0, 1699, 66, 2}, // SETBC
475 {1, 1, 0, 0, 0, 1713, 66, 2}, // SETBCR
476 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1728, 81, 2}, // SEXT_LD_SPLAT
477 {1, 2, 0, 0, 0, 1750, 97, 4}, // SHL
478 {1, 2, 0, 0, 0, 1762, 83, 3}, // SINT_VEC_TO_FP
479 {1, 2, 0, 0, 0, 1785, 97, 4}, // SRA
480 {1, 2, 0, 0, 0, 1797, 97, 4}, // SRL
481 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1809, 61, 3}, // STBRX
482 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1823, 12, 2}, // STFIWX
483 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPMemOperand, 0, 0, 1838, 58, 3}, // STORE_COND
484 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1857, 81, 2}, // STORE_VEC_BE
485 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1878, 106, 3}, // STRICT_FADDRTZ
486 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1901, 101, 2}, // STRICT_FCFID
487 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1922, 71, 4}, // STRICT_FCFIDS
488 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1944, 101, 2}, // STRICT_FCFIDU
489 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1966, 71, 4}, // STRICT_FCFIDUS
490 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1989, 101, 2}, // STRICT_FCTIDUZ
491 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 2012, 101, 2}, // STRICT_FCTIDZ
492 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 2034, 101, 2}, // STRICT_FCTIWUZ
493 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 2057, 101, 2}, // STRICT_FCTIWZ
494 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2079, 11, 3}, // STXSIX
495 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2094, 52, 2}, // STXVD2X
496 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2110, 68, 3}, // ST_VSR_SCAL_INT
497 {2, 2, 0, 0, 0, 2134, 120, 4}, // SUBC
498 {2, 3, 0, 0, 0, 2147, 128, 5}, // SUBE
499 {1, 1, 0, 0, 0, 2160, 100, 1}, // SWAP_NO_CHAIN
500 {0, 2, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 2182, 56, 2}, // TC_RETURN
501 {1, 2, 0, 0, 0, 2200, 103, 3}, // TLSGD_AIX
502 {1, 1, 0, 0, 0, 2218, 99, 2}, // TLSLD_AIX
503 {1, 1, 0, 0, 0, 2236, 99, 2}, // TLS_DYNAMIC_MAT_PCREL_ADDR
504 {1, 1, 0, 0, 0, 2271, 99, 2}, // TLS_LOCAL_EXEC_MAT_ADDR
505 {1, 2, 0|1<<SDNPMemOperand, 0, 0, 2303, 103, 3}, // TOC_ENTRY
506 {1, 2, 0, 0, 0, 2321, 83, 3}, // UINT_VEC_TO_FP
507 {1, 3, 0, 0, 0, 2344, 117, 3}, // VCMP
508 {1, 3, 0|1<<SDNPOutGlue, 0, 0, 2357, 117, 3}, // VCMP_rec
509 {1, 3, 0, 0, 0, 2374, 93, 4}, // VECINSERT
510 {1, 3, 0, 0, 0, 2392, 89, 4}, // VECSHL
511 {1, 2, 0, 0, 0, 2407, 8, 3}, // VEXTS
512 {1, 3, 0, 0, 0, 2421, 137, 3}, // VPERM
513 {1, 2, 0, 0, 0, 2435, 78, 3}, // VSRQ
514 {1, 2, 0, 0, 0, 2448, 106, 3}, // XSMAXC
515 {1, 2, 0, 0, 0, 2463, 106, 3}, // XSMINC
516 {1, 1, 0, 0, 0, 2478, 41, 2}, // XVCVSXWSP
517 {1, 1, 0, 0, 0, 2496, 23, 2}, // XXMFACC
518 {1, 3, 0, 0, 0, 2512, 48, 4}, // XXPERM
519 {1, 3, 0, 0, 0, 2527, 93, 4}, // XXPERMDI
520 {1, 2, 0, 0, 0, 2544, 86, 3}, // XXSPLT
521 {1, 3, 0, 0, 0, 2559, 34, 4}, // XXSPLTI32DX
522 {1, 1, 0, 0, 0, 2579, 54, 2}, // XXSPLTI_SP_TO_DP
523 {1, 1, 0|1<<SDNPHasChain, 0, 0, 2604, 100, 1}, // XXSWAPD
524 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2620, 81, 2}, // ZEXT_LD_SPLAT
525};
526
527static const SDNodeInfo PPCGenSDNodeInfo(
528 /*NumOpcodes=*/143, PPCSDNodeDescs, PPCSDNodeNames,
529 PPCVTByHwModeTable, PPCSDTypeConstraints);
530
531} // namespace llvm
532
533#endif // GET_SDNODE_DESC
534
535