1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Hexagon.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::HexagonISD {
14
15enum GenNodeType : unsigned {
16 ADDC = ISD::BUILTIN_OP_END,
17 ALLOCA,
18 AT_GOT,
19 AT_PCREL,
20 BARRIER,
21 CALL,
22 CALLnr,
23 COMBINE,
24 CONST32,
25 CONST32_GP,
26 CP,
27 DCFETCH,
28 EH_RETURN,
29 EXTRACTU,
30 INSERT,
31 JT,
32 MFSHL,
33 MFSHR,
34 MULHUS,
35 PFALSE,
36 PTRUE,
37 QCAT,
38 QFALSE,
39 QTRUE,
40 READCYCLE,
41 READTIMER,
42 RET_GLUE,
43 SMUL_LOHI,
44 SSAT,
45 SUBC,
46 TC_RETURN,
47 THREAD_POINTER,
48 TSTBIT,
49 UMUL_LOHI,
50 USAT,
51 USMUL_LOHI,
52 VALIGN,
53 VALIGNADDR,
54 VASL,
55 VASR,
56 VEXTRACTW,
57 VINSERTW0,
58 VLSR,
59};
60
61static constexpr unsigned GENERATED_OPCODE_END = VLSR + 1;
62
63} // namespace llvm::HexagonISD
64
65#endif // GET_SDNODE_ENUM
66
67#ifdef GET_SDNODE_DESC
68#undef GET_SDNODE_DESC
69
70namespace llvm {
71
72
73#ifdef __GNUC__
74#pragma GCC diagnostic push
75#pragma GCC diagnostic ignored "-Woverlength-strings"
76#endif
77static constexpr char HexagonSDNodeNamesStorage[] =
78 "\0"
79 "HexagonISD::ADDC\0"
80 "HexagonISD::ALLOCA\0"
81 "HexagonISD::AT_GOT\0"
82 "HexagonISD::AT_PCREL\0"
83 "HexagonISD::BARRIER\0"
84 "HexagonISD::CALL\0"
85 "HexagonISD::CALLnr\0"
86 "HexagonISD::COMBINE\0"
87 "HexagonISD::CONST32\0"
88 "HexagonISD::CONST32_GP\0"
89 "HexagonISD::CP\0"
90 "HexagonISD::DCFETCH\0"
91 "HexagonISD::EH_RETURN\0"
92 "HexagonISD::EXTRACTU\0"
93 "HexagonISD::INSERT\0"
94 "HexagonISD::JT\0"
95 "HexagonISD::MFSHL\0"
96 "HexagonISD::MFSHR\0"
97 "HexagonISD::MULHUS\0"
98 "HexagonISD::PFALSE\0"
99 "HexagonISD::PTRUE\0"
100 "HexagonISD::QCAT\0"
101 "HexagonISD::QFALSE\0"
102 "HexagonISD::QTRUE\0"
103 "HexagonISD::READCYCLE\0"
104 "HexagonISD::READTIMER\0"
105 "HexagonISD::RET_GLUE\0"
106 "HexagonISD::SMUL_LOHI\0"
107 "HexagonISD::SSAT\0"
108 "HexagonISD::SUBC\0"
109 "HexagonISD::TC_RETURN\0"
110 "HexagonISD::THREAD_POINTER\0"
111 "HexagonISD::TSTBIT\0"
112 "HexagonISD::UMUL_LOHI\0"
113 "HexagonISD::USAT\0"
114 "HexagonISD::USMUL_LOHI\0"
115 "HexagonISD::VALIGN\0"
116 "HexagonISD::VALIGNADDR\0"
117 "HexagonISD::VASL\0"
118 "HexagonISD::VASR\0"
119 "HexagonISD::VEXTRACTW\0"
120 "HexagonISD::VINSERTW0\0"
121 "HexagonISD::VLSR\0"
122 ;
123#ifdef __GNUC__
124#pragma GCC diagnostic pop
125#endif
126
127static constexpr llvm::StringTable
128HexagonSDNodeNames = HexagonSDNodeNamesStorage;
129
130static const VTByHwModePair HexagonVTByHwModeTable[] = {
131 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
132};
133
134static const SDTypeConstraint HexagonSDTypeConstraints[] = {
135 /* 0 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i1},
136 /* 3 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
137 /* 6 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i32},
138 /* 9 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 0, 0, 0, MVT::i32},
139 /* 12 */ {SDTCisSameAs, 1, 2, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i32}, {SDTCisVT, 0, 0, 0, MVT::i64},
140 /* 15 */ {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
141 /* 17 */ {SDTCisVT, 4, 0, 0, MVT::i1}, {SDTCisSameAs, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVT, 1, 0, 0, MVT::i1}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
142 /* 22 */ {SDTCisVT, 2, 0, 0, MVT::Other}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
143 /* 25 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
144 /* 28 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {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},
145 /* 32 */ {SDTCisVT, 3, 0, 0, MVT::i32}, {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
146 /* 37 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
147 /* 40 */ {SDTCisVT, 4, 0, 0, MVT::i32}, {SDTCisVT, 3, 0, 0, MVT::i32}, {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},
148 /* 45 */ {SDTCisSameNumEltsAs, 0, 3, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {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},
149 /* 50 */ {SDTCisInt, 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},
150};
151
152static const SDNodeDesc HexagonSDNodeDescs[] = {
153 {2, 3, 0, 0, 0, 1, 17, 5}, // ADDC
154 {1, 2, 0|1<<SDNPHasChain, 0, 0, 18, 4, 2}, // ALLOCA
155 {1, 3, 0, 0, 0, 37, 6, 3}, // AT_GOT
156 {1, 1, 0, 0, 0, 56, 4, 2}, // AT_PCREL
157 {0, 0, 0|1<<SDNPHasChain, 0, 0, 77, 0, 0}, // BARRIER
158 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 97, 5, 1}, // CALL
159 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOutGlue|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 114, 5, 1}, // CALLnr
160 {1, 2, 0, 0, 0, 133, 12, 3}, // COMBINE
161 {1, 1, 0, 0, 0, 153, 3, 3}, // CONST32
162 {1, 1, 0, 0, 0, 173, 3, 3}, // CONST32_GP
163 {1, 1, 0, 0, 0, 196, 35, 2}, // CP
164 {0, 2, 0|1<<SDNPHasChain, 0, 0, 211, 15, 2}, // DCFETCH
165 {0, 0, 0|1<<SDNPHasChain, 0, 0, 231, 0, 0}, // EH_RETURN
166 {1, 3, 0, 0, 0, 253, 32, 5}, // EXTRACTU
167 {1, 4, 0, 0, 0, 274, 40, 5}, // INSERT
168 {1, 1, 0, 0, 0, 293, 35, 2}, // JT
169 {1, 3, 0, 0, 0, 308, 45, 5}, // MFSHL
170 {1, 3, 0, 0, 0, 326, 45, 5}, // MFSHR
171 {1, 2, 0, 0, 0, 344, 42, 3}, // MULHUS
172 {1, 0, 0, 0, 0, 363, 27, 1}, // PFALSE
173 {1, 0, 0, 0, 0, 382, 27, 1}, // PTRUE
174 {1, 2, 0, 0, 0, 400, 29, 3}, // QCAT
175 {1, 0, 0, 0, 0, 417, 27, 1}, // QFALSE
176 {1, 0, 0, 0, 0, 436, 27, 1}, // QTRUE
177 {1, 0, 0|1<<SDNPHasChain, 0, 0, 454, 14, 1}, // READCYCLE
178 {1, 0, 0|1<<SDNPHasChain, 0, 0, 476, 14, 1}, // READTIMER
179 {0, 0, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 498, 0, 0}, // RET_GLUE
180 {2, 2, 0, 0, 0, 519, 50, 4}, // SMUL_LOHI
181 {1, 2, 0, 0, 0, 541, 22, 3}, // SSAT
182 {2, 3, 0, 0, 0, 558, 17, 5}, // SUBC
183 {0, 1, 0|1<<SDNPHasChain|1<<SDNPOptInGlue|1<<SDNPVariadic, 0, 0, 575, 5, 1}, // TC_RETURN
184 {1, 0, 0, 0, 0, 597, 16, 1}, // THREAD_POINTER
185 {1, 2, 0, 0, 0, 624, 0, 3}, // TSTBIT
186 {2, 2, 0, 0, 0, 643, 50, 4}, // UMUL_LOHI
187 {1, 2, 0, 0, 0, 665, 22, 3}, // USAT
188 {2, 2, 0, 0, 0, 682, 50, 4}, // USMUL_LOHI
189 {1, 3, 0, 0, 0, 705, 28, 4}, // VALIGN
190 {1, 1, 0, 0, 0, 724, 35, 2}, // VALIGNADDR
191 {1, 2, 0, 0, 0, 747, 37, 3}, // VASL
192 {1, 2, 0, 0, 0, 764, 37, 3}, // VASR
193 {1, 2, 0, 0, 0, 781, 9, 3}, // VEXTRACTW
194 {1, 2, 0, 0, 0, 803, 25, 3}, // VINSERTW0
195 {1, 2, 0, 0, 0, 825, 37, 3}, // VLSR
196};
197
198static const SDNodeInfo HexagonGenSDNodeInfo(
199 /*NumOpcodes=*/43, HexagonSDNodeDescs, HexagonSDNodeNames,
200 HexagonVTByHwModeTable, HexagonSDTypeConstraints);
201
202} // namespace llvm
203
204#endif // GET_SDNODE_DESC
205
206