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 MEMMOVE,
46 MEMSET_MVC,
47 MERGE_HIGH,
48 MERGE_LOW,
49 MOV_STACKGUARD,
50 MVC,
51 NC,
52 OC,
53 PACK,
54 PACKLS_CC,
55 PACKS_CC,
56 PCREL_OFFSET,
57 PCREL_WRAPPER,
58 PERMUTE,
59 PERMUTE_DWORDS,
60 POPCNT,
61 PREFETCH,
62 PROBED_ALLOCA,
63 REPLICATE,
64 RET_GLUE,
65 ROTATE_MASK,
66 SADDO,
67 SCMP128HI,
68 SDIVREM,
69 SEARCH_STRING,
70 SELECT_CCMASK,
71 SHL_DOUBLE,
72 SHL_DOUBLE_BIT,
73 SHR_DOUBLE_BIT,
74 SIBCALL,
75 SMUL_LOHI,
76 SPLAT,
77 SSUBO,
78 STCKF,
79 STPCPY,
80 STRCMP,
81 STRICT_FCMP,
82 STRICT_FCMPS,
83 STRICT_VEXTEND,
84 STRICT_VFCMPE,
85 STRICT_VFCMPES,
86 STRICT_VFCMPH,
87 STRICT_VFCMPHE,
88 STRICT_VFCMPHES,
89 STRICT_VFCMPHS,
90 STRICT_VROUND,
91 STRV,
92 SUBCARRY,
93 TBEGIN,
94 TBEGIN_NOFLOAT,
95 TDC,
96 TEND,
97 TLS_GDCALL,
98 TLS_LDCALL,
99 TM,
100 UADDO,
101 UCMP128HI,
102 UDIVREM,
103 UMUL_LOHI,
104 UNPACKL_HIGH,
105 UNPACKL_LOW,
106 UNPACK_HIGH,
107 UNPACK_LOW,
108 USUBO,
109 VAC,
110 VACC,
111 VACCC,
112 VEXTEND,
113 VFAEZ_CC,
114 VFAE_CC,
115 VFCMPE,
116 VFCMPES,
117 VFCMPH,
118 VFCMPHE,
119 VFCMPHES,
120 VFCMPHS,
121 VFEEZ_CC,
122 VFEE_CC,
123 VFENEZ_CC,
124 VFENE_CC,
125 VFTCI,
126 VICMPE,
127 VICMPES,
128 VICMPH,
129 VICMPHL,
130 VICMPHLS,
131 VICMPHS,
132 VISTR_CC,
133 VLER,
134 VMAH,
135 VMALH,
136 VME,
137 VMLE,
138 VMLO,
139 VMO,
140 VROTL_BY_SCALAR,
141 VROUND,
142 VSBCBI,
143 VSBI,
144 VSCBI,
145 VSHL_BY_SCALAR,
146 VSRA_BY_SCALAR,
147 VSRL_BY_SCALAR,
148 VSTER,
149 VSTRCZ_CC,
150 VSTRC_CC,
151 VSTRSZ_CC,
152 VSTRS_CC,
153 VSUM,
154 VTM,
155 XC,
156};
157
158static constexpr unsigned GENERATED_OPCODE_END = XC + 1;
159
160} // namespace llvm::SystemZISD
161
162#endif // GET_SDNODE_ENUM
163
164#ifdef GET_SDNODE_DESC
165#undef GET_SDNODE_DESC
166
167namespace llvm {
168
169
170#ifdef __GNUC__
171#pragma GCC diagnostic push
172#pragma GCC diagnostic ignored "-Woverlength-strings"
173#endif
174static constexpr char SystemZSDNodeNamesStorage[] =
175 "\0"
176 "SystemZISD::ADA_ENTRY\0"
177 "SystemZISD::ADDCARRY\0"
178 "SystemZISD::ADJDYNALLOC\0"
179 "SystemZISD::ATOMIC_CMP_SWAP\0"
180 "SystemZISD::ATOMIC_CMP_SWAPW\0"
181 "SystemZISD::ATOMIC_CMP_SWAP_128\0"
182 "SystemZISD::ATOMIC_LOADW_ADD\0"
183 "SystemZISD::ATOMIC_LOADW_AND\0"
184 "SystemZISD::ATOMIC_LOADW_MAX\0"
185 "SystemZISD::ATOMIC_LOADW_MIN\0"
186 "SystemZISD::ATOMIC_LOADW_NAND\0"
187 "SystemZISD::ATOMIC_LOADW_OR\0"
188 "SystemZISD::ATOMIC_LOADW_SUB\0"
189 "SystemZISD::ATOMIC_LOADW_UMAX\0"
190 "SystemZISD::ATOMIC_LOADW_UMIN\0"
191 "SystemZISD::ATOMIC_LOADW_XOR\0"
192 "SystemZISD::ATOMIC_LOAD_128\0"
193 "SystemZISD::ATOMIC_STORE_128\0"
194 "SystemZISD::ATOMIC_SWAPW\0"
195 "SystemZISD::BR_CCMASK\0"
196 "SystemZISD::BYTE_MASK\0"
197 "SystemZISD::CALL\0"
198 "SystemZISD::CLC\0"
199 "SystemZISD::CMP_STACKGUARD\0"
200 "SystemZISD::FCMP\0"
201 "SystemZISD::ICMP\0"
202 "SystemZISD::IPM\0"
203 "SystemZISD::JOIN_DWORDS\0"
204 "SystemZISD::LRV\0"
205 "SystemZISD::MEMMOVE\0"
206 "SystemZISD::MEMSET_MVC\0"
207 "SystemZISD::MERGE_HIGH\0"
208 "SystemZISD::MERGE_LOW\0"
209 "SystemZISD::MOV_STACKGUARD\0"
210 "SystemZISD::MVC\0"
211 "SystemZISD::NC\0"
212 "SystemZISD::OC\0"
213 "SystemZISD::PACK\0"
214 "SystemZISD::PACKLS_CC\0"
215 "SystemZISD::PACKS_CC\0"
216 "SystemZISD::PCREL_OFFSET\0"
217 "SystemZISD::PCREL_WRAPPER\0"
218 "SystemZISD::PERMUTE\0"
219 "SystemZISD::PERMUTE_DWORDS\0"
220 "SystemZISD::POPCNT\0"
221 "SystemZISD::PREFETCH\0"
222 "SystemZISD::PROBED_ALLOCA\0"
223 "SystemZISD::REPLICATE\0"
224 "SystemZISD::RET_GLUE\0"
225 "SystemZISD::ROTATE_MASK\0"
226 "SystemZISD::SADDO\0"
227 "SystemZISD::SCMP128HI\0"
228 "SystemZISD::SDIVREM\0"
229 "SystemZISD::SEARCH_STRING\0"
230 "SystemZISD::SELECT_CCMASK\0"
231 "SystemZISD::SHL_DOUBLE\0"
232 "SystemZISD::SHL_DOUBLE_BIT\0"
233 "SystemZISD::SHR_DOUBLE_BIT\0"
234 "SystemZISD::SIBCALL\0"
235 "SystemZISD::SMUL_LOHI\0"
236 "SystemZISD::SPLAT\0"
237 "SystemZISD::SSUBO\0"
238 "SystemZISD::STCKF\0"
239 "SystemZISD::STPCPY\0"
240 "SystemZISD::STRCMP\0"
241 "SystemZISD::STRICT_FCMP\0"
242 "SystemZISD::STRICT_FCMPS\0"
243 "SystemZISD::STRICT_VEXTEND\0"
244 "SystemZISD::STRICT_VFCMPE\0"
245 "SystemZISD::STRICT_VFCMPES\0"
246 "SystemZISD::STRICT_VFCMPH\0"
247 "SystemZISD::STRICT_VFCMPHE\0"
248 "SystemZISD::STRICT_VFCMPHES\0"
249 "SystemZISD::STRICT_VFCMPHS\0"
250 "SystemZISD::STRICT_VROUND\0"
251 "SystemZISD::STRV\0"
252 "SystemZISD::SUBCARRY\0"
253 "SystemZISD::TBEGIN\0"
254 "SystemZISD::TBEGIN_NOFLOAT\0"
255 "SystemZISD::TDC\0"
256 "SystemZISD::TEND\0"
257 "SystemZISD::TLS_GDCALL\0"
258 "SystemZISD::TLS_LDCALL\0"
259 "SystemZISD::TM\0"
260 "SystemZISD::UADDO\0"
261 "SystemZISD::UCMP128HI\0"
262 "SystemZISD::UDIVREM\0"
263 "SystemZISD::UMUL_LOHI\0"
264 "SystemZISD::UNPACKL_HIGH\0"
265 "SystemZISD::UNPACKL_LOW\0"
266 "SystemZISD::UNPACK_HIGH\0"
267 "SystemZISD::UNPACK_LOW\0"
268 "SystemZISD::USUBO\0"
269 "SystemZISD::VAC\0"
270 "SystemZISD::VACC\0"
271 "SystemZISD::VACCC\0"
272 "SystemZISD::VEXTEND\0"
273 "SystemZISD::VFAEZ_CC\0"
274 "SystemZISD::VFAE_CC\0"
275 "SystemZISD::VFCMPE\0"
276 "SystemZISD::VFCMPES\0"
277 "SystemZISD::VFCMPH\0"
278 "SystemZISD::VFCMPHE\0"
279 "SystemZISD::VFCMPHES\0"
280 "SystemZISD::VFCMPHS\0"
281 "SystemZISD::VFEEZ_CC\0"
282 "SystemZISD::VFEE_CC\0"
283 "SystemZISD::VFENEZ_CC\0"
284 "SystemZISD::VFENE_CC\0"
285 "SystemZISD::VFTCI\0"
286 "SystemZISD::VICMPE\0"
287 "SystemZISD::VICMPES\0"
288 "SystemZISD::VICMPH\0"
289 "SystemZISD::VICMPHL\0"
290 "SystemZISD::VICMPHLS\0"
291 "SystemZISD::VICMPHS\0"
292 "SystemZISD::VISTR_CC\0"
293 "SystemZISD::VLER\0"
294 "SystemZISD::VMAH\0"
295 "SystemZISD::VMALH\0"
296 "SystemZISD::VME\0"
297 "SystemZISD::VMLE\0"
298 "SystemZISD::VMLO\0"
299 "SystemZISD::VMO\0"
300 "SystemZISD::VROTL_BY_SCALAR\0"
301 "SystemZISD::VROUND\0"
302 "SystemZISD::VSBCBI\0"
303 "SystemZISD::VSBI\0"
304 "SystemZISD::VSCBI\0"
305 "SystemZISD::VSHL_BY_SCALAR\0"
306 "SystemZISD::VSRA_BY_SCALAR\0"
307 "SystemZISD::VSRL_BY_SCALAR\0"
308 "SystemZISD::VSTER\0"
309 "SystemZISD::VSTRCZ_CC\0"
310 "SystemZISD::VSTRC_CC\0"
311 "SystemZISD::VSTRSZ_CC\0"
312 "SystemZISD::VSTRS_CC\0"
313 "SystemZISD::VSUM\0"
314 "SystemZISD::VTM\0"
315 "SystemZISD::XC\0"
316 ;
317#ifdef __GNUC__
318#pragma GCC diagnostic pop
319#endif
320
321static constexpr llvm::StringTable
322SystemZSDNodeNames = SystemZSDNodeNamesStorage;
323
324static const VTByHwModePair SystemZVTByHwModeTable[] = {
325 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
326};
327
328static const SDTypeConstraint SystemZSDTypeConstraints[] = {
329 /* 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},
330 /* 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},
331 /* 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},
332 /* 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},
333 /* 22 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::i32},
334 /* 25 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::i32},
335 /* 27 */ {SDTCisVT, 0, 0, 0, MVT::i64},
336 /* 28 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::v2i64},
337 /* 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},
338 /* 36 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::Untyped},
339 /* 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},
340 /* 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},
341 /* 46 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
342 /* 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},
343 /* 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},
344 /* 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},
345 /* 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},
346 /* 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},
347 /* 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},
348 /* 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},
349 /* 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},
350 /* 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},
351 /* 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},
352 /* 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},
353 /* 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},
354 /* 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},
355 /* 103 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
356 /* 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},
357 /* 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},
358 /* 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},
359 /* 118 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
360 /* 120 */ {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
361 /* 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},
362 /* 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},
363 /* 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},
364 /* 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},
365 /* 136 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
366 /* 137 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
367};
368
369static const SDNodeDesc SystemZSDNodeDescs[] = {
370 {1, 3, 0, 0, 0, 1, 56, 4}, // ADA_ENTRY
371 {2, 3, 0, 0, 0, 23, 64, 5}, // ADDCARRY
372 {1, 0, 0, 0, 0, 44, 27, 1}, // ADJDYNALLOC
373 {2, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 68, 69, 5}, // ATOMIC_CMP_SWAP
374 {2, 6, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 96, 4, 8}, // ATOMIC_CMP_SWAPW
375 {2, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 125, 31, 5}, // ATOMIC_CMP_SWAP_128
376 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 157, 12, 6}, // ATOMIC_LOADW_ADD
377 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 186, 12, 6}, // ATOMIC_LOADW_AND
378 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 215, 12, 6}, // ATOMIC_LOADW_MAX
379 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 244, 12, 6}, // ATOMIC_LOADW_MIN
380 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 273, 12, 6}, // ATOMIC_LOADW_NAND
381 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 303, 12, 6}, // ATOMIC_LOADW_OR
382 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 331, 12, 6}, // ATOMIC_LOADW_SUB
383 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 360, 12, 6}, // ATOMIC_LOADW_UMAX
384 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 390, 12, 6}, // ATOMIC_LOADW_UMIN
385 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 420, 12, 6}, // ATOMIC_LOADW_XOR
386 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 449, 36, 2}, // ATOMIC_LOAD_128
387 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 477, 36, 2}, // ATOMIC_STORE_128
388 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 506, 12, 6}, // ATOMIC_SWAPW
389 {0, 4, 0|1<<SDNPHasChain, 0, 0, 531, 0, 4}, // BR_CCMASK
390 {1, 1, 0, 0, 0, 553, 80, 1}, // BYTE_MASK
391 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 575, 45, 1}, // CALL
392 {1, 3, 0|1<<SDNPHasChain, 0, 0, 592, 18, 4}, // CLC
393 {1, 1, 0, 0, 0, 608, 16, 2}, // CMP_STACKGUARD
394 {1, 2, 0, 0, 0, 635, 23, 2}, // FCMP
395 {1, 3, 0, 0, 0, 652, 22, 3}, // ICMP
396 {1, 1, 0, 0, 0, 669, 2, 2}, // IPM
397 {1, 2, 0, 0, 0, 685, 28, 3}, // JOIN_DWORDS
398 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 709, 136, 1}, // LRV
399 {0, 3, 0|1<<SDNPHasChain, 0, 0, 725, 49, 3}, // MEMMOVE
400 {0, 3, 0|1<<SDNPHasChain, 0, 0, 745, 46, 3}, // MEMSET_MVC
401 {1, 2, 0, 0, 0, 768, 78, 3}, // MERGE_HIGH
402 {1, 2, 0, 0, 0, 791, 78, 3}, // MERGE_LOW
403 {0, 1, 0|1<<SDNPHasChain, 0, 0, 813, 45, 1}, // MOV_STACKGUARD
404 {0, 3, 0|1<<SDNPHasChain, 0, 0, 840, 49, 3}, // MVC
405 {0, 3, 0|1<<SDNPHasChain, 0, 0, 856, 49, 3}, // NC
406 {0, 3, 0|1<<SDNPHasChain, 0, 0, 871, 49, 3}, // OC
407 {1, 2, 0, 0, 0, 886, 115, 3}, // PACK
408 {2, 2, 0, 0, 0, 903, 107, 4}, // PACKLS_CC
409 {2, 2, 0, 0, 0, 925, 107, 4}, // PACKS_CC
410 {1, 2, 0, 0, 0, 946, 122, 3}, // PCREL_OFFSET
411 {1, 1, 0, 0, 0, 971, 118, 2}, // PCREL_WRAPPER
412 {1, 3, 0, 0, 0, 997, 77, 4}, // PERMUTE
413 {1, 3, 0, 0, 0, 1017, 81, 4}, // PERMUTE_DWORDS
414 {1, 1, 0, 0, 0, 1044, 120, 2}, // POPCNT
415 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1063, 16, 2}, // PREFETCH
416 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1084, 122, 3}, // PROBED_ALLOCA
417 {1, 1, 0, 0, 0, 1110, 80, 1}, // REPLICATE
418 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1132, 0, 0}, // RET_GLUE
419 {1, 2, 0, 0, 0, 1153, 103, 3}, // ROTATE_MASK
420 {2, 2, 0, 0, 0, 1177, 65, 4}, // SADDO
421 {1, 2, 0, 0, 0, 1195, 23, 2}, // SCMP128HI
422 {1, 2, 0, 0, 0, 1217, 38, 3}, // SDIVREM
423 {2, 3, 0|1<<SDNPHasChain, 0, 0, 1237, 41, 5}, // SEARCH_STRING
424 {1, 5, 0, 0, 0, 1263, 128, 5}, // SELECT_CCMASK
425 {1, 3, 0, 0, 0, 1289, 81, 4}, // SHL_DOUBLE
426 {1, 3, 0, 0, 0, 1312, 81, 4}, // SHL_DOUBLE_BIT
427 {1, 3, 0, 0, 0, 1339, 81, 4}, // SHR_DOUBLE_BIT
428 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1366, 45, 1}, // SIBCALL
429 {1, 2, 0, 0, 0, 1386, 38, 3}, // SMUL_LOHI
430 {1, 2, 0, 0, 0, 1408, 85, 3}, // SPLAT
431 {2, 2, 0, 0, 0, 1426, 65, 4}, // SSUBO
432 {0, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1444, 45, 1}, // STCKF
433 {1, 3, 0|1<<SDNPHasChain, 0, 0, 1462, 52, 4}, // STPCPY
434 {2, 3, 0|1<<SDNPHasChain, 0, 0, 1481, 41, 5}, // STRCMP
435 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1500, 23, 2}, // STRICT_FCMP
436 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1524, 23, 2}, // STRICT_FCMPS
437 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1549, 116, 2}, // STRICT_VEXTEND
438 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1576, 115, 3}, // STRICT_VFCMPE
439 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1602, 115, 3}, // STRICT_VFCMPES
440 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1629, 115, 3}, // STRICT_VFCMPH
441 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1655, 115, 3}, // STRICT_VFCMPHE
442 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1682, 115, 3}, // STRICT_VFCMPHES
443 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1710, 115, 3}, // STRICT_VFCMPHS
444 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1737, 116, 2}, // STRICT_VROUND
445 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1763, 136, 1}, // STRV
446 {2, 3, 0, 0, 0, 1780, 64, 5}, // SUBCARRY
447 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1801, 15, 3}, // TBEGIN
448 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1820, 15, 3}, // TBEGIN_NOFLOAT
449 {1, 2, 0, 0, 0, 1847, 25, 2}, // TDC
450 {1, 0, 0|1<<SDNPHasChain, 0, 0, 1863, 3, 1}, // TEND
451 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPVariadic, 0, 0, 1880, 45, 1}, // TLS_GDCALL
452 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPVariadic, 0, 0, 1903, 45, 1}, // TLS_LDCALL
453 {1, 3, 0, 0, 0, 1926, 22, 3}, // TM
454 {2, 2, 0, 0, 0, 1941, 65, 4}, // UADDO
455 {1, 2, 0, 0, 0, 1959, 23, 2}, // UCMP128HI
456 {1, 2, 0, 0, 0, 1981, 38, 3}, // UDIVREM
457 {1, 2, 0, 0, 0, 2001, 38, 3}, // UMUL_LOHI
458 {1, 1, 0, 0, 0, 2023, 137, 1}, // UNPACKL_HIGH
459 {1, 1, 0, 0, 0, 2048, 137, 1}, // UNPACKL_LOW
460 {1, 1, 0, 0, 0, 2072, 137, 1}, // UNPACK_HIGH
461 {1, 1, 0, 0, 0, 2096, 137, 1}, // UNPACK_LOW
462 {2, 2, 0, 0, 0, 2119, 65, 4}, // USUBO
463 {1, 3, 0, 0, 0, 2137, 60, 4}, // VAC
464 {1, 2, 0, 0, 0, 2153, 125, 3}, // VACC
465 {1, 3, 0, 0, 0, 2170, 60, 4}, // VACCC
466 {1, 1, 0, 0, 0, 2188, 116, 2}, // VEXTEND
467 {2, 3, 0, 0, 0, 2208, 98, 5}, // VFAEZ_CC
468 {2, 3, 0, 0, 0, 2229, 98, 5}, // VFAE_CC
469 {1, 2, 0, 0, 0, 2249, 115, 3}, // VFCMPE
470 {2, 2, 0, 0, 0, 2268, 107, 4}, // VFCMPES
471 {1, 2, 0, 0, 0, 2288, 115, 3}, // VFCMPH
472 {1, 2, 0, 0, 0, 2307, 115, 3}, // VFCMPHE
473 {2, 2, 0, 0, 0, 2327, 107, 4}, // VFCMPHES
474 {2, 2, 0, 0, 0, 2348, 107, 4}, // VFCMPHS
475 {2, 2, 0, 0, 0, 2368, 88, 4}, // VFEEZ_CC
476 {2, 2, 0, 0, 0, 2389, 88, 4}, // VFEE_CC
477 {2, 2, 0, 0, 0, 2409, 88, 4}, // VFENEZ_CC
478 {2, 2, 0, 0, 0, 2431, 88, 4}, // VFENE_CC
479 {2, 2, 0, 0, 0, 2452, 111, 4}, // VFTCI
480 {1, 2, 0, 0, 0, 2470, 123, 2}, // VICMPE
481 {2, 2, 0, 0, 0, 2489, 133, 3}, // VICMPES
482 {1, 2, 0, 0, 0, 2509, 123, 2}, // VICMPH
483 {1, 2, 0, 0, 0, 2528, 123, 2}, // VICMPHL
484 {2, 2, 0, 0, 0, 2548, 133, 3}, // VICMPHLS
485 {2, 2, 0, 0, 0, 2569, 133, 3}, // VICMPHS
486 {2, 1, 0, 0, 0, 2589, 89, 3}, // VISTR_CC
487 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2610, 136, 1}, // VLER
488 {1, 3, 0, 0, 0, 2627, 60, 4}, // VMAH
489 {1, 3, 0, 0, 0, 2644, 60, 4}, // VMALH
490 {1, 2, 0, 0, 0, 2662, 74, 3}, // VME
491 {1, 2, 0, 0, 0, 2678, 74, 3}, // VMLE
492 {1, 2, 0, 0, 0, 2695, 74, 3}, // VMLO
493 {1, 2, 0, 0, 0, 2712, 74, 3}, // VMO
494 {1, 2, 0, 0, 0, 2728, 85, 3}, // VROTL_BY_SCALAR
495 {1, 1, 0, 0, 0, 2756, 116, 2}, // VROUND
496 {1, 3, 0, 0, 0, 2775, 60, 4}, // VSBCBI
497 {1, 3, 0, 0, 0, 2794, 60, 4}, // VSBI
498 {1, 2, 0, 0, 0, 2811, 125, 3}, // VSCBI
499 {1, 2, 0, 0, 0, 2829, 85, 3}, // VSHL_BY_SCALAR
500 {1, 2, 0, 0, 0, 2856, 85, 3}, // VSRA_BY_SCALAR
501 {1, 2, 0, 0, 0, 2883, 85, 3}, // VSRL_BY_SCALAR
502 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2910, 136, 1}, // VSTER
503 {2, 4, 0, 0, 0, 2928, 92, 6}, // VSTRCZ_CC
504 {2, 4, 0, 0, 0, 2950, 92, 6}, // VSTRC_CC
505 {2, 3, 0, 0, 0, 2971, 106, 5}, // VSTRSZ_CC
506 {2, 3, 0, 0, 0, 2993, 106, 5}, // VSTRS_CC
507 {1, 2, 0, 0, 0, 3014, 74, 3}, // VSUM
508 {1, 2, 0, 0, 0, 3031, 23, 2}, // VTM
509 {0, 3, 0|1<<SDNPHasChain, 0, 0, 3047, 49, 3}, // XC
510};
511
512static const SDNodeInfo SystemZGenSDNodeInfo(
513 /*NumOpcodes=*/140, SystemZSDNodeDescs, SystemZSDNodeNames,
514 SystemZVTByHwModeTable, SystemZSDTypeConstraints);
515
516} // namespace llvm
517
518#endif // GET_SDNODE_DESC
519
520