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 FCMP,
40 ICMP,
41 IPM,
42 JOIN_DWORDS,
43 LRV,
44 MEMSET_MVC,
45 MERGE_HIGH,
46 MERGE_LOW,
47 MVC,
48 NC,
49 OC,
50 PACK,
51 PACKLS_CC,
52 PACKS_CC,
53 PCREL_OFFSET,
54 PCREL_WRAPPER,
55 PERMUTE,
56 PERMUTE_DWORDS,
57 POPCNT,
58 PREFETCH,
59 PROBED_ALLOCA,
60 REPLICATE,
61 RET_GLUE,
62 ROTATE_MASK,
63 SADDO,
64 SCMP128HI,
65 SDIVREM,
66 SEARCH_STRING,
67 SELECT_CCMASK,
68 SHL_DOUBLE,
69 SHL_DOUBLE_BIT,
70 SHR_DOUBLE_BIT,
71 SIBCALL,
72 SMUL_LOHI,
73 SPLAT,
74 SSUBO,
75 STCKF,
76 STPCPY,
77 STRCMP,
78 STRICT_FCMP,
79 STRICT_FCMPS,
80 STRICT_VEXTEND,
81 STRICT_VFCMPE,
82 STRICT_VFCMPES,
83 STRICT_VFCMPH,
84 STRICT_VFCMPHE,
85 STRICT_VFCMPHES,
86 STRICT_VFCMPHS,
87 STRICT_VROUND,
88 STRV,
89 SUBCARRY,
90 TBEGIN,
91 TBEGIN_NOFLOAT,
92 TDC,
93 TEND,
94 TLS_GDCALL,
95 TLS_LDCALL,
96 TM,
97 UADDO,
98 UCMP128HI,
99 UDIVREM,
100 UMUL_LOHI,
101 UNPACKL_HIGH,
102 UNPACKL_LOW,
103 UNPACK_HIGH,
104 UNPACK_LOW,
105 USUBO,
106 VAC,
107 VACC,
108 VACCC,
109 VEXTEND,
110 VFAEZ_CC,
111 VFAE_CC,
112 VFCMPE,
113 VFCMPES,
114 VFCMPH,
115 VFCMPHE,
116 VFCMPHES,
117 VFCMPHS,
118 VFEEZ_CC,
119 VFEE_CC,
120 VFENEZ_CC,
121 VFENE_CC,
122 VFTCI,
123 VICMPE,
124 VICMPES,
125 VICMPH,
126 VICMPHL,
127 VICMPHLS,
128 VICMPHS,
129 VISTR_CC,
130 VLER,
131 VMAH,
132 VMALH,
133 VME,
134 VMLE,
135 VMLO,
136 VMO,
137 VROTL_BY_SCALAR,
138 VROUND,
139 VSBCBI,
140 VSBI,
141 VSCBI,
142 VSHL_BY_SCALAR,
143 VSRA_BY_SCALAR,
144 VSRL_BY_SCALAR,
145 VSTER,
146 VSTRCZ_CC,
147 VSTRC_CC,
148 VSTRSZ_CC,
149 VSTRS_CC,
150 VSUM,
151 VTM,
152 XC,
153};
154
155static constexpr unsigned GENERATED_OPCODE_END = XC + 1;
156
157} // namespace llvm::SystemZISD
158
159#endif // GET_SDNODE_ENUM
160
161#ifdef GET_SDNODE_DESC
162#undef GET_SDNODE_DESC
163
164namespace llvm {
165
166
167#ifdef __GNUC__
168#pragma GCC diagnostic push
169#pragma GCC diagnostic ignored "-Woverlength-strings"
170#endif
171static constexpr char SystemZSDNodeNamesStorage[] =
172 "\0"
173 "SystemZISD::ADA_ENTRY\0"
174 "SystemZISD::ADDCARRY\0"
175 "SystemZISD::ADJDYNALLOC\0"
176 "SystemZISD::ATOMIC_CMP_SWAP\0"
177 "SystemZISD::ATOMIC_CMP_SWAPW\0"
178 "SystemZISD::ATOMIC_CMP_SWAP_128\0"
179 "SystemZISD::ATOMIC_LOADW_ADD\0"
180 "SystemZISD::ATOMIC_LOADW_AND\0"
181 "SystemZISD::ATOMIC_LOADW_MAX\0"
182 "SystemZISD::ATOMIC_LOADW_MIN\0"
183 "SystemZISD::ATOMIC_LOADW_NAND\0"
184 "SystemZISD::ATOMIC_LOADW_OR\0"
185 "SystemZISD::ATOMIC_LOADW_SUB\0"
186 "SystemZISD::ATOMIC_LOADW_UMAX\0"
187 "SystemZISD::ATOMIC_LOADW_UMIN\0"
188 "SystemZISD::ATOMIC_LOADW_XOR\0"
189 "SystemZISD::ATOMIC_LOAD_128\0"
190 "SystemZISD::ATOMIC_STORE_128\0"
191 "SystemZISD::ATOMIC_SWAPW\0"
192 "SystemZISD::BR_CCMASK\0"
193 "SystemZISD::BYTE_MASK\0"
194 "SystemZISD::CALL\0"
195 "SystemZISD::CLC\0"
196 "SystemZISD::FCMP\0"
197 "SystemZISD::ICMP\0"
198 "SystemZISD::IPM\0"
199 "SystemZISD::JOIN_DWORDS\0"
200 "SystemZISD::LRV\0"
201 "SystemZISD::MEMSET_MVC\0"
202 "SystemZISD::MERGE_HIGH\0"
203 "SystemZISD::MERGE_LOW\0"
204 "SystemZISD::MVC\0"
205 "SystemZISD::NC\0"
206 "SystemZISD::OC\0"
207 "SystemZISD::PACK\0"
208 "SystemZISD::PACKLS_CC\0"
209 "SystemZISD::PACKS_CC\0"
210 "SystemZISD::PCREL_OFFSET\0"
211 "SystemZISD::PCREL_WRAPPER\0"
212 "SystemZISD::PERMUTE\0"
213 "SystemZISD::PERMUTE_DWORDS\0"
214 "SystemZISD::POPCNT\0"
215 "SystemZISD::PREFETCH\0"
216 "SystemZISD::PROBED_ALLOCA\0"
217 "SystemZISD::REPLICATE\0"
218 "SystemZISD::RET_GLUE\0"
219 "SystemZISD::ROTATE_MASK\0"
220 "SystemZISD::SADDO\0"
221 "SystemZISD::SCMP128HI\0"
222 "SystemZISD::SDIVREM\0"
223 "SystemZISD::SEARCH_STRING\0"
224 "SystemZISD::SELECT_CCMASK\0"
225 "SystemZISD::SHL_DOUBLE\0"
226 "SystemZISD::SHL_DOUBLE_BIT\0"
227 "SystemZISD::SHR_DOUBLE_BIT\0"
228 "SystemZISD::SIBCALL\0"
229 "SystemZISD::SMUL_LOHI\0"
230 "SystemZISD::SPLAT\0"
231 "SystemZISD::SSUBO\0"
232 "SystemZISD::STCKF\0"
233 "SystemZISD::STPCPY\0"
234 "SystemZISD::STRCMP\0"
235 "SystemZISD::STRICT_FCMP\0"
236 "SystemZISD::STRICT_FCMPS\0"
237 "SystemZISD::STRICT_VEXTEND\0"
238 "SystemZISD::STRICT_VFCMPE\0"
239 "SystemZISD::STRICT_VFCMPES\0"
240 "SystemZISD::STRICT_VFCMPH\0"
241 "SystemZISD::STRICT_VFCMPHE\0"
242 "SystemZISD::STRICT_VFCMPHES\0"
243 "SystemZISD::STRICT_VFCMPHS\0"
244 "SystemZISD::STRICT_VROUND\0"
245 "SystemZISD::STRV\0"
246 "SystemZISD::SUBCARRY\0"
247 "SystemZISD::TBEGIN\0"
248 "SystemZISD::TBEGIN_NOFLOAT\0"
249 "SystemZISD::TDC\0"
250 "SystemZISD::TEND\0"
251 "SystemZISD::TLS_GDCALL\0"
252 "SystemZISD::TLS_LDCALL\0"
253 "SystemZISD::TM\0"
254 "SystemZISD::UADDO\0"
255 "SystemZISD::UCMP128HI\0"
256 "SystemZISD::UDIVREM\0"
257 "SystemZISD::UMUL_LOHI\0"
258 "SystemZISD::UNPACKL_HIGH\0"
259 "SystemZISD::UNPACKL_LOW\0"
260 "SystemZISD::UNPACK_HIGH\0"
261 "SystemZISD::UNPACK_LOW\0"
262 "SystemZISD::USUBO\0"
263 "SystemZISD::VAC\0"
264 "SystemZISD::VACC\0"
265 "SystemZISD::VACCC\0"
266 "SystemZISD::VEXTEND\0"
267 "SystemZISD::VFAEZ_CC\0"
268 "SystemZISD::VFAE_CC\0"
269 "SystemZISD::VFCMPE\0"
270 "SystemZISD::VFCMPES\0"
271 "SystemZISD::VFCMPH\0"
272 "SystemZISD::VFCMPHE\0"
273 "SystemZISD::VFCMPHES\0"
274 "SystemZISD::VFCMPHS\0"
275 "SystemZISD::VFEEZ_CC\0"
276 "SystemZISD::VFEE_CC\0"
277 "SystemZISD::VFENEZ_CC\0"
278 "SystemZISD::VFENE_CC\0"
279 "SystemZISD::VFTCI\0"
280 "SystemZISD::VICMPE\0"
281 "SystemZISD::VICMPES\0"
282 "SystemZISD::VICMPH\0"
283 "SystemZISD::VICMPHL\0"
284 "SystemZISD::VICMPHLS\0"
285 "SystemZISD::VICMPHS\0"
286 "SystemZISD::VISTR_CC\0"
287 "SystemZISD::VLER\0"
288 "SystemZISD::VMAH\0"
289 "SystemZISD::VMALH\0"
290 "SystemZISD::VME\0"
291 "SystemZISD::VMLE\0"
292 "SystemZISD::VMLO\0"
293 "SystemZISD::VMO\0"
294 "SystemZISD::VROTL_BY_SCALAR\0"
295 "SystemZISD::VROUND\0"
296 "SystemZISD::VSBCBI\0"
297 "SystemZISD::VSBI\0"
298 "SystemZISD::VSCBI\0"
299 "SystemZISD::VSHL_BY_SCALAR\0"
300 "SystemZISD::VSRA_BY_SCALAR\0"
301 "SystemZISD::VSRL_BY_SCALAR\0"
302 "SystemZISD::VSTER\0"
303 "SystemZISD::VSTRCZ_CC\0"
304 "SystemZISD::VSTRC_CC\0"
305 "SystemZISD::VSTRSZ_CC\0"
306 "SystemZISD::VSTRS_CC\0"
307 "SystemZISD::VSUM\0"
308 "SystemZISD::VTM\0"
309 "SystemZISD::XC\0"
310 ;
311#ifdef __GNUC__
312#pragma GCC diagnostic pop
313#endif
314
315static constexpr llvm::StringTable
316SystemZSDNodeNames = SystemZSDNodeNamesStorage;
317
318static const VTByHwModePair SystemZVTByHwModeTable[] = {
319 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
320};
321
322static const SDTypeConstraint SystemZSDTypeConstraints[] = {
323 /* 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},
324 /* 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},
325 /* 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},
326 /* 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},
327 /* 22 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::i32},
328 /* 25 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::i32},
329 /* 27 */ {SDTCisVT, 0, 0, 0, MVT::i64},
330 /* 28 */ {SDTCisVT, 2, 0, 0, MVT::i64}, {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisVT, 0, 0, 0, MVT::v2i64},
331 /* 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},
332 /* 36 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::Untyped},
333 /* 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},
334 /* 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},
335 /* 46 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i64}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
336 /* 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},
337 /* 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},
338 /* 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},
339 /* 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},
340 /* 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},
341 /* 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},
342 /* 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},
343 /* 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},
344 /* 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},
345 /* 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},
346 /* 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},
347 /* 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},
348 /* 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},
349 /* 103 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
350 /* 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},
351 /* 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},
352 /* 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},
353 /* 118 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
354 /* 120 */ {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
355 /* 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},
356 /* 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},
357 /* 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},
358 /* 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},
359 /* 136 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
360 /* 137 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
361};
362
363static const SDNodeDesc SystemZSDNodeDescs[] = {
364 {1, 3, 0, 0, 0, 1, 56, 4}, // ADA_ENTRY
365 {2, 3, 0, 0, 0, 23, 64, 5}, // ADDCARRY
366 {1, 0, 0, 0, 0, 44, 27, 1}, // ADJDYNALLOC
367 {2, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 68, 69, 5}, // ATOMIC_CMP_SWAP
368 {2, 6, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 96, 4, 8}, // ATOMIC_CMP_SWAPW
369 {2, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 125, 31, 5}, // ATOMIC_CMP_SWAP_128
370 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 157, 12, 6}, // ATOMIC_LOADW_ADD
371 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 186, 12, 6}, // ATOMIC_LOADW_AND
372 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 215, 12, 6}, // ATOMIC_LOADW_MAX
373 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 244, 12, 6}, // ATOMIC_LOADW_MIN
374 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 273, 12, 6}, // ATOMIC_LOADW_NAND
375 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 303, 12, 6}, // ATOMIC_LOADW_OR
376 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 331, 12, 6}, // ATOMIC_LOADW_SUB
377 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 360, 12, 6}, // ATOMIC_LOADW_UMAX
378 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 390, 12, 6}, // ATOMIC_LOADW_UMIN
379 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 420, 12, 6}, // ATOMIC_LOADW_XOR
380 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 449, 36, 2}, // ATOMIC_LOAD_128
381 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 477, 36, 2}, // ATOMIC_STORE_128
382 {1, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 506, 12, 6}, // ATOMIC_SWAPW
383 {0, 4, 0|1<<SDNPHasChain, 0, 0, 531, 0, 4}, // BR_CCMASK
384 {1, 1, 0, 0, 0, 553, 80, 1}, // BYTE_MASK
385 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 575, 45, 1}, // CALL
386 {1, 3, 0|1<<SDNPHasChain, 0, 0, 592, 18, 4}, // CLC
387 {1, 2, 0, 0, 0, 608, 23, 2}, // FCMP
388 {1, 3, 0, 0, 0, 625, 22, 3}, // ICMP
389 {1, 1, 0, 0, 0, 642, 2, 2}, // IPM
390 {1, 2, 0, 0, 0, 658, 28, 3}, // JOIN_DWORDS
391 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 682, 136, 1}, // LRV
392 {0, 3, 0|1<<SDNPHasChain, 0, 0, 698, 46, 3}, // MEMSET_MVC
393 {1, 2, 0, 0, 0, 721, 78, 3}, // MERGE_HIGH
394 {1, 2, 0, 0, 0, 744, 78, 3}, // MERGE_LOW
395 {0, 3, 0|1<<SDNPHasChain, 0, 0, 766, 49, 3}, // MVC
396 {0, 3, 0|1<<SDNPHasChain, 0, 0, 782, 49, 3}, // NC
397 {0, 3, 0|1<<SDNPHasChain, 0, 0, 797, 49, 3}, // OC
398 {1, 2, 0, 0, 0, 812, 115, 3}, // PACK
399 {2, 2, 0, 0, 0, 829, 107, 4}, // PACKLS_CC
400 {2, 2, 0, 0, 0, 851, 107, 4}, // PACKS_CC
401 {1, 2, 0, 0, 0, 872, 122, 3}, // PCREL_OFFSET
402 {1, 1, 0, 0, 0, 897, 118, 2}, // PCREL_WRAPPER
403 {1, 3, 0, 0, 0, 923, 77, 4}, // PERMUTE
404 {1, 3, 0, 0, 0, 943, 81, 4}, // PERMUTE_DWORDS
405 {1, 1, 0, 0, 0, 970, 120, 2}, // POPCNT
406 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 989, 16, 2}, // PREFETCH
407 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1010, 122, 3}, // PROBED_ALLOCA
408 {1, 1, 0, 0, 0, 1036, 80, 1}, // REPLICATE
409 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1058, 0, 0}, // RET_GLUE
410 {1, 2, 0, 0, 0, 1079, 103, 3}, // ROTATE_MASK
411 {2, 2, 0, 0, 0, 1103, 65, 4}, // SADDO
412 {1, 2, 0, 0, 0, 1121, 23, 2}, // SCMP128HI
413 {1, 2, 0, 0, 0, 1143, 38, 3}, // SDIVREM
414 {2, 3, 0|1<<SDNPHasChain, 0, 0, 1163, 41, 5}, // SEARCH_STRING
415 {1, 5, 0, 0, 0, 1189, 128, 5}, // SELECT_CCMASK
416 {1, 3, 0, 0, 0, 1215, 81, 4}, // SHL_DOUBLE
417 {1, 3, 0, 0, 0, 1238, 81, 4}, // SHL_DOUBLE_BIT
418 {1, 3, 0, 0, 0, 1265, 81, 4}, // SHR_DOUBLE_BIT
419 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1292, 45, 1}, // SIBCALL
420 {1, 2, 0, 0, 0, 1312, 38, 3}, // SMUL_LOHI
421 {1, 2, 0, 0, 0, 1334, 85, 3}, // SPLAT
422 {2, 2, 0, 0, 0, 1352, 65, 4}, // SSUBO
423 {0, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1370, 45, 1}, // STCKF
424 {1, 3, 0|1<<SDNPHasChain, 0, 0, 1388, 52, 4}, // STPCPY
425 {2, 3, 0|1<<SDNPHasChain, 0, 0, 1407, 41, 5}, // STRCMP
426 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1426, 23, 2}, // STRICT_FCMP
427 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1450, 23, 2}, // STRICT_FCMPS
428 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1475, 116, 2}, // STRICT_VEXTEND
429 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1502, 115, 3}, // STRICT_VFCMPE
430 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1528, 115, 3}, // STRICT_VFCMPES
431 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1555, 115, 3}, // STRICT_VFCMPH
432 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1581, 115, 3}, // STRICT_VFCMPHE
433 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1608, 115, 3}, // STRICT_VFCMPHES
434 {1, 2, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1636, 115, 3}, // STRICT_VFCMPHS
435 {1, 1, 0|1<<SDNPHasChain, 0|1<<SDNFIsStrictFP, 0, 1663, 116, 2}, // STRICT_VROUND
436 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1689, 136, 1}, // STRV
437 {2, 3, 0, 0, 0, 1706, 64, 5}, // SUBCARRY
438 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1727, 15, 3}, // TBEGIN
439 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1746, 15, 3}, // TBEGIN_NOFLOAT
440 {1, 2, 0, 0, 0, 1773, 25, 2}, // TDC
441 {1, 0, 0|1<<SDNPHasChain, 0, 0, 1789, 3, 1}, // TEND
442 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPVariadic, 0, 0, 1806, 45, 1}, // TLS_GDCALL
443 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPInGlue|1<<SDNPVariadic, 0, 0, 1829, 45, 1}, // TLS_LDCALL
444 {1, 3, 0, 0, 0, 1852, 22, 3}, // TM
445 {2, 2, 0, 0, 0, 1867, 65, 4}, // UADDO
446 {1, 2, 0, 0, 0, 1885, 23, 2}, // UCMP128HI
447 {1, 2, 0, 0, 0, 1907, 38, 3}, // UDIVREM
448 {1, 2, 0, 0, 0, 1927, 38, 3}, // UMUL_LOHI
449 {1, 1, 0, 0, 0, 1949, 137, 1}, // UNPACKL_HIGH
450 {1, 1, 0, 0, 0, 1974, 137, 1}, // UNPACKL_LOW
451 {1, 1, 0, 0, 0, 1998, 137, 1}, // UNPACK_HIGH
452 {1, 1, 0, 0, 0, 2022, 137, 1}, // UNPACK_LOW
453 {2, 2, 0, 0, 0, 2045, 65, 4}, // USUBO
454 {1, 3, 0, 0, 0, 2063, 60, 4}, // VAC
455 {1, 2, 0, 0, 0, 2079, 125, 3}, // VACC
456 {1, 3, 0, 0, 0, 2096, 60, 4}, // VACCC
457 {1, 1, 0, 0, 0, 2114, 116, 2}, // VEXTEND
458 {2, 3, 0, 0, 0, 2134, 98, 5}, // VFAEZ_CC
459 {2, 3, 0, 0, 0, 2155, 98, 5}, // VFAE_CC
460 {1, 2, 0, 0, 0, 2175, 115, 3}, // VFCMPE
461 {2, 2, 0, 0, 0, 2194, 107, 4}, // VFCMPES
462 {1, 2, 0, 0, 0, 2214, 115, 3}, // VFCMPH
463 {1, 2, 0, 0, 0, 2233, 115, 3}, // VFCMPHE
464 {2, 2, 0, 0, 0, 2253, 107, 4}, // VFCMPHES
465 {2, 2, 0, 0, 0, 2274, 107, 4}, // VFCMPHS
466 {2, 2, 0, 0, 0, 2294, 88, 4}, // VFEEZ_CC
467 {2, 2, 0, 0, 0, 2315, 88, 4}, // VFEE_CC
468 {2, 2, 0, 0, 0, 2335, 88, 4}, // VFENEZ_CC
469 {2, 2, 0, 0, 0, 2357, 88, 4}, // VFENE_CC
470 {2, 2, 0, 0, 0, 2378, 111, 4}, // VFTCI
471 {1, 2, 0, 0, 0, 2396, 123, 2}, // VICMPE
472 {2, 2, 0, 0, 0, 2415, 133, 3}, // VICMPES
473 {1, 2, 0, 0, 0, 2435, 123, 2}, // VICMPH
474 {1, 2, 0, 0, 0, 2454, 123, 2}, // VICMPHL
475 {2, 2, 0, 0, 0, 2474, 133, 3}, // VICMPHLS
476 {2, 2, 0, 0, 0, 2495, 133, 3}, // VICMPHS
477 {2, 1, 0, 0, 0, 2515, 89, 3}, // VISTR_CC
478 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2536, 136, 1}, // VLER
479 {1, 3, 0, 0, 0, 2553, 60, 4}, // VMAH
480 {1, 3, 0, 0, 0, 2570, 60, 4}, // VMALH
481 {1, 2, 0, 0, 0, 2588, 74, 3}, // VME
482 {1, 2, 0, 0, 0, 2604, 74, 3}, // VMLE
483 {1, 2, 0, 0, 0, 2621, 74, 3}, // VMLO
484 {1, 2, 0, 0, 0, 2638, 74, 3}, // VMO
485 {1, 2, 0, 0, 0, 2654, 85, 3}, // VROTL_BY_SCALAR
486 {1, 1, 0, 0, 0, 2682, 116, 2}, // VROUND
487 {1, 3, 0, 0, 0, 2701, 60, 4}, // VSBCBI
488 {1, 3, 0, 0, 0, 2720, 60, 4}, // VSBI
489 {1, 2, 0, 0, 0, 2737, 125, 3}, // VSCBI
490 {1, 2, 0, 0, 0, 2755, 85, 3}, // VSHL_BY_SCALAR
491 {1, 2, 0, 0, 0, 2782, 85, 3}, // VSRA_BY_SCALAR
492 {1, 2, 0, 0, 0, 2809, 85, 3}, // VSRL_BY_SCALAR
493 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2836, 136, 1}, // VSTER
494 {2, 4, 0, 0, 0, 2854, 92, 6}, // VSTRCZ_CC
495 {2, 4, 0, 0, 0, 2876, 92, 6}, // VSTRC_CC
496 {2, 3, 0, 0, 0, 2897, 106, 5}, // VSTRSZ_CC
497 {2, 3, 0, 0, 0, 2919, 106, 5}, // VSTRS_CC
498 {1, 2, 0, 0, 0, 2940, 74, 3}, // VSUM
499 {1, 2, 0, 0, 0, 2957, 23, 2}, // VTM
500 {0, 3, 0|1<<SDNPHasChain, 0, 0, 2973, 49, 3}, // XC
501};
502
503static const SDNodeInfo SystemZGenSDNodeInfo(
504 /*NumOpcodes=*/137, SystemZSDNodeDescs, SystemZSDNodeNames,
505 SystemZVTByHwModeTable, SystemZSDTypeConstraints);
506
507} // namespace llvm
508
509#endif // GET_SDNODE_DESC
510
511