1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: SystemZ.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::SystemZISD {
14
15enum GenNodeType : unsigned {
16 ADA_ENTRY = ISD::BUILTIN_OP_END,
17 ADDCARRY,
18 ADJDYNALLOC,
19 ATOMIC_CMP_SWAP,
20 ATOMIC_CMP_SWAPW,
21 ATOMIC_CMP_SWAP_128,
22 ATOMIC_LOADW_ADD,
23 ATOMIC_LOADW_AND,
24 ATOMIC_LOADW_MAX,
25 ATOMIC_LOADW_MIN,
26 ATOMIC_LOADW_NAND,
27 ATOMIC_LOADW_OR,
28 ATOMIC_LOADW_SUB,
29 ATOMIC_LOADW_UMAX,
30 ATOMIC_LOADW_UMIN,
31 ATOMIC_LOADW_XOR,
32 ATOMIC_LOAD_128,
33 ATOMIC_STORE_128,
34 ATOMIC_SWAPW,
35 BR_CCMASK,
36 BYTE_MASK,
37 CALL,
38 CLC,
39 CMP_STACKGUARD,
40 FCMP,
41 ICMP,
42 IPM,
43 JOIN_DWORDS,
44 LRV,
45 MEMSET_MVC,
46 MERGE_HIGH,
47 MERGE_LOW,
48 MOV_STACKGUARD,
49 MVC,
50 NC,
51 OC,
52 PACK,
53 PACKLS_CC,
54 PACKS_CC,
55 PCREL_OFFSET,
56 PCREL_WRAPPER,
57 PERMUTE,
58 PERMUTE_DWORDS,
59 POPCNT,
60 PREFETCH,
61 PROBED_ALLOCA,
62 REPLICATE,
63 RET_GLUE,
64 ROTATE_MASK,
65 SADDO,
66 SCMP128HI,
67 SDIVREM,
68 SEARCH_STRING,
69 SELECT_CCMASK,
70 SHL_DOUBLE,
71 SHL_DOUBLE_BIT,
72 SHR_DOUBLE_BIT,
73 SIBCALL,
74 SMUL_LOHI,
75 SPLAT,
76 SSUBO,
77 STCKF,
78 STPCPY,
79 STRCMP,
80 STRICT_FCMP,
81 STRICT_FCMPS,
82 STRICT_VEXTEND,
83 STRICT_VFCMPE,
84 STRICT_VFCMPES,
85 STRICT_VFCMPH,
86 STRICT_VFCMPHE,
87 STRICT_VFCMPHES,
88 STRICT_VFCMPHS,
89 STRICT_VROUND,
90 STRV,
91 SUBCARRY,
92 TBEGIN,
93 TBEGIN_NOFLOAT,
94 TDC,
95 TEND,
96 TLS_GDCALL,
97 TLS_LDCALL,
98 TM,
99 UADDO,
100 UCMP128HI,
101 UDIVREM,
102 UMUL_LOHI,
103 UNPACKL_HIGH,
104 UNPACKL_LOW,
105 UNPACK_HIGH,
106 UNPACK_LOW,
107 USUBO,
108 VAC,
109 VACC,
110 VACCC,
111 VEXTEND,
112 VFAEZ_CC,
113 VFAE_CC,
114 VFCMPE,
115 VFCMPES,
116 VFCMPH,
117 VFCMPHE,
118 VFCMPHES,
119 VFCMPHS,
120 VFEEZ_CC,
121 VFEE_CC,
122 VFENEZ_CC,
123 VFENE_CC,
124 VFTCI,
125 VICMPE,
126 VICMPES,
127 VICMPH,
128 VICMPHL,
129 VICMPHLS,
130 VICMPHS,
131 VISTR_CC,
132 VLER,
133 VMAH,
134 VMALH,
135 VME,
136 VMLE,
137 VMLO,
138 VMO,
139 VROTL_BY_SCALAR,
140 VROUND,
141 VSBCBI,
142 VSBI,
143 VSCBI,
144 VSHL_BY_SCALAR,
145 VSRA_BY_SCALAR,
146 VSRL_BY_SCALAR,
147 VSTER,
148 VSTRCZ_CC,
149 VSTRC_CC,
150 VSTRSZ_CC,
151 VSTRS_CC,
152 VSUM,
153 VTM,
154 XC,
155};
156
157static constexpr unsigned GENERATED_OPCODE_END = XC + 1;
158
159} // namespace llvm::SystemZISD
160
161#endif // GET_SDNODE_ENUM
162
163#ifdef GET_SDNODE_DESC
164#undef GET_SDNODE_DESC
165
166namespace llvm {
167
168
169#ifdef __GNUC__
170#pragma GCC diagnostic push
171#pragma GCC diagnostic ignored "-Woverlength-strings"
172#endif
173static constexpr char SystemZSDNodeNamesStorage[] =
174 "\0"
175 "SystemZISD::ADA_ENTRY\0"
176 "SystemZISD::ADDCARRY\0"
177 "SystemZISD::ADJDYNALLOC\0"
178 "SystemZISD::ATOMIC_CMP_SWAP\0"
179 "SystemZISD::ATOMIC_CMP_SWAPW\0"
180 "SystemZISD::ATOMIC_CMP_SWAP_128\0"
181 "SystemZISD::ATOMIC_LOADW_ADD\0"
182 "SystemZISD::ATOMIC_LOADW_AND\0"
183 "SystemZISD::ATOMIC_LOADW_MAX\0"
184 "SystemZISD::ATOMIC_LOADW_MIN\0"
185 "SystemZISD::ATOMIC_LOADW_NAND\0"
186 "SystemZISD::ATOMIC_LOADW_OR\0"
187 "SystemZISD::ATOMIC_LOADW_SUB\0"
188 "SystemZISD::ATOMIC_LOADW_UMAX\0"
189 "SystemZISD::ATOMIC_LOADW_UMIN\0"
190 "SystemZISD::ATOMIC_LOADW_XOR\0"
191 "SystemZISD::ATOMIC_LOAD_128\0"
192 "SystemZISD::ATOMIC_STORE_128\0"
193 "SystemZISD::ATOMIC_SWAPW\0"
194 "SystemZISD::BR_CCMASK\0"
195 "SystemZISD::BYTE_MASK\0"
196 "SystemZISD::CALL\0"
197 "SystemZISD::CLC\0"
198 "SystemZISD::CMP_STACKGUARD\0"
199 "SystemZISD::FCMP\0"
200 "SystemZISD::ICMP\0"
201 "SystemZISD::IPM\0"
202 "SystemZISD::JOIN_DWORDS\0"
203 "SystemZISD::LRV\0"
204 "SystemZISD::MEMSET_MVC\0"
205 "SystemZISD::MERGE_HIGH\0"
206 "SystemZISD::MERGE_LOW\0"
207 "SystemZISD::MOV_STACKGUARD\0"
208 "SystemZISD::MVC\0"
209 "SystemZISD::NC\0"
210 "SystemZISD::OC\0"
211 "SystemZISD::PACK\0"
212 "SystemZISD::PACKLS_CC\0"
213 "SystemZISD::PACKS_CC\0"
214 "SystemZISD::PCREL_OFFSET\0"
215 "SystemZISD::PCREL_WRAPPER\0"
216 "SystemZISD::PERMUTE\0"
217 "SystemZISD::PERMUTE_DWORDS\0"
218 "SystemZISD::POPCNT\0"
219 "SystemZISD::PREFETCH\0"
220 "SystemZISD::PROBED_ALLOCA\0"
221 "SystemZISD::REPLICATE\0"
222 "SystemZISD::RET_GLUE\0"
223 "SystemZISD::ROTATE_MASK\0"
224 "SystemZISD::SADDO\0"
225 "SystemZISD::SCMP128HI\0"
226 "SystemZISD::SDIVREM\0"
227 "SystemZISD::SEARCH_STRING\0"
228 "SystemZISD::SELECT_CCMASK\0"
229 "SystemZISD::SHL_DOUBLE\0"
230 "SystemZISD::SHL_DOUBLE_BIT\0"
231 "SystemZISD::SHR_DOUBLE_BIT\0"
232 "SystemZISD::SIBCALL\0"
233 "SystemZISD::SMUL_LOHI\0"
234 "SystemZISD::SPLAT\0"
235 "SystemZISD::SSUBO\0"
236 "SystemZISD::STCKF\0"
237 "SystemZISD::STPCPY\0"
238 "SystemZISD::STRCMP\0"
239 "SystemZISD::STRICT_FCMP\0"
240 "SystemZISD::STRICT_FCMPS\0"
241 "SystemZISD::STRICT_VEXTEND\0"
242 "SystemZISD::STRICT_VFCMPE\0"
243 "SystemZISD::STRICT_VFCMPES\0"
244 "SystemZISD::STRICT_VFCMPH\0"
245 "SystemZISD::STRICT_VFCMPHE\0"
246 "SystemZISD::STRICT_VFCMPHES\0"
247 "SystemZISD::STRICT_VFCMPHS\0"
248 "SystemZISD::STRICT_VROUND\0"
249 "SystemZISD::STRV\0"
250 "SystemZISD::SUBCARRY\0"
251 "SystemZISD::TBEGIN\0"
252 "SystemZISD::TBEGIN_NOFLOAT\0"
253 "SystemZISD::TDC\0"
254 "SystemZISD::TEND\0"
255 "SystemZISD::TLS_GDCALL\0"
256 "SystemZISD::TLS_LDCALL\0"
257 "SystemZISD::TM\0"
258 "SystemZISD::UADDO\0"
259 "SystemZISD::UCMP128HI\0"
260 "SystemZISD::UDIVREM\0"
261 "SystemZISD::UMUL_LOHI\0"
262 "SystemZISD::UNPACKL_HIGH\0"
263 "SystemZISD::UNPACKL_LOW\0"
264 "SystemZISD::UNPACK_HIGH\0"
265 "SystemZISD::UNPACK_LOW\0"
266 "SystemZISD::USUBO\0"
267 "SystemZISD::VAC\0"
268 "SystemZISD::VACC\0"
269 "SystemZISD::VACCC\0"
270 "SystemZISD::VEXTEND\0"
271 "SystemZISD::VFAEZ_CC\0"
272 "SystemZISD::VFAE_CC\0"
273 "SystemZISD::VFCMPE\0"
274 "SystemZISD::VFCMPES\0"
275 "SystemZISD::VFCMPH\0"
276 "SystemZISD::VFCMPHE\0"
277 "SystemZISD::VFCMPHES\0"
278 "SystemZISD::VFCMPHS\0"
279 "SystemZISD::VFEEZ_CC\0"
280 "SystemZISD::VFEE_CC\0"
281 "SystemZISD::VFENEZ_CC\0"
282 "SystemZISD::VFENE_CC\0"
283 "SystemZISD::VFTCI\0"
284 "SystemZISD::VICMPE\0"
285 "SystemZISD::VICMPES\0"
286 "SystemZISD::VICMPH\0"
287 "SystemZISD::VICMPHL\0"
288 "SystemZISD::VICMPHLS\0"
289 "SystemZISD::VICMPHS\0"
290 "SystemZISD::VISTR_CC\0"
291 "SystemZISD::VLER\0"
292 "SystemZISD::VMAH\0"
293 "SystemZISD::VMALH\0"
294 "SystemZISD::VME\0"
295 "SystemZISD::VMLE\0"
296 "SystemZISD::VMLO\0"
297 "SystemZISD::VMO\0"
298 "SystemZISD::VROTL_BY_SCALAR\0"
299 "SystemZISD::VROUND\0"
300 "SystemZISD::VSBCBI\0"
301 "SystemZISD::VSBI\0"
302 "SystemZISD::VSCBI\0"
303 "SystemZISD::VSHL_BY_SCALAR\0"
304 "SystemZISD::VSRA_BY_SCALAR\0"
305 "SystemZISD::VSRL_BY_SCALAR\0"
306 "SystemZISD::VSTER\0"
307 "SystemZISD::VSTRCZ_CC\0"
308 "SystemZISD::VSTRC_CC\0"
309 "SystemZISD::VSTRSZ_CC\0"
310 "SystemZISD::VSTRS_CC\0"
311 "SystemZISD::VSUM\0"
312 "SystemZISD::VTM\0"
313 "SystemZISD::XC\0"
314 ;
315#ifdef __GNUC__
316#pragma GCC diagnostic pop
317#endif
318
319static constexpr llvm::StringTable
320SystemZSDNodeNames = SystemZSDNodeNamesStorage;
321
322static const VTByHwModePair SystemZVTByHwModeTable[] = {
323 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
324};
325
326static const SDTypeConstraint SystemZSDTypeConstraints[] = {
327 /* 0 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
328 /* 4 */ {SDTCisVT, 7, 0, 0, MVT::i32}, {SDTCisVT, 6, 0, 0, MVT::i32}, {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
329 /* 12 */ {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::i32},
330 /* 18 */ {SDTCisVT, 3, 0, 0, MVT::i64}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::i32},
331 /* 22 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::i32},
332 /* 25 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::i32},
333 /* 27 */ {SDTCisVT, 0, 0, 0, MVT::i64},
334 /* 28 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::v2i64},
335 /* 31 */ {SDTCisVT, 4, 0, 0, MVT::Untyped}, {SDTCisVT, 3, 0, 0, MVT::Untyped}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::Untyped},
336 /* 36 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::Untyped},
337 /* 38 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::Untyped},
338 /* 41 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisPtrTy, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
339 /* 46 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
340 /* 49 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
341 /* 52 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
342 /* 56 */ {SDTCisVT, 3, 0, 0, MVT::i64}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
343 /* 60 */ {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}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
344 /* 64 */ {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
345 /* 69 */ {SDTCisSameAs, 0, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
346 /* 74 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
347 /* 77 */ {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}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
348 /* 81 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {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},
349 /* 85 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
350 /* 88 */ {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
351 /* 92 */ {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisSameAs, 0, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
352 /* 98 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
353 /* 103 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
354 /* 106 */ {SDTCisSameAs, 0, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 2, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
355 /* 111 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
356 /* 115 */ {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},
357 /* 118 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
358 /* 120 */ {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
359 /* 122 */ {SDTCisPtrTy, 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},
360 /* 125 */ {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},
361 /* 128 */ {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
362 /* 133 */ {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32},
363 /* 136 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
364 /* 137 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
365};
366
367static const SDNodeDesc SystemZSDNodeDescs[] = {
368 {1, 3, 0, 0, 0, 1, 56, 4}, // ADA_ENTRY
369 {2, 3, 0, 0, 0, 23, 64, 5}, // ADDCARRY
370 {1, 0, 0, 0, 0, 44, 27, 1}, // ADJDYNALLOC
371 {2, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 68, 69, 5}, // ATOMIC_CMP_SWAP
372 {2, 6, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 96, 4, 8}, // ATOMIC_CMP_SWAPW
373 {2, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 125, 31, 5}, // ATOMIC_CMP_SWAP_128
374 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 157, 12, 6}, // ATOMIC_LOADW_ADD
375 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 186, 12, 6}, // ATOMIC_LOADW_AND
376 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 215, 12, 6}, // ATOMIC_LOADW_MAX
377 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 244, 12, 6}, // ATOMIC_LOADW_MIN
378 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 273, 12, 6}, // ATOMIC_LOADW_NAND
379 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 303, 12, 6}, // ATOMIC_LOADW_OR
380 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 331, 12, 6}, // ATOMIC_LOADW_SUB
381 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 360, 12, 6}, // ATOMIC_LOADW_UMAX
382 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 390, 12, 6}, // ATOMIC_LOADW_UMIN
383 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 420, 12, 6}, // ATOMIC_LOADW_XOR
384 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 449, 36, 2}, // ATOMIC_LOAD_128
385 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 477, 36, 2}, // ATOMIC_STORE_128
386 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 506, 12, 6}, // ATOMIC_SWAPW
387 {0, 4, 0|1<<SDNPHasChain, 0, 0, 531, 0, 4}, // BR_CCMASK
388 {1, 1, 0, 0, 0, 553, 80, 1}, // BYTE_MASK
389 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 575, 45, 1}, // CALL
390 {1, 3, 0|1<<SDNPHasChain, 0, 0, 592, 18, 4}, // CLC
391 {1, 1, 0, 0, 0, 608, 16, 2}, // CMP_STACKGUARD
392 {1, 2, 0, 0, 0, 635, 23, 2}, // FCMP
393 {1, 3, 0, 0, 0, 652, 22, 3}, // ICMP
394 {1, 1, 0, 0, 0, 669, 2, 2}, // IPM
395 {1, 2, 0, 0, 0, 685, 28, 3}, // JOIN_DWORDS
396 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 709, 136, 1}, // LRV
397 {0, 3, 0|1<<SDNPHasChain, 0, 0, 725, 46, 3}, // MEMSET_MVC
398 {1, 2, 0, 0, 0, 748, 78, 3}, // MERGE_HIGH
399 {1, 2, 0, 0, 0, 771, 78, 3}, // MERGE_LOW
400 {0, 1, 0|1<<SDNPHasChain, 0, 0, 793, 45, 1}, // MOV_STACKGUARD
401 {0, 3, 0|1<<SDNPHasChain, 0, 0, 820, 49, 3}, // MVC
402 {0, 3, 0|1<<SDNPHasChain, 0, 0, 836, 49, 3}, // NC
403 {0, 3, 0|1<<SDNPHasChain, 0, 0, 851, 49, 3}, // OC
404 {1, 2, 0, 0, 0, 866, 115, 3}, // PACK
405 {2, 2, 0, 0, 0, 883, 107, 4}, // PACKLS_CC
406 {2, 2, 0, 0, 0, 905, 107, 4}, // PACKS_CC
407 {1, 2, 0, 0, 0, 926, 122, 3}, // PCREL_OFFSET
408 {1, 1, 0, 0, 0, 951, 118, 2}, // PCREL_WRAPPER
409 {1, 3, 0, 0, 0, 977, 77, 4}, // PERMUTE
410 {1, 3, 0, 0, 0, 997, 81, 4}, // PERMUTE_DWORDS
411 {1, 1, 0, 0, 0, 1024, 120, 2}, // POPCNT
412 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1043, 16, 2}, // PREFETCH
413 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1064, 122, 3}, // PROBED_ALLOCA
414 {1, 1, 0, 0, 0, 1090, 80, 1}, // REPLICATE
415 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1112, 0, 0}, // RET_GLUE
416 {1, 2, 0, 0, 0, 1133, 103, 3}, // ROTATE_MASK
417 {2, 2, 0, 0, 0, 1157, 65, 4}, // SADDO
418 {1, 2, 0, 0, 0, 1175, 23, 2}, // SCMP128HI
419 {1, 2, 0, 0, 0, 1197, 38, 3}, // SDIVREM
420 {2, 3, 0|1<<SDNPHasChain, 0, 0, 1217, 41, 5}, // SEARCH_STRING
421 {1, 5, 0, 0, 0, 1243, 128, 5}, // SELECT_CCMASK
422 {1, 3, 0, 0, 0, 1269, 81, 4}, // SHL_DOUBLE
423 {1, 3, 0, 0, 0, 1292, 81, 4}, // SHL_DOUBLE_BIT
424 {1, 3, 0, 0, 0, 1319, 81, 4}, // SHR_DOUBLE_BIT
425 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1346, 45, 1}, // SIBCALL
426 {1, 2, 0, 0, 0, 1366, 38, 3}, // SMUL_LOHI
427 {1, 2, 0, 0, 0, 1388, 85, 3}, // SPLAT
428 {2, 2, 0, 0, 0, 1406, 65, 4}, // SSUBO
429 {0, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1424, 45, 1}, // STCKF
430 {1, 3, 0|1<<SDNPHasChain, 0, 0, 1442, 52, 4}, // STPCPY
431 {2, 3, 0|1<<SDNPHasChain, 0, 0, 1461, 41, 5}, // STRCMP
432 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1480, 23, 2}, // STRICT_FCMP
433 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1504, 23, 2}, // STRICT_FCMPS
434 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1529, 116, 2}, // STRICT_VEXTEND
435 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1556, 115, 3}, // STRICT_VFCMPE
436 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1582, 115, 3}, // STRICT_VFCMPES
437 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1609, 115, 3}, // STRICT_VFCMPH
438 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1635, 115, 3}, // STRICT_VFCMPHE
439 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1662, 115, 3}, // STRICT_VFCMPHES
440 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1690, 115, 3}, // STRICT_VFCMPHS
441 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1717, 116, 2}, // STRICT_VROUND
442 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1743, 136, 1}, // STRV
443 {2, 3, 0, 0, 0, 1760, 64, 5}, // SUBCARRY
444 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1781, 15, 3}, // TBEGIN
445 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1800, 15, 3}, // TBEGIN_NOFLOAT
446 {1, 2, 0, 0, 0, 1827, 25, 2}, // TDC
447 {1, 0, 0|1<<SDNPHasChain, 0, 0, 1843, 3, 1}, // TEND
448 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPVariadic, 0, 0, 1860, 45, 1}, // TLS_GDCALL
449 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPVariadic, 0, 0, 1883, 45, 1}, // TLS_LDCALL
450 {1, 3, 0, 0, 0, 1906, 22, 3}, // TM
451 {2, 2, 0, 0, 0, 1921, 65, 4}, // UADDO
452 {1, 2, 0, 0, 0, 1939, 23, 2}, // UCMP128HI
453 {1, 2, 0, 0, 0, 1961, 38, 3}, // UDIVREM
454 {1, 2, 0, 0, 0, 1981, 38, 3}, // UMUL_LOHI
455 {1, 1, 0, 0, 0, 2003, 137, 1}, // UNPACKL_HIGH
456 {1, 1, 0, 0, 0, 2028, 137, 1}, // UNPACKL_LOW
457 {1, 1, 0, 0, 0, 2052, 137, 1}, // UNPACK_HIGH
458 {1, 1, 0, 0, 0, 2076, 137, 1}, // UNPACK_LOW
459 {2, 2, 0, 0, 0, 2099, 65, 4}, // USUBO
460 {1, 3, 0, 0, 0, 2117, 60, 4}, // VAC
461 {1, 2, 0, 0, 0, 2133, 125, 3}, // VACC
462 {1, 3, 0, 0, 0, 2150, 60, 4}, // VACCC
463 {1, 1, 0, 0, 0, 2168, 116, 2}, // VEXTEND
464 {2, 3, 0, 0, 0, 2188, 98, 5}, // VFAEZ_CC
465 {2, 3, 0, 0, 0, 2209, 98, 5}, // VFAE_CC
466 {1, 2, 0, 0, 0, 2229, 115, 3}, // VFCMPE
467 {2, 2, 0, 0, 0, 2248, 107, 4}, // VFCMPES
468 {1, 2, 0, 0, 0, 2268, 115, 3}, // VFCMPH
469 {1, 2, 0, 0, 0, 2287, 115, 3}, // VFCMPHE
470 {2, 2, 0, 0, 0, 2307, 107, 4}, // VFCMPHES
471 {2, 2, 0, 0, 0, 2328, 107, 4}, // VFCMPHS
472 {2, 2, 0, 0, 0, 2348, 88, 4}, // VFEEZ_CC
473 {2, 2, 0, 0, 0, 2369, 88, 4}, // VFEE_CC
474 {2, 2, 0, 0, 0, 2389, 88, 4}, // VFENEZ_CC
475 {2, 2, 0, 0, 0, 2411, 88, 4}, // VFENE_CC
476 {2, 2, 0, 0, 0, 2432, 111, 4}, // VFTCI
477 {1, 2, 0, 0, 0, 2450, 123, 2}, // VICMPE
478 {2, 2, 0, 0, 0, 2469, 133, 3}, // VICMPES
479 {1, 2, 0, 0, 0, 2489, 123, 2}, // VICMPH
480 {1, 2, 0, 0, 0, 2508, 123, 2}, // VICMPHL
481 {2, 2, 0, 0, 0, 2528, 133, 3}, // VICMPHLS
482 {2, 2, 0, 0, 0, 2549, 133, 3}, // VICMPHS
483 {2, 1, 0, 0, 0, 2569, 89, 3}, // VISTR_CC
484 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2590, 136, 1}, // VLER
485 {1, 3, 0, 0, 0, 2607, 60, 4}, // VMAH
486 {1, 3, 0, 0, 0, 2624, 60, 4}, // VMALH
487 {1, 2, 0, 0, 0, 2642, 74, 3}, // VME
488 {1, 2, 0, 0, 0, 2658, 74, 3}, // VMLE
489 {1, 2, 0, 0, 0, 2675, 74, 3}, // VMLO
490 {1, 2, 0, 0, 0, 2692, 74, 3}, // VMO
491 {1, 2, 0, 0, 0, 2708, 85, 3}, // VROTL_BY_SCALAR
492 {1, 1, 0, 0, 0, 2736, 116, 2}, // VROUND
493 {1, 3, 0, 0, 0, 2755, 60, 4}, // VSBCBI
494 {1, 3, 0, 0, 0, 2774, 60, 4}, // VSBI
495 {1, 2, 0, 0, 0, 2791, 125, 3}, // VSCBI
496 {1, 2, 0, 0, 0, 2809, 85, 3}, // VSHL_BY_SCALAR
497 {1, 2, 0, 0, 0, 2836, 85, 3}, // VSRA_BY_SCALAR
498 {1, 2, 0, 0, 0, 2863, 85, 3}, // VSRL_BY_SCALAR
499 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2890, 136, 1}, // VSTER
500 {2, 4, 0, 0, 0, 2908, 92, 6}, // VSTRCZ_CC
501 {2, 4, 0, 0, 0, 2930, 92, 6}, // VSTRC_CC
502 {2, 3, 0, 0, 0, 2951, 106, 5}, // VSTRSZ_CC
503 {2, 3, 0, 0, 0, 2973, 106, 5}, // VSTRS_CC
504 {1, 2, 0, 0, 0, 2994, 74, 3}, // VSUM
505 {1, 2, 0, 0, 0, 3011, 23, 2}, // VTM
506 {0, 3, 0|1<<SDNPHasChain, 0, 0, 3027, 49, 3}, // XC
507};
508
509static const SDNodeInfo SystemZGenSDNodeInfo(
510 /*NumOpcodes=*/139, SystemZSDNodeDescs, SystemZSDNodeNames,
511 SystemZVTByHwModeTable, SystemZSDTypeConstraints);
512
513} // namespace llvm
514
515#endif // GET_SDNODE_DESC
516
517