1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target SDNode descriptions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: WebAssembly.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_SDNODE_ENUM
11#undef GET_SDNODE_ENUM
12
13namespace llvm::WebAssemblyISD {
14
15enum GenNodeType : unsigned {
16 ARGUMENT = ISD::BUILTIN_OP_END,
17 BR_TABLE,
18 CONVERT_LOW_S,
19 CONVERT_LOW_U,
20 DEMOTE_ZERO,
21 DOT,
22 EXTEND_HIGH_S,
23 EXTEND_HIGH_U,
24 EXTEND_LOW_S,
25 EXTEND_LOW_U,
26 EXT_ADD_PAIRWISE_S,
27 EXT_ADD_PAIRWISE_U,
28 GLOBAL_GET,
29 GLOBAL_SET,
30 I64_ADD128,
31 I64_MUL_WIDE_S,
32 I64_MUL_WIDE_U,
33 I64_SUB128,
34 LOCAL_GET,
35 LOCAL_SET,
36 MEMCPY,
37 MEMSET,
38 NARROW_U,
39 PROMOTE_LOW,
40 RELAXED_FMAX,
41 RELAXED_FMIN,
42 RETURN,
43 SHUFFLE,
44 SWIZZLE,
45 TABLE_GET,
46 TABLE_SET,
47 TRUNC_SAT_ZERO_S,
48 TRUNC_SAT_ZERO_U,
49 VEC_SHL,
50 VEC_SHR_S,
51 VEC_SHR_U,
52 Wrapper,
53 WrapperREL,
54};
55
56static constexpr unsigned GENERATED_OPCODE_END = WrapperREL + 1;
57
58} // namespace llvm::WebAssemblyISD
59
60#endif // GET_SDNODE_ENUM
61
62#ifdef GET_SDNODE_DESC
63#undef GET_SDNODE_DESC
64
65namespace llvm {
66
67
68#ifdef __GNUC__
69#pragma GCC diagnostic push
70#pragma GCC diagnostic ignored "-Woverlength-strings"
71#endif
72static constexpr char WebAssemblySDNodeNamesStorage[] =
73 "\0"
74 "WebAssemblyISD::ARGUMENT\0"
75 "WebAssemblyISD::BR_TABLE\0"
76 "WebAssemblyISD::CONVERT_LOW_S\0"
77 "WebAssemblyISD::CONVERT_LOW_U\0"
78 "WebAssemblyISD::DEMOTE_ZERO\0"
79 "WebAssemblyISD::DOT\0"
80 "WebAssemblyISD::EXTEND_HIGH_S\0"
81 "WebAssemblyISD::EXTEND_HIGH_U\0"
82 "WebAssemblyISD::EXTEND_LOW_S\0"
83 "WebAssemblyISD::EXTEND_LOW_U\0"
84 "WebAssemblyISD::EXT_ADD_PAIRWISE_S\0"
85 "WebAssemblyISD::EXT_ADD_PAIRWISE_U\0"
86 "WebAssemblyISD::GLOBAL_GET\0"
87 "WebAssemblyISD::GLOBAL_SET\0"
88 "WebAssemblyISD::I64_ADD128\0"
89 "WebAssemblyISD::I64_MUL_WIDE_S\0"
90 "WebAssemblyISD::I64_MUL_WIDE_U\0"
91 "WebAssemblyISD::I64_SUB128\0"
92 "WebAssemblyISD::LOCAL_GET\0"
93 "WebAssemblyISD::LOCAL_SET\0"
94 "WebAssemblyISD::MEMCPY\0"
95 "WebAssemblyISD::MEMSET\0"
96 "WebAssemblyISD::NARROW_U\0"
97 "WebAssemblyISD::PROMOTE_LOW\0"
98 "WebAssemblyISD::RELAXED_FMAX\0"
99 "WebAssemblyISD::RELAXED_FMIN\0"
100 "WebAssemblyISD::RETURN\0"
101 "WebAssemblyISD::SHUFFLE\0"
102 "WebAssemblyISD::SWIZZLE\0"
103 "WebAssemblyISD::TABLE_GET\0"
104 "WebAssemblyISD::TABLE_SET\0"
105 "WebAssemblyISD::TRUNC_SAT_ZERO_S\0"
106 "WebAssemblyISD::TRUNC_SAT_ZERO_U\0"
107 "WebAssemblyISD::VEC_SHL\0"
108 "WebAssemblyISD::VEC_SHR_S\0"
109 "WebAssemblyISD::VEC_SHR_U\0"
110 "WebAssemblyISD::Wrapper\0"
111 "WebAssemblyISD::WrapperREL\0"
112 ;
113#ifdef __GNUC__
114#pragma GCC diagnostic pop
115#endif
116
117static constexpr llvm::StringTable
118WebAssemblySDNodeNames = WebAssemblySDNodeNamesStorage;
119
120static const VTByHwModePair WebAssemblyVTByHwModeTable[] = {
121 /* dummy */ {0, MVT::INVALID_SIMPLE_VALUE_TYPE}
122};
123
124static const SDTypeConstraint WebAssemblySDTypeConstraints[] = {
125 /* 0 */ {SDTCisVT, 0, 0, 0, MVT::i32},
126 /* 1 */ {SDTCisVT, 2, 0, 0, MVT::v8i16}, {SDTCisVT, 1, 0, 0, MVT::v8i16}, {SDTCisVT, 0, 0, 0, MVT::v4i32},
127 /* 4 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
128 /* 5 */ {SDTCisInt, 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}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
129 /* 9 */ {SDTCisInt, 4, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 3, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisPtrTy, 2, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisInt, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
130 /* 14 */ {SDTCisVT, 2, 0, 0, MVT::i32}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
131 /* 17 */ {SDTCisVec, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisVec, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
132 /* 19 */ {SDTCisPtrTy, 0, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE}, {SDTCisSameAs, 0, 1, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
133 /* 21 */ {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},
134 /* 24 */ {SDTCisVT, 1, 0, 0, MVT::i32},
135 /* 25 */ {SDTCisPtrTy, 1, 0, 0, MVT::INVALID_SIMPLE_VALUE_TYPE},
136};
137
138static const SDNodeDesc WebAssemblySDNodeDescs[] = {
139 {1, 1, 0, 0, 0, 1, 24, 1}, // ARGUMENT
140 {0, -1, 0|1<<SDNPHasChain|1<<SDNPVariadic, 0, 0, 26, 4, 1}, // BR_TABLE
141 {1, 1, 0, 0, 0, 51, 17, 2}, // CONVERT_LOW_S
142 {1, 1, 0, 0, 0, 81, 17, 2}, // CONVERT_LOW_U
143 {1, 1, 0, 0, 0, 111, 17, 2}, // DEMOTE_ZERO
144 {1, 2, 0, 0, 0, 139, 1, 3}, // DOT
145 {1, 1, 0, 0, 0, 159, 17, 2}, // EXTEND_HIGH_S
146 {1, 1, 0, 0, 0, 189, 17, 2}, // EXTEND_HIGH_U
147 {1, 1, 0, 0, 0, 219, 17, 2}, // EXTEND_LOW_S
148 {1, 1, 0, 0, 0, 248, 17, 2}, // EXTEND_LOW_U
149 {1, 1, 0, 0, 0, 277, 17, 2}, // EXT_ADD_PAIRWISE_S
150 {1, 1, 0, 0, 0, 312, 17, 2}, // EXT_ADD_PAIRWISE_U
151 {1, 1, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 347, 25, 1}, // GLOBAL_GET
152 {0, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 374, 25, 1}, // GLOBAL_SET
153 {2, 4, 0, 0, 0, 401, 0, 0}, // I64_ADD128
154 {2, 2, 0, 0, 0, 428, 0, 0}, // I64_MUL_WIDE_S
155 {2, 2, 0, 0, 0, 459, 0, 0}, // I64_MUL_WIDE_U
156 {2, 4, 0, 0, 0, 490, 0, 0}, // I64_SUB128
157 {1, 1, 0|1<<SDNPHasChain, 0, 0, 517, 24, 1}, // LOCAL_GET
158 {0, 2, 0|1<<SDNPHasChain, 0, 0, 543, 0, 1}, // LOCAL_SET
159 {0, 5, 0|1<<SDNPHasChain, 0, 0, 569, 9, 5}, // MEMCPY
160 {0, 4, 0|1<<SDNPHasChain, 0, 0, 592, 5, 4}, // MEMSET
161 {1, 2, 0, 0, 0, 615, 0, 0}, // NARROW_U
162 {1, 1, 0, 0, 0, 640, 17, 2}, // PROMOTE_LOW
163 {1, 2, 0, 0, 0, 668, 21, 3}, // RELAXED_FMAX
164 {1, 2, 0, 0, 0, 697, 21, 3}, // RELAXED_FMIN
165 {0, -1, 0|1<<SDNPHasChain|1<<SDNPVariadic, 0, 0, 726, 0, 0}, // RETURN
166 {1, 18, 0, 0, 0, 749, 0, 0}, // SHUFFLE
167 {1, 2, 0, 0, 0, 773, 0, 0}, // SWIZZLE
168 {1, 2, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 797, 25, 1}, // TABLE_GET
169 {0, 3, 0|1<<SDNPHasChain|1<<SDNPMemOperand, 0, 0, 823, 25, 1}, // TABLE_SET
170 {1, 1, 0, 0, 0, 849, 17, 2}, // TRUNC_SAT_ZERO_S
171 {1, 1, 0, 0, 0, 882, 17, 2}, // TRUNC_SAT_ZERO_U
172 {1, 2, 0, 0, 0, 915, 14, 3}, // VEC_SHL
173 {1, 2, 0, 0, 0, 939, 14, 3}, // VEC_SHR_S
174 {1, 2, 0, 0, 0, 965, 14, 3}, // VEC_SHR_U
175 {1, 1, 0, 0, 0, 991, 19, 2}, // Wrapper
176 {1, 1, 0, 0, 0, 1015, 19, 2}, // WrapperREL
177};
178
179static const SDNodeInfo WebAssemblyGenSDNodeInfo(
180 /*NumOpcodes=*/38, WebAssemblySDNodeDescs, WebAssemblySDNodeNames,
181 WebAssemblyVTByHwModeTable, WebAssemblySDTypeConstraints);
182
183} // namespace llvm
184
185#endif // GET_SDNODE_DESC
186
187