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 BFM,
21 BORROW,
22 BRANCH_COND,
23 BUFFER_ATOMIC_ADD,
24 BUFFER_ATOMIC_AND,
25 BUFFER_ATOMIC_CMPSWAP,
26 BUFFER_ATOMIC_COND_SUB_U32,
27 BUFFER_ATOMIC_CSUB,
28 BUFFER_ATOMIC_DEC,
29 BUFFER_ATOMIC_FADD,
30 BUFFER_ATOMIC_FMAX,
31 BUFFER_ATOMIC_FMIN,
32 BUFFER_ATOMIC_INC,
33 BUFFER_ATOMIC_OR,
34 BUFFER_ATOMIC_SMAX,
35 BUFFER_ATOMIC_SMIN,
36 BUFFER_ATOMIC_SUB,
37 BUFFER_ATOMIC_SWAP,
38 BUFFER_ATOMIC_UMAX,
39 BUFFER_ATOMIC_UMIN,
40 BUFFER_ATOMIC_XOR,
41 BUFFER_LOAD,
42 BUFFER_LOAD_BYTE,
43 BUFFER_LOAD_BYTE_TFE,
44 BUFFER_LOAD_FORMAT,
45 BUFFER_LOAD_FORMAT_D16,
46 BUFFER_LOAD_FORMAT_TFE,
47 BUFFER_LOAD_SHORT,
48 BUFFER_LOAD_SHORT_TFE,
49 BUFFER_LOAD_TFE,
50 BUFFER_LOAD_UBYTE,
51 BUFFER_LOAD_UBYTE_TFE,
52 BUFFER_LOAD_USHORT,
53 BUFFER_LOAD_USHORT_TFE,
54 BUFFER_STORE,
55 BUFFER_STORE_BYTE,
56 BUFFER_STORE_FORMAT,
57 BUFFER_STORE_FORMAT_D16,
58 BUFFER_STORE_SHORT,
59 CALL,
60 CARRY,
61 CLAMP,
62 CONST_DATA_PTR,
63 COS_HW,
64 CVT_F32_UBYTE0,
65 CVT_F32_UBYTE1,
66 CVT_F32_UBYTE2,
67 CVT_F32_UBYTE3,
68 CVT_PKNORM_I16_F32,
69 CVT_PKNORM_U16_F32,
70 CVT_PKRTZ_F16_F32,
71 CVT_PK_I16_I32,
72 CVT_PK_U16_U32,
73 DENORM_MODE,
74 DIV_FIXUP,
75 DIV_FMAS,
76 DIV_SCALE,
77 DS_ORDERED_COUNT,
78 DWORDADDR,
79 ELSE,
80 ENDPGM,
81 ENDPGM_TRAP,
82 EXP,
83 FDOT2,
84 FFBH_I32,
85 FFBH_U32,
86 FFBL_B32,
87 FMAD_FTZ,
88 FMAX3,
89 FMAXIMUM3,
90 FMAX_LEGACY,
91 FMA_W_CHAIN,
92 FMED3,
93 FMIN3,
94 FMINIMUM3,
95 FMIN_LEGACY,
96 FMUL_LEGACY,
97 FMUL_W_CHAIN,
98 FP_CLASS,
99 FP_TO_FP16,
100 FRACT,
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::BFM\0"
183 "AMDGPUISD::BORROW\0"
184 "AMDGPUISD::BRANCH_COND\0"
185 "AMDGPUISD::BUFFER_ATOMIC_ADD\0"
186 "AMDGPUISD::BUFFER_ATOMIC_AND\0"
187 "AMDGPUISD::BUFFER_ATOMIC_CMPSWAP\0"
188 "AMDGPUISD::BUFFER_ATOMIC_COND_SUB_U32\0"
189 "AMDGPUISD::BUFFER_ATOMIC_CSUB\0"
190 "AMDGPUISD::BUFFER_ATOMIC_DEC\0"
191 "AMDGPUISD::BUFFER_ATOMIC_FADD\0"
192 "AMDGPUISD::BUFFER_ATOMIC_FMAX\0"
193 "AMDGPUISD::BUFFER_ATOMIC_FMIN\0"
194 "AMDGPUISD::BUFFER_ATOMIC_INC\0"
195 "AMDGPUISD::BUFFER_ATOMIC_OR\0"
196 "AMDGPUISD::BUFFER_ATOMIC_SMAX\0"
197 "AMDGPUISD::BUFFER_ATOMIC_SMIN\0"
198 "AMDGPUISD::BUFFER_ATOMIC_SUB\0"
199 "AMDGPUISD::BUFFER_ATOMIC_SWAP\0"
200 "AMDGPUISD::BUFFER_ATOMIC_UMAX\0"
201 "AMDGPUISD::BUFFER_ATOMIC_UMIN\0"
202 "AMDGPUISD::BUFFER_ATOMIC_XOR\0"
203 "AMDGPUISD::BUFFER_LOAD\0"
204 "AMDGPUISD::BUFFER_LOAD_BYTE\0"
205 "AMDGPUISD::BUFFER_LOAD_BYTE_TFE\0"
206 "AMDGPUISD::BUFFER_LOAD_FORMAT\0"
207 "AMDGPUISD::BUFFER_LOAD_FORMAT_D16\0"
208 "AMDGPUISD::BUFFER_LOAD_FORMAT_TFE\0"
209 "AMDGPUISD::BUFFER_LOAD_SHORT\0"
210 "AMDGPUISD::BUFFER_LOAD_SHORT_TFE\0"
211 "AMDGPUISD::BUFFER_LOAD_TFE\0"
212 "AMDGPUISD::BUFFER_LOAD_UBYTE\0"
213 "AMDGPUISD::BUFFER_LOAD_UBYTE_TFE\0"
214 "AMDGPUISD::BUFFER_LOAD_USHORT\0"
215 "AMDGPUISD::BUFFER_LOAD_USHORT_TFE\0"
216 "AMDGPUISD::BUFFER_STORE\0"
217 "AMDGPUISD::BUFFER_STORE_BYTE\0"
218 "AMDGPUISD::BUFFER_STORE_FORMAT\0"
219 "AMDGPUISD::BUFFER_STORE_FORMAT_D16\0"
220 "AMDGPUISD::BUFFER_STORE_SHORT\0"
221 "AMDGPUISD::CALL\0"
222 "AMDGPUISD::CARRY\0"
223 "AMDGPUISD::CLAMP\0"
224 "AMDGPUISD::CONST_DATA_PTR\0"
225 "AMDGPUISD::COS_HW\0"
226 "AMDGPUISD::CVT_F32_UBYTE0\0"
227 "AMDGPUISD::CVT_F32_UBYTE1\0"
228 "AMDGPUISD::CVT_F32_UBYTE2\0"
229 "AMDGPUISD::CVT_F32_UBYTE3\0"
230 "AMDGPUISD::CVT_PKNORM_I16_F32\0"
231 "AMDGPUISD::CVT_PKNORM_U16_F32\0"
232 "AMDGPUISD::CVT_PKRTZ_F16_F32\0"
233 "AMDGPUISD::CVT_PK_I16_I32\0"
234 "AMDGPUISD::CVT_PK_U16_U32\0"
235 "AMDGPUISD::DENORM_MODE\0"
236 "AMDGPUISD::DIV_FIXUP\0"
237 "AMDGPUISD::DIV_FMAS\0"
238 "AMDGPUISD::DIV_SCALE\0"
239 "AMDGPUISD::DS_ORDERED_COUNT\0"
240 "AMDGPUISD::DWORDADDR\0"
241 "AMDGPUISD::ELSE\0"
242 "AMDGPUISD::ENDPGM\0"
243 "AMDGPUISD::ENDPGM_TRAP\0"
244 "AMDGPUISD::EXP\0"
245 "AMDGPUISD::FDOT2\0"
246 "AMDGPUISD::FFBH_I32\0"
247 "AMDGPUISD::FFBH_U32\0"
248 "AMDGPUISD::FFBL_B32\0"
249 "AMDGPUISD::FMAD_FTZ\0"
250 "AMDGPUISD::FMAX3\0"
251 "AMDGPUISD::FMAXIMUM3\0"
252 "AMDGPUISD::FMAX_LEGACY\0"
253 "AMDGPUISD::FMA_W_CHAIN\0"
254 "AMDGPUISD::FMED3\0"
255 "AMDGPUISD::FMIN3\0"
256 "AMDGPUISD::FMINIMUM3\0"
257 "AMDGPUISD::FMIN_LEGACY\0"
258 "AMDGPUISD::FMUL_LEGACY\0"
259 "AMDGPUISD::FMUL_W_CHAIN\0"
260 "AMDGPUISD::FP_CLASS\0"
261 "AMDGPUISD::FP_TO_FP16\0"
262 "AMDGPUISD::FRACT\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}, // BFM
372 {1, 2, 0, 0, 0, 96, 49, 3}, // BORROW
373 {0, 2, 0|1<<SDNPHasChain, 0, 0, 114, 0, 1}, // BRANCH_COND
374 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 137, 89, 7}, // BUFFER_ATOMIC_ADD
375 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 166, 89, 7}, // BUFFER_ATOMIC_AND
376 {1, 9, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 195, 96, 7}, // BUFFER_ATOMIC_CMPSWAP
377 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 228, 89, 7}, // BUFFER_ATOMIC_COND_SUB_U32
378 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 266, 89, 7}, // BUFFER_ATOMIC_CSUB
379 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 296, 89, 7}, // BUFFER_ATOMIC_DEC
380 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 325, 89, 7}, // BUFFER_ATOMIC_FADD
381 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 355, 89, 7}, // BUFFER_ATOMIC_FMAX
382 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 385, 89, 7}, // BUFFER_ATOMIC_FMIN
383 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 415, 89, 7}, // BUFFER_ATOMIC_INC
384 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 444, 89, 7}, // BUFFER_ATOMIC_OR
385 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 472, 89, 7}, // BUFFER_ATOMIC_SMAX
386 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 502, 89, 7}, // BUFFER_ATOMIC_SMIN
387 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 532, 89, 7}, // BUFFER_ATOMIC_SUB
388 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 561, 89, 7}, // BUFFER_ATOMIC_SWAP
389 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 591, 89, 7}, // BUFFER_ATOMIC_UMAX
390 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 621, 89, 7}, // BUFFER_ATOMIC_UMIN
391 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 651, 89, 7}, // BUFFER_ATOMIC_XOR
392 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 680, 64, 7}, // BUFFER_LOAD
393 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 703, 64, 7}, // BUFFER_LOAD_BYTE
394 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 731, 64, 7}, // BUFFER_LOAD_BYTE_TFE
395 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 763, 64, 7}, // BUFFER_LOAD_FORMAT
396 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 793, 64, 7}, // BUFFER_LOAD_FORMAT_D16
397 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 827, 64, 7}, // BUFFER_LOAD_FORMAT_TFE
398 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 861, 64, 7}, // BUFFER_LOAD_SHORT
399 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 890, 64, 7}, // BUFFER_LOAD_SHORT_TFE
400 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 923, 64, 7}, // BUFFER_LOAD_TFE
401 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 950, 64, 7}, // BUFFER_LOAD_UBYTE
402 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 979, 64, 7}, // BUFFER_LOAD_UBYTE_TFE
403 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1012, 64, 7}, // BUFFER_LOAD_USHORT
404 {1, 7, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1042, 64, 7}, // BUFFER_LOAD_USHORT_TFE
405 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1076, 64, 7}, // BUFFER_STORE
406 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1100, 64, 7}, // BUFFER_STORE_BYTE
407 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1129, 64, 7}, // BUFFER_STORE_FORMAT
408 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1160, 64, 7}, // BUFFER_STORE_FORMAT_D16
409 {0, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 1195, 64, 7}, // BUFFER_STORE_SHORT
410 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1225, 18, 1}, // CALL
411 {1, 2, 0, 0, 0, 1241, 49, 3}, // CARRY
412 {1, 1, 0, 0, 0, 1258, 46, 2}, // CLAMP
413 {1, 1, 0, 0, 0, 1275, 13, 2}, // CONST_DATA_PTR
414 {1, 1, 0, 0, 0, 1301, 46, 2}, // COS_HW
415 {1, 1, 0, 0, 0, 1319, 41, 3}, // CVT_F32_UBYTE0
416 {1, 1, 0, 0, 0, 1345, 41, 3}, // CVT_F32_UBYTE1
417 {1, 1, 0, 0, 0, 1371, 41, 3}, // CVT_F32_UBYTE2
418 {1, 1, 0, 0, 0, 1397, 41, 3}, // CVT_F32_UBYTE3
419 {1, 2, 0, 0, 0, 1423, 87, 2}, // CVT_PKNORM_I16_F32
420 {1, 2, 0, 0, 0, 1453, 87, 2}, // CVT_PKNORM_U16_F32
421 {1, 2, 0, 0, 0, 1483, 87, 2}, // CVT_PKRTZ_F16_F32
422 {1, 2, 0, 0, 0, 1512, 85, 2}, // CVT_PK_I16_I32
423 {1, 2, 0, 0, 0, 1538, 85, 2}, // CVT_PK_U16_U32
424 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 1564, 21, 1}, // DENORM_MODE
425 {1, 3, 0, 0, 0, 1587, 55, 4}, // DIV_FIXUP
426 {1, 4, 0|1<<SDNPOptInGlue, 0, 0, 1608, 31, 5}, // DIV_FMAS
427 {2, 3, 0, 0, 0, 1628, 36, 5}, // DIV_SCALE
428 {1, 2, 0|1<<SDNPHasChain|1<<SDNPInGlue|1<<SDNPMemOperand, 0, 0, 1649, 7, 3}, // DS_ORDERED_COUNT
429 {1, 1, 0, 0, 0, 1677, 44, 2}, // DWORDADDR
430 {1, 2, 0|1<<SDNPHasChain, 0, 0, 1698, 3, 3}, // ELSE
431 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue, 0, 0, 1714, 0, 0}, // ENDPGM
432 {0, 0, 0|1<<SDNPHasChain, 0, 0, 1732, 0, 0}, // ENDPGM_TRAP
433 {1, 1, 0, 0, 0, 1755, 46, 2}, // EXP
434 {1, 4, 0, 0, 0, 1770, 59, 5}, // FDOT2
435 {1, 1, 0, 0, 0, 1787, 19, 3}, // FFBH_I32
436 {1, 1, 0, 0, 0, 1807, 19, 3}, // FFBH_U32
437 {1, 1, 0, 0, 0, 1827, 19, 3}, // FFBL_B32
438 {1, 3, 0, 0, 0, 1847, 55, 4}, // FMAD_FTZ
439 {1, 3, 0, 0, 0, 1867, 55, 4}, // FMAX3
440 {1, 3, 0, 0, 0, 1884, 55, 4}, // FMAXIMUM3
441 {1, 2, 0, 0, 0, 1905, 52, 3}, // FMAX_LEGACY
442 {1, 3, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 1928, 55, 4}, // FMA_W_CHAIN
443 {1, 3, 0, 0, 0, 1951, 55, 4}, // FMED3
444 {1, 3, 0, 0, 0, 1968, 55, 4}, // FMIN3
445 {1, 3, 0, 0, 0, 1985, 55, 4}, // FMINIMUM3
446 {1, 2, 0, 0, 0, 2006, 52, 3}, // FMIN_LEGACY
447 {1, 2, 0, 0, 0, 2029, 52, 3}, // FMUL_LEGACY
448 {1, 2, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue, 0, 0, 2052, 52, 3}, // FMUL_W_CHAIN
449 {1, 2, 0, 0, 0, 2076, 25, 3}, // FP_CLASS
450 {1, 1, 0, 0, 0, 2096, 22, 3}, // FP_TO_FP16
451 {1, 1, 0, 0, 0, 2118, 46, 2}, // FRACT
452 {1, 2, 0|1<<SDNPHasChain, 0, 0, 2135, 3, 3}, // IF
453 {1, 1, 0, 0, 0, 2149, 16, 2}, // LDS
454 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2164, 79, 2}, // LOAD_D16_HI
455 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2187, 79, 2}, // LOAD_D16_HI_I8
456 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2213, 79, 2}, // LOAD_D16_HI_U8
457 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2239, 79, 2}, // LOAD_D16_LO
458 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2262, 79, 2}, // LOAD_D16_LO_I8
459 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2288, 79, 2}, // LOAD_D16_LO_U8
460 {1, 1, 0, 0, 0, 2314, 46, 2}, // LOG
461 {0, 2, 0|1<<SDNPHasChain, 0, 0, 2329, 1, 2}, // LOOP
462 {1, 3, 0, 0, 0, 2345, 48, 4}, // MAD_I24
463 {1, 3, 0, 0, 0, 2364, 48, 4}, // MAD_U24
464 {1, 2, 0, 0, 0, 2383, 49, 3}, // MULHI_I24
465 {1, 2, 0, 0, 0, 2404, 49, 3}, // MULHI_U24
466 {1, 2, 0, 0, 0, 2425, 0, 0}, // MUL_I24
467 {1, 2, 0, 0, 0, 2444, 0, 0}, // MUL_U24
468 {1, 2, 0, 0, 0, 2463, 15, 3}, // PC_ADD_REL_OFFSET
469 {1, 1, 0, 0, 0, 2492, 16, 2}, // PC_ADD_REL_OFFSET64
470 {1, 3, 0, 0, 0, 2523, 48, 4}, // PERM
471 {1, 1, 0, 0, 0, 2539, 46, 2}, // RCP
472 {1, 1, 0, 0, 0, 2554, 46, 2}, // RCP_IFLAG
473 {1, 1, 0, 0, 0, 2575, 46, 2}, // RCP_LEGACY
474 {1, 2, 0|1<<SDNPHasChain, 0, 0, 2597, 81, 2}, // REGISTER_LOAD
475 {0, 3, 0|1<<SDNPHasChain, 0, 0, 2622, 81, 2}, // REGISTER_STORE
476 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 2648, 0, 0}, // RETURN_TO_EPILOG
477 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 2676, 0, 0}, // RET_GLUE
478 {1, 1, 0, 0, 0, 2696, 46, 2}, // RSQ
479 {1, 1, 0, 0, 0, 2711, 46, 2}, // RSQ_CLAMP
480 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2732, 68, 3}, // SBUFFER_LOAD
481 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2756, 68, 3}, // SBUFFER_LOAD_BYTE
482 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2785, 68, 3}, // SBUFFER_LOAD_SHORT
483 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2815, 68, 3}, // SBUFFER_LOAD_UBYTE
484 {1, 3, 0|1<<SDNPMemOperand, 0, 0, 2845, 68, 3}, // SBUFFER_LOAD_USHORT
485 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 2876, 10, 3}, // SBUFFER_PREFETCH_DATA
486 {1, 3, 0, 0, 0, 2909, 28, 3}, // SETCC
487 {0, 0, 0|1<<SDNPHasChain, 0, 0, 2926, 0, 0}, // SIMULATED_TRAP
488 {1, 1, 0, 0, 0, 2952, 46, 2}, // SIN_HW
489 {1, 3, 0, 0, 0, 2970, 48, 4}, // SMAX3
490 {1, 3, 0, 0, 0, 2987, 48, 4}, // SMED3
491 {1, 3, 0, 0, 0, 3004, 48, 4}, // SMIN3
492 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3021, 0, 0}, // STORE_MSKOR
493 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3044, 71, 8}, // TBUFFER_LOAD_FORMAT
494 {1, 8, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3075, 71, 8}, // TBUFFER_LOAD_FORMAT_D16
495 {0, 9, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3110, 71, 8}, // TBUFFER_STORE_FORMAT
496 {0, 9, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 3142, 71, 8}, // TBUFFER_STORE_FORMAT_D16
497 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3178, 18, 1}, // TC_RETURN
498 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3199, 18, 1}, // TC_RETURN_CHAIN
499 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3226, 18, 1}, // TC_RETURN_CHAIN_DVGPR
500 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3259, 18, 1}, // TC_RETURN_GFX
501 {0, 3, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3284, 18, 1}, // TC_RETURN_GFX_WholeWave
502 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3319, 6, 1}, // TRAP
503 {1, 3, 0, 0, 0, 3335, 48, 4}, // UMAX3
504 {1, 3, 0, 0, 0, 3352, 48, 4}, // UMED3
505 {1, 3, 0, 0, 0, 3369, 48, 4}, // UMIN3
506 {1, 1, 0, 0, 0, 3386, 44, 2}, // URECIP
507 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 3404, 0, 0}, // WHOLE_WAVE_RETURN
508 {1, 0, 0|1<<SDNPHasChain, 0, 0, 3433, 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