1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: VE.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::VEISD {
14
15enum GenNodeType : unsigned {
16 CALL = ISD::BUILTIN_OP_END,
17 CMOV,
18 CMPF,
19 CMPI,
20 CMPQ,
21 CMPU,
22 EH_SJLJ_LONGJMP,
23 EH_SJLJ_SETJMP,
24 EH_SJLJ_SETUP_DISPATCH,
25 GETFUNPLT,
26 GETSTACKTOP,
27 GETTLSADDR,
28 Hi,
29 Lo,
30 REPL_F32,
31 REPL_I32,
32 RET_GLUE,
33 TS1AM,
34 VEC_BROADCAST,
35 VEC_PACK,
36 VEC_UNPACK_HI,
37 VEC_UNPACK_LO,
38 VVP_ADD,
39 VVP_AND,
40 VVP_FADD,
41 VVP_FDIV,
42 VVP_FFMA,
43 VVP_FMUL,
44 VVP_FNEG,
45 VVP_FSUB,
46 VVP_GATHER,
47 VVP_LOAD,
48 VVP_MUL,
49 VVP_OR,
50 VVP_REDUCE_ADD,
51 VVP_REDUCE_AND,
52 VVP_REDUCE_OR,
53 VVP_REDUCE_SMAX,
54 VVP_REDUCE_XOR,
55 VVP_SCATTER,
56 VVP_SDIV,
57 VVP_SELECT,
58 VVP_SETCC,
59 VVP_SHL,
60 VVP_SRA,
61 VVP_SRL,
62 VVP_STORE,
63 VVP_SUB,
64 VVP_UDIV,
65 VVP_XOR,
66};
67
68static constexpr unsigned GENERATED_OPCODE_END = VVP_XOR + 1;
69
70} // namespace llvm::VEISD
71
72#endif // GET_SDNODE_ENUM
73
74#ifdef GET_SDNODE_DESC
75#undef GET_SDNODE_DESC
76
77namespace llvm {
78
79
80#ifdef __GNUC__
81#pragma GCC diagnostic push
82#pragma GCC diagnostic ignored "-Woverlength-strings"
83#endif
84static constexpr char VESDNodeNamesStorage[] =
85 "\0"
86 "VEISD::CALL\0"
87 "VEISD::CMOV\0"
88 "VEISD::CMPF\0"
89 "VEISD::CMPI\0"
90 "VEISD::CMPQ\0"
91 "VEISD::CMPU\0"
92 "VEISD::EH_SJLJ_LONGJMP\0"
93 "VEISD::EH_SJLJ_SETJMP\0"
94 "VEISD::EH_SJLJ_SETUP_DISPATCH\0"
95 "VEISD::GETFUNPLT\0"
96 "VEISD::GETSTACKTOP\0"
97 "VEISD::GETTLSADDR\0"
98 "VEISD::Hi\0"
99 "VEISD::Lo\0"
100 "VEISD::REPL_F32\0"
101 "VEISD::REPL_I32\0"
102 "VEISD::RET_GLUE\0"
103 "VEISD::TS1AM\0"
104 "VEISD::VEC_BROADCAST\0"
105 "VEISD::VEC_PACK\0"
106 "VEISD::VEC_UNPACK_HI\0"
107 "VEISD::VEC_UNPACK_LO\0"
108 "VEISD::VVP_ADD\0"
109 "VEISD::VVP_AND\0"
110 "VEISD::VVP_FADD\0"
111 "VEISD::VVP_FDIV\0"
112 "VEISD::VVP_FFMA\0"
113 "VEISD::VVP_FMUL\0"
114 "VEISD::VVP_FNEG\0"
115 "VEISD::VVP_FSUB\0"
116 "VEISD::VVP_GATHER\0"
117 "VEISD::VVP_LOAD\0"
118 "VEISD::VVP_MUL\0"
119 "VEISD::VVP_OR\0"
120 "VEISD::VVP_REDUCE_ADD\0"
121 "VEISD::VVP_REDUCE_AND\0"
122 "VEISD::VVP_REDUCE_OR\0"
123 "VEISD::VVP_REDUCE_SMAX\0"
124 "VEISD::VVP_REDUCE_XOR\0"
125 "VEISD::VVP_SCATTER\0"
126 "VEISD::VVP_SDIV\0"
127 "VEISD::VVP_SELECT\0"
128 "VEISD::VVP_SETCC\0"
129 "VEISD::VVP_SHL\0"
130 "VEISD::VVP_SRA\0"
131 "VEISD::VVP_SRL\0"
132 "VEISD::VVP_STORE\0"
133 "VEISD::VVP_SUB\0"
134 "VEISD::VVP_UDIV\0"
135 "VEISD::VVP_XOR\0"
136 ;
137#ifdef __GNUC__
138#pragma GCC diagnostic pop
139#endif
140
141static constexpr llvm::StringTable
142VESDNodeNames = VESDNodeNamesStorage;
143
144static const VTByHwModePair VEVTByHwModeTable[] = {
145 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
146};
147
148static const SDTypeConstraint VESDTypeConstraints[] = {
149 /* 0 */ {SDTCisVT, 0, 0, 0, MVT::i64},
150 /* 1 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
151 /* 2 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
152 /* 4 */ {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
153 /* 6 */ {SDTCisFP, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
154 /* 8 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameNumEltsAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
155 /* 13 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisVec, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
156 /* 18 */ {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 4, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 3, 0, 0, MVT::Other}, {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameNumEltsAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
157 /* 26 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 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},
158 /* 30 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
159 /* 33 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
160 /* 38 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
161 /* 43 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
162 /* 45 */ {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
163 /* 47 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisFP, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
164 /* 52 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 3, 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},
165 /* 57 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {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},
166 /* 63 */ {SDTCisVT, 5, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 0, 4, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 4, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {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},
167 /* 70 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisSameAs, 2, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
168 /* 73 */ {SDTCisInt, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
169 /* 77 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisSameNumEltsAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
170 /* 82 */ {SDTCisFP, 2, 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},
171};
172
173static const SDNodeDesc VESDNodeDescs[] = {
174 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 1, 0, 1}, // CALL
175 {1, 4, 0, 0, 0, 13, 70, 3}, // CMOV
176 {1, 2, 0, 0, 0, 25, 60, 3}, // CMPF
177 {1, 2, 0, 0, 0, 37, 54, 3}, // CMPI
178 {1, 2, 0, 0, 0, 49, 82, 3}, // CMPQ
179 {1, 2, 0, 0, 0, 61, 54, 3}, // CMPU
180 {0, 1, 0|1<<SDNPHasChain, 0, 0, 73, 1, 1}, // EH_SJLJ_LONGJMP
181 {1, 1, 0|1<<SDNPHasChain, 0, 0, 96, 2, 2}, // EH_SJLJ_SETJMP
182 {0, 0, 0|1<<SDNPHasChain, 0, 0, 118, 0, 0}, // EH_SJLJ_SETUP_DISPATCH
183 {1, 1, 0, 0, 0, 148, 45, 2}, // GETFUNPLT
184 {0, 0, 0|1<<SDNPHasChain, 0, 0, 165, 0, 0}, // GETSTACKTOP
185 {0, -1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 184, 0, 1}, // GETTLSADDR
186 {1, 1, 0, 0, 0, 202, 45, 2}, // Hi
187 {1, 1, 0, 0, 0, 212, 45, 2}, // Lo
188 {1, 1, 0, 0, 0, 222, 6, 2}, // REPL_F32
189 {1, 1, 0, 0, 0, 238, 4, 2}, // REPL_I32
190 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 254, 0, 0}, // RET_GLUE
191 {1, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 270, 73, 4}, // TS1AM
192 {1, 2, 0, 0, 0, 283, 43, 2}, // VEC_BROADCAST
193 {1, 3, 0, 0, 0, 304, 38, 5}, // VEC_PACK
194 {1, 2, 0, 0, 0, 320, 30, 3}, // VEC_UNPACK_HI
195 {1, 2, 0, 0, 0, 341, 30, 3}, // VEC_UNPACK_LO
196 {1, 4, 0, 0, 0, 362, 52, 5}, // VVP_ADD
197 {1, 4, 0, 0, 0, 377, 52, 5}, // VVP_AND
198 {1, 4, 0, 0, 0, 392, 57, 6}, // VVP_FADD
199 {1, 4, 0, 0, 0, 408, 57, 6}, // VVP_FDIV
200 {1, 5, 0, 0, 0, 424, 63, 7}, // VVP_FFMA
201 {1, 4, 0, 0, 0, 440, 57, 6}, // VVP_FMUL
202 {1, 3, 0, 0, 0, 456, 47, 5}, // VVP_FNEG
203 {1, 4, 0, 0, 0, 472, 57, 6}, // VVP_FSUB
204 {1, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 488, 26, 4}, // VVP_GATHER
205 {1, 4, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 506, 13, 5}, // VVP_LOAD
206 {1, 4, 0, 0, 0, 522, 52, 5}, // VVP_MUL
207 {1, 4, 0, 0, 0, 537, 52, 5}, // VVP_OR
208 {1, 3, 0, 0, 0, 551, 77, 5}, // VVP_REDUCE_ADD
209 {1, 3, 0, 0, 0, 573, 77, 5}, // VVP_REDUCE_AND
210 {1, 3, 0, 0, 0, 595, 77, 5}, // VVP_REDUCE_OR
211 {1, 3, 0, 0, 0, 616, 77, 5}, // VVP_REDUCE_SMAX
212 {1, 3, 0, 0, 0, 639, 77, 5}, // VVP_REDUCE_XOR
213 {0, 4, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 661, 33, 5}, // VVP_SCATTER
214 {1, 4, 0, 0, 0, 680, 52, 5}, // VVP_SDIV
215 {1, 4, 0, 0, 0, 696, 8, 5}, // VVP_SELECT
216 {1, 5, 0, 0, 0, 714, 18, 8}, // VVP_SETCC
217 {1, 4, 0, 0, 0, 731, 52, 5}, // VVP_SHL
218 {1, 4, 0, 0, 0, 746, 52, 5}, // VVP_SRA
219 {1, 4, 0, 0, 0, 761, 52, 5}, // VVP_SRL
220 {0, 5, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 776, 13, 5}, // VVP_STORE
221 {1, 4, 0, 0, 0, 793, 52, 5}, // VVP_SUB
222 {1, 4, 0, 0, 0, 808, 52, 5}, // VVP_UDIV
223 {1, 4, 0, 0, 0, 824, 52, 5}, // VVP_XOR
224};
225
226static const SDNodeInfo VEGenSDNodeInfo(
227 /*NumOpcodes=*/50, VESDNodeDescs, VESDNodeNames,
228 VEVTByHwModeTable, VESDTypeConstraints);
229
230} // namespace llvm
231
232#endif // GET_SDNODE_DESC
233
234