LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Ops.cpp.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Op Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Ops.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#ifdef GET_OP_LIST
11#undef GET_OP_LIST
12
15#endif // GET_OP_LIST
16
17#ifdef GET_OP_CLASSES
18#undef GET_OP_CLASSES
19
20
21//===----------------------------------------------------------------------===//
22// Local Utility Method Definitions
23//===----------------------------------------------------------------------===//
24
25namespace llzk {
26namespace cast {
27
28static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops1(
29 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
30 unsigned valueIndex) {
31 if (!((::llvm::isa<::llzk::felt::FeltType>(type)))) {
32 return op->emitOpError(valueKind) << " #" << valueIndex
33 << " must be finite field element, but got " << type;
34 }
35 return ::mlir::success();
36}
37
38static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops2(
39 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
40 unsigned valueIndex) {
41 if (!((::llvm::isa<::mlir::IndexType>(type)))) {
42 return op->emitOpError(valueKind) << " #" << valueIndex
43 << " must be index, but got " << type;
44 }
45 return ::mlir::success();
46}
47
48static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops3(
49 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
50 unsigned valueIndex) {
51 if (!(((type.isSignlessInteger(1))) || ((::llvm::isa<::mlir::IndexType>(type))))) {
52 return op->emitOpError(valueKind) << " #" << valueIndex
53 << " must be 1-bit signless integer or index, but got " << type;
54 }
55 return ::mlir::success();
56}
57} // namespace cast
58} // namespace llzk
59namespace llzk {
60namespace cast {
61
62//===----------------------------------------------------------------------===//
63// ::llzk::cast::FeltToIndexOp definitions
64//===----------------------------------------------------------------------===//
65
66namespace detail {
67} // namespace detail
69
70::llvm::LogicalResult FeltToIndexOpAdaptor::verify(::mlir::Location loc) {
71 return ::mlir::success();
72}
73
74void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value) {
75 odsState.addOperands(value);
76 odsState.addTypes(result);
77}
78
79void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
80 odsState.addOperands(value);
81 assert(resultTypes.size() == 1u && "mismatched number of results");
82 odsState.addTypes(resultTypes);
83}
84
85void FeltToIndexOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
86 assert(operands.size() == 1u && "mismatched number of parameters");
87 odsState.addOperands(operands);
88 odsState.addAttributes(attributes);
89 assert(resultTypes.size() == 1u && "mismatched number of return types");
90 odsState.addTypes(resultTypes);
91}
92
93::llvm::LogicalResult FeltToIndexOp::verifyInvariantsImpl() {
94 {
95 unsigned index = 0; (void)index;
96 auto valueGroup0 = getODSOperands(0);
97
98 for (auto v : valueGroup0) {
99 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
100 return ::mlir::failure();
101 }
102 }
103 {
104 unsigned index = 0; (void)index;
105 auto valueGroup0 = getODSResults(0);
106
107 for (auto v : valueGroup0) {
108 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
109 return ::mlir::failure();
110 }
111 }
112 return ::mlir::success();
113}
114
115::llvm::LogicalResult FeltToIndexOp::verifyInvariants() {
116 return verifyInvariantsImpl();
117}
118
119::mlir::ParseResult FeltToIndexOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
120 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
121 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
122 (void)valueOperandsLoc;
123
124 valueOperandsLoc = parser.getCurrentLocation();
125 if (parser.parseOperand(valueRawOperand))
126 return ::mlir::failure();
127 {
128 auto loc = parser.getCurrentLocation();(void)loc;
129 if (parser.parseOptionalAttrDict(result.attributes))
130 return ::mlir::failure();
131 }
132 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIndexType();
133 ::mlir::Type odsBuildableType1 = parser.getBuilder().getType<::llzk::felt::FeltType>();
134 result.addTypes(odsBuildableType0);
135 if (parser.resolveOperands(valueOperands, odsBuildableType1, valueOperandsLoc, result.operands))
136 return ::mlir::failure();
137 return ::mlir::success();
138}
139
140void FeltToIndexOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
141 _odsPrinter << ' ';
142 _odsPrinter << getValue();
143 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
144 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
145}
146
147void FeltToIndexOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
148}
149
150} // namespace cast
151} // namespace llzk
152MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::cast::FeltToIndexOp)
153
154namespace llzk {
155namespace cast {
156
157//===----------------------------------------------------------------------===//
158// ::llzk::cast::IntToFeltOp definitions
159//===----------------------------------------------------------------------===//
160
161namespace detail {
162} // namespace detail
164
165::llvm::LogicalResult IntToFeltOpAdaptor::verify(::mlir::Location loc) {
166 return ::mlir::success();
167}
168
169void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value) {
170 odsState.addOperands(value);
171 odsState.addTypes(result);
172}
173
174void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
175 odsState.addOperands(value);
176 assert(resultTypes.size() == 1u && "mismatched number of results");
177 odsState.addTypes(resultTypes);
178}
179
180void IntToFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
181 assert(operands.size() == 1u && "mismatched number of parameters");
182 odsState.addOperands(operands);
183 odsState.addAttributes(attributes);
184 assert(resultTypes.size() == 1u && "mismatched number of return types");
185 odsState.addTypes(resultTypes);
186}
187
188::llvm::LogicalResult IntToFeltOp::verifyInvariantsImpl() {
189 {
190 unsigned index = 0; (void)index;
191 auto valueGroup0 = getODSOperands(0);
192
193 for (auto v : valueGroup0) {
194 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*this, v.getType(), "operand", index++)))
195 return ::mlir::failure();
196 }
197 }
198 {
199 unsigned index = 0; (void)index;
200 auto valueGroup0 = getODSResults(0);
201
202 for (auto v : valueGroup0) {
203 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "result", index++)))
204 return ::mlir::failure();
205 }
206 }
207 return ::mlir::success();
208}
209
210::llvm::LogicalResult IntToFeltOp::verifyInvariants() {
211 return verifyInvariantsImpl();
212}
213
214::mlir::ParseResult IntToFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
215 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
216 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
217 (void)valueOperandsLoc;
218 ::mlir::Type valueRawType{};
219 ::llvm::ArrayRef<::mlir::Type> valueTypes(&valueRawType, 1);
220
221 valueOperandsLoc = parser.getCurrentLocation();
222 if (parser.parseOperand(valueRawOperand))
223 return ::mlir::failure();
224 if (parser.parseColon())
225 return ::mlir::failure();
226
227 {
228 ::mlir::Type type;
229 if (parser.parseCustomTypeWithFallback(type))
230 return ::mlir::failure();
231 valueRawType = type;
232 }
233 {
234 auto loc = parser.getCurrentLocation();(void)loc;
235 if (parser.parseOptionalAttrDict(result.attributes))
236 return ::mlir::failure();
237 }
238 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
239 result.addTypes(odsBuildableType0);
240 if (parser.resolveOperands(valueOperands, valueTypes, valueOperandsLoc, result.operands))
241 return ::mlir::failure();
242 return ::mlir::success();
243}
244
245void IntToFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
246 _odsPrinter << ' ';
247 _odsPrinter << getValue();
248 _odsPrinter << ' ' << ":";
249 _odsPrinter << ' ';
250 {
251 auto type = getValue().getType();
252 if (auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
253 _odsPrinter.printStrippedAttrOrType(validType);
254 else
255 _odsPrinter << type;
256 }
257 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
258 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
259}
260
261void IntToFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
262}
263
264} // namespace cast
265} // namespace llzk
266MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::cast::IntToFeltOp)
267
268
269#endif // GET_OP_CLASSES
270
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:70
FeltToIndexOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:59
FeltToIndexOpAdaptor(FeltToIndexOp op)
Definition Ops.cpp.inc:68
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:115
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:147
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
Definition Ops.cpp.inc:74
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
Definition Ops.h.inc:122
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:140
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:135
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:119
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:116
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:93
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:165
IntToFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:195
IntToFeltOpAdaptor(IntToFeltOp op)
Definition Ops.cpp.inc:163
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:245
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:188
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:261
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:252
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:214
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
Definition Ops.cpp.inc:169
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:271
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:210
::mlir::TypedValue<::mlir::Type > getValue()
Definition Ops.h.inc:258