1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: AMDGPU.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::AMDGPUISD {
14
15enum GenNodeType : unsigned {
16 ATOMIC_CMP_SWAP = ISD::BUILTIN_OP_END,
17 BFE_I32,
18 BFE_U32,
19 BFI,
20 BORROW,
21 BRANCH_COND,
22 BUFFER_ATOMIC_ADD,
23 BUFFER_ATOMIC_AND,
24 BUFFER_ATOMIC_CMPSWAP,
25 BUFFER_ATOMIC_COND_SUB_U32,
26 BUFFER_ATOMIC_CSUB,
27 BUFFER_ATOMIC_DEC,
28 BUFFER_ATOMIC_FADD,
29 BUFFER_ATOMIC_FMAX,
30 BUFFER_ATOMIC_FMIN,
31 BUFFER_ATOMIC_INC,
32 BUFFER_ATOMIC_OR,
33 BUFFER_ATOMIC_SMAX,
34 BUFFER_ATOMIC_SMIN,
35 BUFFER_ATOMIC_SUB,
36 BUFFER_ATOMIC_SWAP,
37 BUFFER_ATOMIC_UMAX,
38 BUFFER_ATOMIC_UMIN,
39 BUFFER_ATOMIC_XOR,
40 BUFFER_LOAD,
41 BUFFER_LOAD_BYTE,
42 BUFFER_LOAD_BYTE_TFE,
43 BUFFER_LOAD_FORMAT,
44 BUFFER_LOAD_FORMAT_D16,
45 BUFFER_LOAD_FORMAT_TFE,
46 BUFFER_LOAD_SHORT,
47 BUFFER_LOAD_SHORT_TFE,
48 BUFFER_LOAD_TFE,
49 BUFFER_LOAD_UBYTE,
50 BUFFER_LOAD_UBYTE_TFE,
51 BUFFER_LOAD_USHORT,
52 BUFFER_LOAD_USHORT_TFE,
53 BUFFER_STORE,
54 BUFFER_STORE_BYTE,
55 BUFFER_STORE_FORMAT,
56 BUFFER_STORE_FORMAT_D16,
57 BUFFER_STORE_SHORT,
58 CALL,
59 CARRY,
60 CLAMP,
61 CONST_DATA_PTR,
62 COS_HW,
63 CVT_F32_UBYTE0,
64 CVT_F32_UBYTE1,
65 CVT_F32_UBYTE2,
66 CVT_F32_UBYTE3,
67 CVT_PKNORM_I16_F32,
68 CVT_PKNORM_U16_F32,
69 CVT_PKRTZ_F16_F32,
70 CVT_PK_I16_I32,
71 CVT_PK_U16_U32,
72 DENORM_MODE,
73 DIV_FIXUP,
74 DIV_FMAS,
75 DIV_SCALE,
76 DS_ORDERED_COUNT,
77 DWORDADDR,
78 ELSE,
79 ENDPGM,
80 ENDPGM_TRAP,
81 EXP,
82 FDOT2,
83 FFBH_U32,
84 FFBL_B32,
85 FLAT_LOAD_MONITOR,
86 FMAD_FTZ,
87 FMAX3,
88 FMAXIMUM3,
89 FMAX_LEGACY,
90 FMA_W_CHAIN,
91 FMED3,
92 FMIN3,
93 FMINIMUM3,
94 FMIN_LEGACY,
95 FMUL_LEGACY,
96 FMUL_W_CHAIN,
97 FP_CLASS,
98 FP_TO_FP16,
99 FRACT,
100 GLOBAL_LOAD_MONITOR,
101 IF,
102 LDS,
103 LOAD_D16_HI,
104 LOAD_D16_HI_I8,
105 LOAD_D16_HI_U8,
106 LOAD_D16_LO,
107 LOAD_D16_LO_I8,
108 LOAD_D16_LO_U8,
109 LOG,
110 LOOP,
111 MAD_I24,
112 MAD_U24,
113 MULHI_I24,
114 MULHI_U24,
115 MUL_I24,
116 MUL_U24,
117 PC_ADD_REL_OFFSET,
118 PC_ADD_REL_OFFSET64,
119 PERM,
120 RCP,
121 RCP_IFLAG,
122 RCP_LEGACY,
123 REGISTER_LOAD,
124 REGISTER_STORE,
125 RETURN_TO_EPILOG,
126 RET_GLUE,
127 RSQ,
128 RSQ_CLAMP,
129 SBUFFER_LOAD,
130 SBUFFER_LOAD_BYTE,
131 SBUFFER_LOAD_SHORT,
132 SBUFFER_LOAD_UBYTE,
133 SBUFFER_LOAD_USHORT,
134 SBUFFER_PREFETCH_DATA,
135 SETCC,
136 SIMULATED_TRAP,
137 SIN_HW,
138 SMAX3,
139 SMED3,
140 SMIN3,
141 STORE_MSKOR,
142 TBUFFER_LOAD_FORMAT,
143 TBUFFER_LOAD_FORMAT_D16,
144 TBUFFER_STORE_FORMAT,
145 TBUFFER_STORE_FORMAT_D16,
146 TC_RETURN,
147 TC_RETURN_CHAIN,
148 TC_RETURN_CHAIN_DVGPR,
149 TC_RETURN_GFX,
150 TC_RETURN_GFX_WholeWave,
151 TRAP,
152 UMAX3,
153 UMED3,
154 UMIN3,
155 URECIP,
156 WHOLE_WAVE_RETURN,
157 WHOLE_WAVE_SETUP,
158};
159
160static constexpr unsigned GENERATED_OPCODE_END = WHOLE_WAVE_SETUP + 1;
161
162} // namespace llvm::AMDGPUISD
163
164#endif // GET_SDNODE_ENUM
165
166#ifdef GET_SDNODE_DESC
167#undef GET_SDNODE_DESC
168
169namespace llvm {
170
171
172#ifdef __GNUC__
173#pragma GCC diagnostic push
174#pragma GCC diagnostic ignored "-Woverlength-strings"
175#endif
176static constexpr char AMDGPUSDNodeNamesStorage[] =
177 "\0"
178 "AMDGPUISD::ATOMIC_CMP_SWAP\0"
179 "AMDGPUISD::BFE_I32\0"
180 "AMDGPUISD::BFE_U32\0"
181 "AMDGPUISD::BFI\0"
182 "AMDGPUISD::BORROW\0"
183 "AMDGPUISD::BRANCH_COND\0"
184 "AMDGPUISD::BUFFER_ATOMIC_ADD\0"
185 "AMDGPUISD::BUFFER_ATOMIC_AND\0"
186 "AMDGPUISD::BUFFER_ATOMIC_CMPSWAP\0"
187 "AMDGPUISD::BUFFER_ATOMIC_COND_SUB_U32\0"
188 "AMDGPUISD::BUFFER_ATOMIC_CSUB\0"
189 "AMDGPUISD::BUFFER_ATOMIC_DEC\0"
190 "AMDGPUISD::BUFFER_ATOMIC_FADD\0"
191 "AMDGPUISD::BUFFER_ATOMIC_FMAX\0"
192 "AMDGPUISD::BUFFER_ATOMIC_FMIN\0"
193 "AMDGPUISD::BUFFER_ATOMIC_INC\0"
194 "AMDGPUISD::BUFFER_ATOMIC_OR\0"
195 "AMDGPUISD::BUFFER_ATOMIC_SMAX\0"
196 "AMDGPUISD::BUFFER_ATOMIC_SMIN\0"
197 "AMDGPUISD::BUFFER_ATOMIC_SUB\0"
198 "AMDGPUISD::BUFFER_ATOMIC_SWAP\0"
199 "AMDGPUISD::BUFFER_ATOMIC_UMAX\0"
200 "AMDGPUISD::BUFFER_ATOMIC_UMIN\0"
201 "AMDGPUISD::BUFFER_ATOMIC_XOR\0"
202 "AMDGPUISD::BUFFER_LOAD\0"
203 "AMDGPUISD::BUFFER_LOAD_BYTE\0"
204 "AMDGPUISD::BUFFER_LOAD_BYTE_TFE\0"
205 "AMDGPUISD::BUFFER_LOAD_FORMAT\0"
206 "AMDGPUISD::BUFFER_LOAD_FORMAT_D16\0"
207 "AMDGPUISD::BUFFER_LOAD_FORMAT_TFE\0"
208 "AMDGPUISD::BUFFER_LOAD_SHORT\0"
209 "AMDGPUISD::BUFFER_LOAD_SHORT_TFE\0"
210 "AMDGPUISD::BUFFER_LOAD_TFE\0"
211 "AMDGPUISD::BUFFER_LOAD_UBYTE\0"
212 "AMDGPUISD::BUFFER_LOAD_UBYTE_TFE\0"
213 "AMDGPUISD::BUFFER_LOAD_USHORT\0"
214 "AMDGPUISD::BUFFER_LOAD_USHORT_TFE\0"
215 "AMDGPUISD::BUFFER_STORE\0"
216 "AMDGPUISD::BUFFER_STORE_BYTE\0"
217 "AMDGPUISD::BUFFER_STORE_FORMAT\0"
218 "AMDGPUISD::BUFFER_STORE_FORMAT_D16\0"
219 "AMDGPUISD::BUFFER_STORE_SHORT\0"
220 "AMDGPUISD::CALL\0"
221 "AMDGPUISD::CARRY\0"
222 "AMDGPUISD::CLAMP\0"
223 "AMDGPUISD::CONST_DATA_PTR\0"
224 "AMDGPUISD::COS_HW\0"
225 "AMDGPUISD::CVT_F32_UBYTE0\0"
226 "AMDGPUISD::CVT_F32_UBYTE1\0"
227 "AMDGPUISD::CVT_F32_UBYTE2\0"
228 "AMDGPUISD::CVT_F32_UBYTE3\0"
229 "AMDGPUISD::CVT_PKNORM_I16_F32\0"
230 "AMDGPUISD::CVT_PKNORM_U16_F32\0"
231 "AMDGPUISD::CVT_PKRTZ_F16_F32\0"
232 "AMDGPUISD::CVT_PK_I16_I32\0"
233 "AMDGPUISD::CVT_PK_U16_U32\0"
234 "AMDGPUISD::DENORM_MODE\0"
235 "AMDGPUISD::DIV_FIXUP\0"
236 "AMDGPUISD::DIV_FMAS\0"
237 "AMDGPUISD::DIV_SCALE\0"
238 "AMDGPUISD::DS_ORDERED_COUNT\0"
239 "AMDGPUISD::DWORDADDR\0"
240 "AMDGPUISD::ELSE\0"
241 "AMDGPUISD::ENDPGM\0"
242 "AMDGPUISD::ENDPGM_TRAP\0"
243 "AMDGPUISD::EXP\0"
244 "AMDGPUISD::FDOT2\0"
245 "AMDGPUISD::FFBH_U32\0"
246 "AMDGPUISD::FFBL_B32\0"
247 "AMDGPUISD::FLAT_LOAD_MONITOR\0"
248 "AMDGPUISD::FMAD_FTZ\0"
249 "AMDGPUISD::FMAX3\0"
250 "AMDGPUISD::FMAXIMUM3\0"
251 "AMDGPUISD::FMAX_LEGACY\0"
252 "AMDGPUISD::FMA_W_CHAIN\0"
253 "AMDGPUISD::FMED3\0"
254 "AMDGPUISD::FMIN3\0"
255 "AMDGPUISD::FMINIMUM3\0"
256 "AMDGPUISD::FMIN_LEGACY\0"
257 "AMDGPUISD::FMUL_LEGACY\0"
258 "AMDGPUISD::FMUL_W_CHAIN\0"
259 "AMDGPUISD::FP_CLASS\0"
260 "AMDGPUISD::FP_TO_FP16\0"
261 "AMDGPUISD::FRACT\0"
262 "AMDGPUISD::GLOBAL_LOAD_MONITOR\0"
263 "AMDGPUISD::IF\0"
264 "AMDGPUISD::LDS\0"
265 "AMDGPUISD::LOAD_D16_HI\0"
266 "AMDGPUISD::LOAD_D16_HI_I8\0"
267 "AMDGPUISD::LOAD_D16_HI_U8\0"
268 "AMDGPUISD::LOAD_D16_LO\0"
269 "AMDGPUISD::LOAD_D16_LO_I8\0"
270 "AMDGPUISD::LOAD_D16_LO_U8\0"
271 "AMDGPUISD::LOG\0"
272 "AMDGPUISD::LOOP\0"
273 "AMDGPUISD::MAD_I24\0"
274 "AMDGPUISD::MAD_U24\0"
275 "AMDGPUISD::MULHI_I24\0"
276 "AMDGPUISD::MULHI_U24\0"
277 "AMDGPUISD::MUL_I24\0"
278 "AMDGPUISD::MUL_U24\0"
279 "AMDGPUISD::PC_ADD_REL_OFFSET\0"
280 "AMDGPUISD::PC_ADD_REL_OFFSET64\0"
281 "AMDGPUISD::PERM\0"
282 "AMDGPUISD::RCP\0"
283 "AMDGPUISD::RCP_IFLAG\0"
284 "AMDGPUISD::RCP_LEGACY\0"
285 "AMDGPUISD::REGISTER_LOAD\0"
286 "AMDGPUISD::REGISTER_STORE\0"
287 "AMDGPUISD::RETURN_TO_EPILOG\0"
288 "AMDGPUISD::RET_GLUE\0"
289 "AMDGPUISD::RSQ\0"
290 "AMDGPUISD::RSQ_CLAMP\0"
291 "AMDGPUISD::SBUFFER_LOAD\0"
292 "AMDGPUISD::SBUFFER_LOAD_BYTE\0"
293 "AMDGPUISD::SBUFFER_LOAD_SHORT\0"
294 "AMDGPUISD::SBUFFER_LOAD_UBYTE\0"
295 "AMDGPUISD::SBUFFER_LOAD_USHORT\0"
296 "AMDGPUISD::SBUFFER_PREFETCH_DATA\0"
297 "AMDGPUISD::SETCC\0"
298 "AMDGPUISD::SIMULATED_TRAP\0"
299 "AMDGPUISD::SIN_HW\0"
300 "AMDGPUISD::SMAX3\0"
301 "AMDGPUISD::SMED3\0"
302 "AMDGPUISD::SMIN3\0"
303 "AMDGPUISD::STORE_MSKOR\0"
304 "AMDGPUISD::TBUFFER_LOAD_FORMAT\0"
305 "AMDGPUISD::TBUFFER_LOAD_FORMAT_D16\0"
306 "AMDGPUISD::TBUFFER_STORE_FORMAT\0"
307 "AMDGPUISD::TBUFFER_STORE_FORMAT_D16\0"
308 "AMDGPUISD::TC_RETURN\0"
309 "AMDGPUISD::TC_RETURN_CHAIN\0"
310 "AMDGPUISD::TC_RETURN_CHAIN_DVGPR\0"
311 "AMDGPUISD::TC_RETURN_GFX\0"
312 "AMDGPUISD::TC_RETURN_GFX_WholeWave\0"
313 "AMDGPUISD::TRAP\0"
314 "AMDGPUISD::UMAX3\0"
315 "AMDGPUISD::UMED3\0"
316 "AMDGPUISD::UMIN3\0"
317 "AMDGPUISD::URECIP\0"
318 "AMDGPUISD::WHOLE_WAVE_RETURN\0"
319 "AMDGPUISD::WHOLE_WAVE_SETUP\0"
320 ;
321#ifdef __GNUC__
322#pragma GCC diagnostic pop
323#endif
324
325static constexpr llvm::StringTable
326AMDGPUSDNodeNames = AMDGPUSDNodeNamesStorage;
327
328static const VTByHwModePair AMDGPUVTByHwModeTable[] = {
329 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
330};
331
332static const SDTypeConstraint AMDGPUSDTypeConstraints[] = {
333 /* 0 */ {SDTCisVT, 0, 0, 0, MVT::Other},
334 /* 1 */ {SDTCisVT, 1, 0, 0, MVT::Other}, {SDTCisVT, 0, 0, 0, MVT::i1},
335 /* 3 */ {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisVT, 1, 0, 0, MVT::i1}, {SDTCisVT, 0, 0, 0, MVT::i1},
336 /* 6 */ {SDTCisVT, 0, 0, 0, MVT::i16},
337 /* 7 */ {SDTCisVT, 2, 0, 0, MVT::i16}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
338 /* 10 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::v4i32},
339 /* 13 */ {SDTCisVT, 0, 0, 0, MVT::iPTR}, {SDTCisVT, 0, 0, 0, MVT::iPTR},
340 /* 15 */ {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::iPTR},
341 /* 18 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
342 /* 19 */ {SDTCisSameNumEltsAs, 0, 1, 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 /* 22 */ {SDTCisSameNumEltsAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
344 /* 25 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
345 /* 28 */ {SDTCisVT, 3, 0, 0, MVT::Other}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
346 /* 31 */ {SDTCisInt, 4, 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}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
347 /* 36 */ {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}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
348 /* 41 */ {SDTCisSameNumEltsAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
349 /* 44 */ {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
350 /* 46 */ {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
351 /* 48 */ {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {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},
352 /* 52 */ {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},
353 /* 55 */ {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},
354 /* 59 */ {SDTCisInt, 4, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
355 /* 64 */ {SDTCisVT, 7, 0, 0, MVT::i1}, {SDTCisVT, 6, 0, 0, MVT::i32}, {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::v4i32},
356 /* 71 */ {SDTCisVT, 8, 0, 0, MVT::i1}, {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}, {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::v4i32},
357 /* 79 */ {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
358 /* 81 */ {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
359 /* 83 */ {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
360 /* 85 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
361 /* 87 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
362 /* 89 */ {SDTCisVT, 8, 0, 0, MVT::i1}, {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}, {SDTCisVT, 2, 0, 0, MVT::v4i32},
363 /* 96 */ {SDTCisVT, 9, 0, 0, MVT::i1}, {SDTCisVT, 8, 0, 0, MVT::i32}, {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::v4i32},
364};
365
366static const SDNodeDesc AMDGPUSDNodeDescs[] = {
367 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1, 83, 2}, // ATOMIC_CMP_SWAP
368 {1, 3, 0, 0, 0, 28, 48, 4}, // BFE_I32
369 {1, 3, 0, 0, 0, 47, 48, 4}, // BFE_U32
370 {1, 3, 0, 0, 0, 66, 48, 4}, // BFI
371 {1, 2, 0, 0, 0, 81, 49, 3}, // BORROW
372 {0, 2, 0|1<<SDNPHasChain, 0, 0, 99, 0, 1}, // BRANCH_COND
373 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 122, 89, 7}, // BUFFER_ATOMIC_ADD
374 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 151, 89, 7}, // BUFFER_ATOMIC_AND
375 {1, 9, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 180, 96, 7}, // BUFFER_ATOMIC_CMPSWAP
376 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 213, 89, 7}, // BUFFER_ATOMIC_COND_SUB_U32
377 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 251, 89, 7}, // BUFFER_ATOMIC_CSUB
378 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 281, 89, 7}, // BUFFER_ATOMIC_DEC
379 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 310, 89, 7}, // BUFFER_ATOMIC_FADD
380 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 340, 89, 7}, // BUFFER_ATOMIC_FMAX
381 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 370, 89, 7}, // BUFFER_ATOMIC_FMIN
382 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 400, 89, 7}, // BUFFER_ATOMIC_INC
383 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 429, 89, 7}, // BUFFER_ATOMIC_OR
384 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 457, 89, 7}, // BUFFER_ATOMIC_SMAX
385 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 487, 89, 7}, // BUFFER_ATOMIC_SMIN
386 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 517, 89, 7}, // BUFFER_ATOMIC_SUB
387 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 546, 89, 7}, // BUFFER_ATOMIC_SWAP
388 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 576, 89, 7}, // BUFFER_ATOMIC_UMAX
389 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 606, 89, 7}, // BUFFER_ATOMIC_UMIN
390 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 636, 89, 7}, // BUFFER_ATOMIC_XOR
391 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 665, 64, 7}, // BUFFER_LOAD
392 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 688, 64, 7}, // BUFFER_LOAD_BYTE
393 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 716, 64, 7}, // BUFFER_LOAD_BYTE_TFE
394 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 748, 64, 7}, // BUFFER_LOAD_FORMAT
395 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 778, 64, 7}, // BUFFER_LOAD_FORMAT_D16
396 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 812, 64, 7}, // BUFFER_LOAD_FORMAT_TFE
397 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 846, 64, 7}, // BUFFER_LOAD_SHORT
398 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 875, 64, 7}, // BUFFER_LOAD_SHORT_TFE
399 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 908, 64, 7}, // BUFFER_LOAD_TFE
400 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 935, 64, 7}, // BUFFER_LOAD_UBYTE
401 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 964, 64, 7}, // BUFFER_LOAD_UBYTE_TFE
402 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 997, 64, 7}, // BUFFER_LOAD_USHORT
403 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1027, 64, 7}, // BUFFER_LOAD_USHORT_TFE
404 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1061, 64, 7}, // BUFFER_STORE
405 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1085, 64, 7}, // BUFFER_STORE_BYTE
406 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1114, 64, 7}, // BUFFER_STORE_FORMAT
407 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1145, 64, 7}, // BUFFER_STORE_FORMAT_D16
408 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1180, 64, 7}, // BUFFER_STORE_SHORT
409 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1210, 18, 1}, // CALL
410 {1, 2, 0, 0, 0, 1226, 49, 3}, // CARRY
411 {1, 1, 0, 0, 0, 1243, 46, 2}, // CLAMP
412 {1, 1, 0, 0, 0, 1260, 13, 2}, // CONST_DATA_PTR
413 {1, 1, 0, 0, 0, 1286, 46, 2}, // COS_HW
414 {1, 1, 0, 0, 0, 1304, 41, 3}, // CVT_F32_UBYTE0
415 {1, 1, 0, 0, 0, 1330, 41, 3}, // CVT_F32_UBYTE1
416 {1, 1, 0, 0, 0, 1356, 41, 3}, // CVT_F32_UBYTE2
417 {1, 1, 0, 0, 0, 1382, 41, 3}, // CVT_F32_UBYTE3
418 {1, 2, 0, 0, 0, 1408, 87, 2}, // CVT_PKNORM_I16_F32
419 {1, 2, 0, 0, 0, 1438, 87, 2}, // CVT_PKNORM_U16_F32
420 {1, 2, 0, 0, 0, 1468, 87, 2}, // CVT_PKRTZ_F16_F32
421 {1, 2, 0, 0, 0, 1497, 85, 2}, // CVT_PK_I16_I32
422 {1, 2, 0, 0, 0, 1523, 85, 2}, // CVT_PK_U16_U32
423 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 1549, 21, 1}, // DENORM_MODE
424 {1, 3, 0, 0, 0, 1572, 55, 4}, // DIV_FIXUP
425 {1, 4, 0|1<<SDNPOptInGlue, 0, 0, 1593, 31, 5}, // DIV_FMAS
426 {2, 3, 0, 0, 0, 1613, 36, 5}, // DIV_SCALE
427 {1, 2, 0|1<<SDNPHasChain|1<<SDNPInGlue|1<<SDNPMemOperand, 0, 0, 1634, 7, 3}, // DS_ORDERED_COUNT
428 {1, 1, 0, 0, 0, 1662, 44, 2}, // DWORDADDR
429 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1683, 3, 3}, // ELSE
430 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue, 0, 0, 1699, 0, 0}, // ENDPGM
431 {0, 0, 0|1<<SDNPHasChain, 0, 0, 1717, 0, 0}, // ENDPGM_TRAP
432 {1, 1, 0, 0, 0, 1740, 46, 2}, // EXP
433 {1, 4, 0, 0, 0, 1755, 59, 5}, // FDOT2
434 {1, 1, 0, 0, 0, 1772, 19, 3}, // FFBH_U32
435 {1, 1, 0, 0, 0, 1792, 19, 3}, // FFBL_B32
436 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1812, 80, 1}, // FLAT_LOAD_MONITOR
437 {1, 3, 0, 0, 0, 1841, 55, 4}, // FMAD_FTZ
438 {1, 3, 0, 0, 0, 1861, 55, 4}, // FMAX3
439 {1, 3, 0, 0, 0, 1878, 55, 4}, // FMAXIMUM3
440 {1, 2, 0, 0, 0, 1899, 52, 3}, // FMAX_LEGACY
441 {1, 3, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 1922, 55, 4}, // FMA_W_CHAIN
442 {1, 3, 0, 0, 0, 1945, 55, 4}, // FMED3
443 {1, 3, 0, 0, 0, 1962, 55, 4}, // FMIN3
444 {1, 3, 0, 0, 0, 1979, 55, 4}, // FMINIMUM3
445 {1, 2, 0, 0, 0, 2000, 52, 3}, // FMIN_LEGACY
446 {1, 2, 0, 0, 0, 2023, 52, 3}, // FMUL_LEGACY
447 {1, 2, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 2046, 52, 3}, // FMUL_W_CHAIN
448 {1, 2, 0, 0, 0, 2070, 25, 3}, // FP_CLASS
449 {1, 1, 0, 0, 0, 2090, 22, 3}, // FP_TO_FP16
450 {1, 1, 0, 0, 0, 2112, 46, 2}, // FRACT
451 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2129, 80, 1}, // GLOBAL_LOAD_MONITOR
452 {1, 2, 0|1<<SDNPHasChain, 0, 0, 2160, 3, 3}, // IF
453 {1, 1, 0, 0, 0, 2174, 16, 2}, // LDS
454 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2189, 79, 2}, // LOAD_D16_HI
455 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2212, 79, 2}, // LOAD_D16_HI_I8
456 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2238, 79, 2}, // LOAD_D16_HI_U8
457 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2264, 79, 2}, // LOAD_D16_LO
458 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2287, 79, 2}, // LOAD_D16_LO_I8
459 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2313, 79, 2}, // LOAD_D16_LO_U8
460 {1, 1, 0, 0, 0, 2339, 46, 2}, // LOG
461 {0, 2, 0|1<<SDNPHasChain, 0, 0, 2354, 1, 2}, // LOOP
462 {1, 3, 0, 0, 0, 2370, 48, 4}, // MAD_I24
463 {1, 3, 0, 0, 0, 2389, 48, 4}, // MAD_U24
464 {1, 2, 0, 0, 0, 2408, 49, 3}, // MULHI_I24
465 {1, 2, 0, 0, 0, 2429, 49, 3}, // MULHI_U24
466 {1, 2, 0, 0, 0, 2450, 0, 0}, // MUL_I24
467 {1, 2, 0, 0, 0, 2469, 0, 0}, // MUL_U24
468 {1, 2, 0, 0, 0, 2488, 15, 3}, // PC_ADD_REL_OFFSET
469 {1, 1, 0, 0, 0, 2517, 16, 2}, // PC_ADD_REL_OFFSET64
470 {1, 3, 0, 0, 0, 2548, 48, 4}, // PERM
471 {1, 1, 0, 0, 0, 2564, 46, 2}, // RCP
472 {1, 1, 0, 0, 0, 2579, 46, 2}, // RCP_IFLAG
473 {1, 1, 0, 0, 0, 2600, 46, 2}, // RCP_LEGACY
474 {1, 2, 0|1<<SDNPHasChain, 0, 0, 2622, 81, 2}, // REGISTER_LOAD
475 {0, 3, 0|1<<SDNPHasChain, 0, 0, 2647, 81, 2}, // REGISTER_STORE
476 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 2673, 0, 0}, // RETURN_TO_EPILOG
477 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 2701, 0, 0}, // RET_GLUE
478 {1, 1, 0, 0, 0, 2721, 46, 2}, // RSQ
479 {1, 1, 0, 0, 0, 2736, 46, 2}, // RSQ_CLAMP
480 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2757, 68, 3}, // SBUFFER_LOAD
481 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2781, 68, 3}, // SBUFFER_LOAD_BYTE
482 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2810, 68, 3}, // SBUFFER_LOAD_SHORT
483 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2840, 68, 3}, // SBUFFER_LOAD_UBYTE
484 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2870, 68, 3}, // SBUFFER_LOAD_USHORT
485 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2901, 10, 3}, // SBUFFER_PREFETCH_DATA
486 {1, 3, 0, 0, 0, 2934, 28, 3}, // SETCC
487 {0, 0, 0|1<<SDNPHasChain, 0, 0, 2951, 0, 0}, // SIMULATED_TRAP
488 {1, 1, 0, 0, 0, 2977, 46, 2}, // SIN_HW
489 {1, 3, 0, 0, 0, 2995, 48, 4}, // SMAX3
490 {1, 3, 0, 0, 0, 3012, 48, 4}, // SMED3
491 {1, 3, 0, 0, 0, 3029, 48, 4}, // SMIN3
492 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3046, 0, 0}, // STORE_MSKOR
493 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3069, 71, 8}, // TBUFFER_LOAD_FORMAT
494 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3100, 71, 8}, // TBUFFER_LOAD_FORMAT_D16
495 {0, 9, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3135, 71, 8}, // TBUFFER_STORE_FORMAT
496 {0, 9, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3167, 71, 8}, // TBUFFER_STORE_FORMAT_D16
497 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3203, 18, 1}, // TC_RETURN
498 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3224, 18, 1}, // TC_RETURN_CHAIN
499 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3251, 18, 1}, // TC_RETURN_CHAIN_DVGPR
500 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3284, 18, 1}, // TC_RETURN_GFX
501 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3309, 18, 1}, // TC_RETURN_GFX_WholeWave
502 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3344, 6, 1}, // TRAP
503 {1, 3, 0, 0, 0, 3360, 48, 4}, // UMAX3
504 {1, 3, 0, 0, 0, 3377, 48, 4}, // UMED3
505 {1, 3, 0, 0, 0, 3394, 48, 4}, // UMIN3
506 {1, 1, 0, 0, 0, 3411, 44, 2}, // URECIP
507 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3429, 0, 0}, // WHOLE_WAVE_RETURN
508 {1, 0, 0|1<<SDNPHasChain, 0, 0, 3458, 21, 1}, // WHOLE_WAVE_SETUP
509};
510
511static const SDNodeInfo AMDGPUGenSDNodeInfo(
512 /*NumOpcodes=*/142, AMDGPUSDNodeDescs, AMDGPUSDNodeNames,
513 AMDGPUVTByHwModeTable, AMDGPUSDTypeConstraints);
514
515} // namespace llvm
516
517#endif // GET_SDNODE_DESC
518
519