LLZK 0.1.0
Veridise's ZK Language IR
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
28#endif // GET_OP_LIST
29
30#ifdef GET_OP_CLASSES
31#undef GET_OP_CLASSES
32
33
34//===----------------------------------------------------------------------===//
35// Local Utility Method Definitions
36//===----------------------------------------------------------------------===//
37
38namespace llzk {
39namespace felt {
40
41static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops1(
42 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
43 unsigned valueIndex) {
44 if (!((::llvm::isa<llzk::polymorphic::TypeVarType,::llzk::felt::FeltType>(type)))) {
45 return op->emitOpError(valueKind) << " #" << valueIndex
46 << " must be finite field element or type variable, but got " << type;
47 }
48 return ::mlir::success();
49}
50
51static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops2(
52 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
53 unsigned valueIndex) {
54 if (!((::llvm::isa<::llzk::felt::FeltType>(type)))) {
55 return op->emitOpError(valueKind) << " #" << valueIndex
56 << " must be finite field element, but got " << type;
57 }
58 return ::mlir::success();
59}
60
61static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
62 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
63 if (attr && !((::llvm::isa<::llzk::felt::FeltConstAttr>(attr))))
64 return emitError() << "attribute '" << attrName
65 << "' failed to satisfy constraint: finite field element";
66 return ::mlir::success();
67}
68static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
69 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
70 return __mlir_ods_local_attr_constraint_Ops1(attr, attrName, [op]() {
71 return op->emitOpError();
72 });
73}
74} // namespace felt
75} // namespace llzk
76namespace llzk {
77namespace felt {
78
79//===----------------------------------------------------------------------===//
80// ::llzk::felt::AddFeltOp definitions
81//===----------------------------------------------------------------------===//
82
83namespace detail {
84} // namespace detail
86
87::llvm::LogicalResult AddFeltOpAdaptor::verify(::mlir::Location loc) {
88 return ::mlir::success();
89}
90
91void AddFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
92 odsState.addOperands(lhs);
93 odsState.addOperands(rhs);
94 odsState.addTypes(result);
95}
96
97void AddFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
98 odsState.addOperands(lhs);
99 odsState.addOperands(rhs);
100
101 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
102 if (::mlir::succeeded(AddFeltOp::inferReturnTypes(odsBuilder.getContext(),
103 odsState.location, odsState.operands,
104 odsState.attributes.getDictionary(odsState.getContext()),
105 odsState.getRawProperties(),
106 odsState.regions, inferredReturnTypes)))
107 odsState.addTypes(inferredReturnTypes);
108 else
109 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
110
111}
112
113void AddFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
114 odsState.addOperands(lhs);
115 odsState.addOperands(rhs);
116 assert(resultTypes.size() == 1u && "mismatched number of results");
117 odsState.addTypes(resultTypes);
118}
119
120void AddFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
121 assert(operands.size() == 2u && "mismatched number of parameters");
122 odsState.addOperands(operands);
123 odsState.addAttributes(attributes);
124 assert(resultTypes.size() == 1u && "mismatched number of return types");
125 odsState.addTypes(resultTypes);
126}
127
128void AddFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
129 assert(operands.size() == 2u && "mismatched number of parameters");
130 odsState.addOperands(operands);
131 odsState.addAttributes(attributes);
132
133 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
134 if (::mlir::succeeded(AddFeltOp::inferReturnTypes(odsBuilder.getContext(),
135 odsState.location, operands,
136 odsState.attributes.getDictionary(odsState.getContext()),
137 odsState.getRawProperties(),
138 odsState.regions, inferredReturnTypes))) {
139 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
140 odsState.addTypes(inferredReturnTypes);
141 } else {
142 ::llvm::report_fatal_error("Failed to infer result type(s).");
143 }
144}
145
146::llvm::LogicalResult AddFeltOp::verifyInvariantsImpl() {
147 {
148 unsigned index = 0; (void)index;
149 auto valueGroup0 = getODSOperands(0);
150
151 for (auto v : valueGroup0) {
152 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
153 return ::mlir::failure();
154 }
155 auto valueGroup1 = getODSOperands(1);
156
157 for (auto v : valueGroup1) {
158 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
159 return ::mlir::failure();
160 }
161 }
162 {
163 unsigned index = 0; (void)index;
164 auto valueGroup0 = getODSResults(0);
165
166 for (auto v : valueGroup0) {
167 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
168 return ::mlir::failure();
169 }
170 }
171 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
172 return emitOpError("failed to verify that result type matches with lhs type");
173 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
174 return emitOpError("failed to verify that result type matches with rhs type");
175 return ::mlir::success();
176}
177
178::llvm::LogicalResult AddFeltOp::verifyInvariants() {
179 return verifyInvariantsImpl();
180}
181
182::llvm::LogicalResult AddFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
183 inferredReturnTypes.resize(1);
184 ::mlir::Builder odsBuilder(context);
185 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
186 inferredReturnTypes[0] = odsInferredType0;
187 return ::mlir::success();
188}
189
190::mlir::ParseResult AddFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
191 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
192 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
193 (void)lhsOperandsLoc;
194 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
195 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
196 (void)rhsOperandsLoc;
197 ::mlir::Type lhsRawType{};
198 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
199 ::mlir::Type rhsRawType{};
200 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
201
202 lhsOperandsLoc = parser.getCurrentLocation();
203 if (parser.parseOperand(lhsRawOperand))
204 return ::mlir::failure();
205 if (parser.parseComma())
206 return ::mlir::failure();
207
208 rhsOperandsLoc = parser.getCurrentLocation();
209 if (parser.parseOperand(rhsRawOperand))
210 return ::mlir::failure();
211 {
212 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
213 if (odsResult) return ::mlir::failure();
214 }
215 {
216 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
217 if (odsResult) return ::mlir::failure();
218 }
219 {
220 auto loc = parser.getCurrentLocation();(void)loc;
221 if (parser.parseOptionalAttrDict(result.attributes))
222 return ::mlir::failure();
223 }
224 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
225 result.addTypes(odsBuildableType0);
226 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
227 return ::mlir::failure();
228 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
229 return ::mlir::failure();
230 return ::mlir::success();
231}
232
233void AddFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
234 _odsPrinter << ' ';
235 _odsPrinter << getLhs();
236 _odsPrinter << ",";
237 _odsPrinter << ' ';
238 _odsPrinter << getRhs();
239 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
240 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
241 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
242 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
243}
244
245void AddFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
246}
247
248} // namespace felt
249} // namespace llzk
250MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::AddFeltOp)
251
252namespace llzk {
253namespace felt {
254
255//===----------------------------------------------------------------------===//
256// ::llzk::felt::AndFeltOp definitions
257//===----------------------------------------------------------------------===//
258
259namespace detail {
260} // namespace detail
262
263::llvm::LogicalResult AndFeltOpAdaptor::verify(::mlir::Location loc) {
264 return ::mlir::success();
265}
266
267void AndFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
268 odsState.addOperands(lhs);
269 odsState.addOperands(rhs);
270 odsState.addTypes(result);
271}
272
273void AndFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
274 odsState.addOperands(lhs);
275 odsState.addOperands(rhs);
276
277 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
278 if (::mlir::succeeded(AndFeltOp::inferReturnTypes(odsBuilder.getContext(),
279 odsState.location, odsState.operands,
280 odsState.attributes.getDictionary(odsState.getContext()),
281 odsState.getRawProperties(),
282 odsState.regions, inferredReturnTypes)))
283 odsState.addTypes(inferredReturnTypes);
284 else
285 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
286
287}
288
289void AndFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
290 odsState.addOperands(lhs);
291 odsState.addOperands(rhs);
292 assert(resultTypes.size() == 1u && "mismatched number of results");
293 odsState.addTypes(resultTypes);
294}
295
296void AndFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
297 assert(operands.size() == 2u && "mismatched number of parameters");
298 odsState.addOperands(operands);
299 odsState.addAttributes(attributes);
300 assert(resultTypes.size() == 1u && "mismatched number of return types");
301 odsState.addTypes(resultTypes);
302}
303
304void AndFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
305 assert(operands.size() == 2u && "mismatched number of parameters");
306 odsState.addOperands(operands);
307 odsState.addAttributes(attributes);
308
309 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
310 if (::mlir::succeeded(AndFeltOp::inferReturnTypes(odsBuilder.getContext(),
311 odsState.location, operands,
312 odsState.attributes.getDictionary(odsState.getContext()),
313 odsState.getRawProperties(),
314 odsState.regions, inferredReturnTypes))) {
315 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
316 odsState.addTypes(inferredReturnTypes);
317 } else {
318 ::llvm::report_fatal_error("Failed to infer result type(s).");
319 }
320}
321
322::llvm::LogicalResult AndFeltOp::verifyInvariantsImpl() {
323 {
324 unsigned index = 0; (void)index;
325 auto valueGroup0 = getODSOperands(0);
326
327 for (auto v : valueGroup0) {
328 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
329 return ::mlir::failure();
330 }
331 auto valueGroup1 = getODSOperands(1);
332
333 for (auto v : valueGroup1) {
334 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
335 return ::mlir::failure();
336 }
337 }
338 {
339 unsigned index = 0; (void)index;
340 auto valueGroup0 = getODSResults(0);
341
342 for (auto v : valueGroup0) {
343 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
344 return ::mlir::failure();
345 }
346 }
347 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
348 return emitOpError("failed to verify that result type matches with lhs type");
349 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
350 return emitOpError("failed to verify that result type matches with rhs type");
351 return ::mlir::success();
352}
353
354::llvm::LogicalResult AndFeltOp::verifyInvariants() {
355 return verifyInvariantsImpl();
356}
357
358::llvm::LogicalResult AndFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
359 inferredReturnTypes.resize(1);
360 ::mlir::Builder odsBuilder(context);
361 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
362 inferredReturnTypes[0] = odsInferredType0;
363 return ::mlir::success();
364}
365
366::mlir::ParseResult AndFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
367 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
368 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
369 (void)lhsOperandsLoc;
370 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
371 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
372 (void)rhsOperandsLoc;
373 ::mlir::Type lhsRawType{};
374 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
375 ::mlir::Type rhsRawType{};
376 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
377
378 lhsOperandsLoc = parser.getCurrentLocation();
379 if (parser.parseOperand(lhsRawOperand))
380 return ::mlir::failure();
381 if (parser.parseComma())
382 return ::mlir::failure();
383
384 rhsOperandsLoc = parser.getCurrentLocation();
385 if (parser.parseOperand(rhsRawOperand))
386 return ::mlir::failure();
387 {
388 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
389 if (odsResult) return ::mlir::failure();
390 }
391 {
392 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
393 if (odsResult) return ::mlir::failure();
394 }
395 {
396 auto loc = parser.getCurrentLocation();(void)loc;
397 if (parser.parseOptionalAttrDict(result.attributes))
398 return ::mlir::failure();
399 }
400 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
401 result.addTypes(odsBuildableType0);
402 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
403 return ::mlir::failure();
404 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
405 return ::mlir::failure();
406 return ::mlir::success();
407}
408
409void AndFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
410 _odsPrinter << ' ';
411 _odsPrinter << getLhs();
412 _odsPrinter << ",";
413 _odsPrinter << ' ';
414 _odsPrinter << getRhs();
415 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
416 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
417 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
418 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
419}
420
421void AndFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
422}
423
424} // namespace felt
425} // namespace llzk
426MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::AndFeltOp)
427
428namespace llzk {
429namespace felt {
430
431//===----------------------------------------------------------------------===//
432// ::llzk::felt::DivFeltOp definitions
433//===----------------------------------------------------------------------===//
434
435namespace detail {
436} // namespace detail
438
439::llvm::LogicalResult DivFeltOpAdaptor::verify(::mlir::Location loc) {
440 return ::mlir::success();
441}
442
443void DivFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
444 odsState.addOperands(lhs);
445 odsState.addOperands(rhs);
446 odsState.addTypes(result);
447}
448
449void DivFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
450 odsState.addOperands(lhs);
451 odsState.addOperands(rhs);
452
453 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
454 if (::mlir::succeeded(DivFeltOp::inferReturnTypes(odsBuilder.getContext(),
455 odsState.location, odsState.operands,
456 odsState.attributes.getDictionary(odsState.getContext()),
457 odsState.getRawProperties(),
458 odsState.regions, inferredReturnTypes)))
459 odsState.addTypes(inferredReturnTypes);
460 else
461 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
462
463}
464
465void DivFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
466 odsState.addOperands(lhs);
467 odsState.addOperands(rhs);
468 assert(resultTypes.size() == 1u && "mismatched number of results");
469 odsState.addTypes(resultTypes);
470}
471
472void DivFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
473 assert(operands.size() == 2u && "mismatched number of parameters");
474 odsState.addOperands(operands);
475 odsState.addAttributes(attributes);
476 assert(resultTypes.size() == 1u && "mismatched number of return types");
477 odsState.addTypes(resultTypes);
478}
479
480void DivFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
481 assert(operands.size() == 2u && "mismatched number of parameters");
482 odsState.addOperands(operands);
483 odsState.addAttributes(attributes);
484
485 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
486 if (::mlir::succeeded(DivFeltOp::inferReturnTypes(odsBuilder.getContext(),
487 odsState.location, operands,
488 odsState.attributes.getDictionary(odsState.getContext()),
489 odsState.getRawProperties(),
490 odsState.regions, inferredReturnTypes))) {
491 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
492 odsState.addTypes(inferredReturnTypes);
493 } else {
494 ::llvm::report_fatal_error("Failed to infer result type(s).");
495 }
496}
497
498::llvm::LogicalResult DivFeltOp::verifyInvariantsImpl() {
499 {
500 unsigned index = 0; (void)index;
501 auto valueGroup0 = getODSOperands(0);
502
503 for (auto v : valueGroup0) {
504 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
505 return ::mlir::failure();
506 }
507 auto valueGroup1 = getODSOperands(1);
508
509 for (auto v : valueGroup1) {
510 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
511 return ::mlir::failure();
512 }
513 }
514 {
515 unsigned index = 0; (void)index;
516 auto valueGroup0 = getODSResults(0);
517
518 for (auto v : valueGroup0) {
519 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
520 return ::mlir::failure();
521 }
522 }
523 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
524 return emitOpError("failed to verify that result type matches with lhs type");
525 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
526 return emitOpError("failed to verify that result type matches with rhs type");
527 return ::mlir::success();
528}
529
530::llvm::LogicalResult DivFeltOp::verifyInvariants() {
531 return verifyInvariantsImpl();
532}
533
534::llvm::LogicalResult DivFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
535 inferredReturnTypes.resize(1);
536 ::mlir::Builder odsBuilder(context);
537 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
538 inferredReturnTypes[0] = odsInferredType0;
539 return ::mlir::success();
540}
541
542::mlir::ParseResult DivFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
543 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
544 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
545 (void)lhsOperandsLoc;
546 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
547 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
548 (void)rhsOperandsLoc;
549 ::mlir::Type lhsRawType{};
550 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
551 ::mlir::Type rhsRawType{};
552 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
553
554 lhsOperandsLoc = parser.getCurrentLocation();
555 if (parser.parseOperand(lhsRawOperand))
556 return ::mlir::failure();
557 if (parser.parseComma())
558 return ::mlir::failure();
559
560 rhsOperandsLoc = parser.getCurrentLocation();
561 if (parser.parseOperand(rhsRawOperand))
562 return ::mlir::failure();
563 {
564 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
565 if (odsResult) return ::mlir::failure();
566 }
567 {
568 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
569 if (odsResult) return ::mlir::failure();
570 }
571 {
572 auto loc = parser.getCurrentLocation();(void)loc;
573 if (parser.parseOptionalAttrDict(result.attributes))
574 return ::mlir::failure();
575 }
576 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
577 result.addTypes(odsBuildableType0);
578 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
579 return ::mlir::failure();
580 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
581 return ::mlir::failure();
582 return ::mlir::success();
583}
584
585void DivFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
586 _odsPrinter << ' ';
587 _odsPrinter << getLhs();
588 _odsPrinter << ",";
589 _odsPrinter << ' ';
590 _odsPrinter << getRhs();
591 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
592 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
593 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
594 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
595}
596
597void DivFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
598}
599
600} // namespace felt
601} // namespace llzk
602MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::DivFeltOp)
603
604namespace llzk {
605namespace felt {
606
607//===----------------------------------------------------------------------===//
608// ::llzk::felt::FeltConstantOp definitions
609//===----------------------------------------------------------------------===//
610
611namespace detail {
613
615 auto attr = getValueAttr();
616 return attr.getValue();
617}
618
619} // namespace detail
621
622::llvm::LogicalResult FeltConstantOpAdaptor::verify(::mlir::Location loc) {
623 auto tblgen_value = getProperties().value; (void)tblgen_value;
624 if (!tblgen_value) return emitError(loc, "'felt.const' op ""requires attribute 'value'");
625
626 if (tblgen_value && !((::llvm::isa<::llzk::felt::FeltConstAttr>(tblgen_value))))
627 return emitError(loc, "'felt.const' op ""attribute 'value' failed to satisfy constraint: finite field element");
628 return ::mlir::success();
629}
630
631::llvm::LogicalResult FeltConstantOp::setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
632 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
633 if (!dict) {
634 emitError() << "expected DictionaryAttr to set properties";
635 return ::mlir::failure();
636 }
637
638 {
639 auto &propStorage = prop.value;
640 auto attr = dict.get("value");
641 if (attr) {
642 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<decltype(propStorage)>>(attr);
643 if (convertedAttr) {
644 propStorage = convertedAttr;
645 } else {
646 emitError() << "Invalid attribute `value` in property conversion: " << attr;
647 return ::mlir::failure();
648 }
649 }
650 }
651 return ::mlir::success();
652}
653
654::mlir::Attribute FeltConstantOp::getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop) {
655 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
656 ::mlir::Builder odsBuilder{ctx};
657
658 {
659 const auto &propStorage = prop.value;
660 if (propStorage)
661 attrs.push_back(odsBuilder.getNamedAttr("value",
662 propStorage));
663 }
664
665 if (!attrs.empty())
666 return odsBuilder.getDictionaryAttr(attrs);
667 return {};
668}
669
671 return llvm::hash_combine(
672 llvm::hash_value(prop.value.getAsOpaquePointer()));
673}
674
675std::optional<mlir::Attribute> FeltConstantOp::getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name) {
676 if (name == "value")
677 return prop.value;
678 return std::nullopt;
679}
680
681void FeltConstantOp::setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value) {
682 if (name == "value") {
683 prop.value = ::llvm::dyn_cast_or_null<std::remove_reference_t<decltype(prop.value)>>(value);
684 return;
685 }
686}
687
688void FeltConstantOp::populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs) {
689 if (prop.value) attrs.append("value", prop.value);
690}
691
692::llvm::LogicalResult FeltConstantOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
693 {
694 ::mlir::Attribute attr = attrs.get(getValueAttrName(opName));
695 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr, "value", emitError)))
696 return ::mlir::failure();
697 }
698 return ::mlir::success();
699}
700
701::llvm::LogicalResult FeltConstantOp::readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state) {
702 auto &prop = state.getOrAddProperties<Properties>(); (void)prop;
703 if (::mlir::failed(reader.readAttribute(prop.value)))
704 return ::mlir::failure();
705 return ::mlir::success();
706}
707
708void FeltConstantOp::writeProperties(::mlir::DialectBytecodeWriter &writer) {
709 auto &prop = getProperties(); (void)prop;
710 writer.writeAttribute(prop.value);
711}
712
714 auto attr = getValueAttr();
715 return attr.getValue();
716}
717
718void FeltConstantOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::felt::FeltConstAttr value) {
719 odsState.getOrAddProperties<Properties>().value = value;
720 odsState.addTypes(result);
721}
722
723void FeltConstantOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::felt::FeltConstAttr value) {
724 odsState.getOrAddProperties<Properties>().value = value;
725
726 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
727 if (::mlir::succeeded(FeltConstantOp::inferReturnTypes(odsBuilder.getContext(),
728 odsState.location, odsState.operands,
729 odsState.attributes.getDictionary(odsState.getContext()),
730 odsState.getRawProperties(),
731 odsState.regions, inferredReturnTypes)))
732 odsState.addTypes(inferredReturnTypes);
733 else
734 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
735
736}
737
738void FeltConstantOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::felt::FeltConstAttr value) {
739 odsState.getOrAddProperties<Properties>().value = value;
740 assert(resultTypes.size() == 1u && "mismatched number of results");
741 odsState.addTypes(resultTypes);
742}
743
744void FeltConstantOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
745 assert(operands.size() == 0u && "mismatched number of parameters");
746 odsState.addOperands(operands);
747 odsState.addAttributes(attributes);
748 assert(resultTypes.size() == 1u && "mismatched number of return types");
749 odsState.addTypes(resultTypes);
750
751 if (!attributes.empty()) {
752 ::mlir::OpaqueProperties properties =
753 &odsState.getOrAddProperties<FeltConstantOp::Properties>();
754 std::optional<::mlir::RegisteredOperationName> info =
755 odsState.name.getRegisteredInfo();
756 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
757 odsState.attributes.getDictionary(odsState.getContext()), nullptr)))
758 ::llvm::report_fatal_error("Property conversion failed.");
759 }
760}
761
762void FeltConstantOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
763 assert(operands.size() == 0u && "mismatched number of parameters");
764 odsState.addOperands(operands);
765 odsState.addAttributes(attributes);
766
767 if (!attributes.empty()) {
768 ::mlir::OpaqueProperties properties =
769 &odsState.getOrAddProperties<FeltConstantOp::Properties>();
770 std::optional<::mlir::RegisteredOperationName> info =
771 odsState.name.getRegisteredInfo();
772 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
773 odsState.attributes.getDictionary(odsState.getContext()), nullptr)))
774 ::llvm::report_fatal_error("Property conversion failed.");
775 }
776 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
777 if (::mlir::succeeded(FeltConstantOp::inferReturnTypes(odsBuilder.getContext(),
778 odsState.location, operands,
779 odsState.attributes.getDictionary(odsState.getContext()),
780 odsState.getRawProperties(),
781 odsState.regions, inferredReturnTypes))) {
782 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
783 odsState.addTypes(inferredReturnTypes);
784 } else {
785 ::llvm::report_fatal_error("Failed to infer result type(s).");
786 }
787}
788
790 auto tblgen_value = getProperties().value; (void)tblgen_value;
791 if (!tblgen_value) return emitOpError("requires attribute 'value'");
792
793 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*this, tblgen_value, "value")))
794 return ::mlir::failure();
795 {
796 unsigned index = 0; (void)index;
797 auto valueGroup0 = getODSResults(0);
798
799 for (auto v : valueGroup0) {
800 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
801 return ::mlir::failure();
802 }
803 }
804 return ::mlir::success();
805}
806
807::llvm::LogicalResult FeltConstantOp::verifyInvariants() {
808 return verifyInvariantsImpl();
809}
810
811::llvm::LogicalResult FeltConstantOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
812 inferredReturnTypes.resize(1);
813 ::mlir::Builder odsBuilder(context);
814 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
815 inferredReturnTypes[0] = odsInferredType0;
816 return ::mlir::success();
817}
818
819::mlir::ParseResult FeltConstantOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
820 ::llzk::felt::FeltConstAttr valueAttr;
821
822 if (parser.parseCustomAttributeWithFallback(valueAttr, ::mlir::Type{})) {
823 return ::mlir::failure();
824 }
825 if (valueAttr) result.getOrAddProperties<FeltConstantOp::Properties>().value = valueAttr;
826 {
827 auto loc = parser.getCurrentLocation();(void)loc;
828 if (parser.parseOptionalAttrDict(result.attributes))
829 return ::mlir::failure();
830 if (failed(verifyInherentAttrs(result.name, result.attributes, [&]() {
831 return parser.emitError(loc) << "'" << result.name.getStringRef() << "' op ";
832 })))
833 return ::mlir::failure();
834 }
835 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
836 result.addTypes(odsBuildableType0);
837 return ::mlir::success();
838}
839
840void FeltConstantOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
841 _odsPrinter << ' ';
842_odsPrinter.printStrippedAttrOrType(getValueAttr());
843 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
844 elidedAttrs.push_back("value");
845 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
846}
847
848void FeltConstantOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
849}
850
851} // namespace felt
852} // namespace llzk
853MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::FeltConstantOp)
854
855namespace llzk {
856namespace felt {
857
858//===----------------------------------------------------------------------===//
859// ::llzk::felt::FeltNonDetOp definitions
860//===----------------------------------------------------------------------===//
861
862namespace detail {
863} // namespace detail
865
866::llvm::LogicalResult FeltNonDetOpAdaptor::verify(::mlir::Location loc) {
867 return ::mlir::success();
868}
869
870void FeltNonDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result) {
871 odsState.addTypes(result);
872}
873
874void FeltNonDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState) {
875 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
876 if (::mlir::succeeded(FeltNonDetOp::inferReturnTypes(odsBuilder.getContext(),
877 odsState.location, odsState.operands,
878 odsState.attributes.getDictionary(odsState.getContext()),
879 odsState.getRawProperties(),
880 odsState.regions, inferredReturnTypes)))
881 odsState.addTypes(inferredReturnTypes);
882 else
883 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
884
885}
886
887void FeltNonDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes) {
888 assert(resultTypes.size() == 1u && "mismatched number of results");
889 odsState.addTypes(resultTypes);
890}
891
892void FeltNonDetOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
893 assert(operands.size() == 0u && "mismatched number of parameters");
894 odsState.addOperands(operands);
895 odsState.addAttributes(attributes);
896 assert(resultTypes.size() == 1u && "mismatched number of return types");
897 odsState.addTypes(resultTypes);
898}
899
900void FeltNonDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
901 assert(operands.size() == 0u && "mismatched number of parameters");
902 odsState.addOperands(operands);
903 odsState.addAttributes(attributes);
904
905 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
906 if (::mlir::succeeded(FeltNonDetOp::inferReturnTypes(odsBuilder.getContext(),
907 odsState.location, operands,
908 odsState.attributes.getDictionary(odsState.getContext()),
909 odsState.getRawProperties(),
910 odsState.regions, inferredReturnTypes))) {
911 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
912 odsState.addTypes(inferredReturnTypes);
913 } else {
914 ::llvm::report_fatal_error("Failed to infer result type(s).");
915 }
916}
917
918::llvm::LogicalResult FeltNonDetOp::verifyInvariantsImpl() {
919 {
920 unsigned index = 0; (void)index;
921 auto valueGroup0 = getODSResults(0);
922
923 for (auto v : valueGroup0) {
924 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
925 return ::mlir::failure();
926 }
927 }
928 return ::mlir::success();
929}
930
931::llvm::LogicalResult FeltNonDetOp::verifyInvariants() {
932 return verifyInvariantsImpl();
933}
934
935::llvm::LogicalResult FeltNonDetOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
936 inferredReturnTypes.resize(1);
937 ::mlir::Builder odsBuilder(context);
938 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
939 inferredReturnTypes[0] = odsInferredType0;
940 return ::mlir::success();
941}
942
943::mlir::ParseResult FeltNonDetOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
944 {
945 auto loc = parser.getCurrentLocation();(void)loc;
946 if (parser.parseOptionalAttrDict(result.attributes))
947 return ::mlir::failure();
948 }
949 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
950 result.addTypes(odsBuildableType0);
951 return ::mlir::success();
952}
953
954void FeltNonDetOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
955 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
956 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
957}
958
959void FeltNonDetOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
960}
961
962} // namespace felt
963} // namespace llzk
964MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::FeltNonDetOp)
965
966namespace llzk {
967namespace felt {
968
969//===----------------------------------------------------------------------===//
970// ::llzk::felt::InvFeltOp definitions
971//===----------------------------------------------------------------------===//
972
973namespace detail {
974} // namespace detail
976
977::llvm::LogicalResult InvFeltOpAdaptor::verify(::mlir::Location loc) {
978 return ::mlir::success();
979}
980
981void InvFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand) {
982 odsState.addOperands(operand);
983 odsState.addTypes(result);
984}
985
986void InvFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand) {
987 odsState.addOperands(operand);
988
989 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
990 if (::mlir::succeeded(InvFeltOp::inferReturnTypes(odsBuilder.getContext(),
991 odsState.location, odsState.operands,
992 odsState.attributes.getDictionary(odsState.getContext()),
993 odsState.getRawProperties(),
994 odsState.regions, inferredReturnTypes)))
995 odsState.addTypes(inferredReturnTypes);
996 else
997 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
998
999}
1000
1001void InvFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand) {
1002 odsState.addOperands(operand);
1003 assert(resultTypes.size() == 1u && "mismatched number of results");
1004 odsState.addTypes(resultTypes);
1005}
1006
1007void InvFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1008 assert(operands.size() == 1u && "mismatched number of parameters");
1009 odsState.addOperands(operands);
1010 odsState.addAttributes(attributes);
1011 assert(resultTypes.size() == 1u && "mismatched number of return types");
1012 odsState.addTypes(resultTypes);
1013}
1014
1015void InvFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1016 assert(operands.size() == 1u && "mismatched number of parameters");
1017 odsState.addOperands(operands);
1018 odsState.addAttributes(attributes);
1019
1020 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1021 if (::mlir::succeeded(InvFeltOp::inferReturnTypes(odsBuilder.getContext(),
1022 odsState.location, operands,
1023 odsState.attributes.getDictionary(odsState.getContext()),
1024 odsState.getRawProperties(),
1025 odsState.regions, inferredReturnTypes))) {
1026 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1027 odsState.addTypes(inferredReturnTypes);
1028 } else {
1029 ::llvm::report_fatal_error("Failed to infer result type(s).");
1030 }
1031}
1032
1033::llvm::LogicalResult InvFeltOp::verifyInvariantsImpl() {
1034 {
1035 unsigned index = 0; (void)index;
1036 auto valueGroup0 = getODSOperands(0);
1037
1038 for (auto v : valueGroup0) {
1039 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1040 return ::mlir::failure();
1041 }
1042 }
1043 {
1044 unsigned index = 0; (void)index;
1045 auto valueGroup0 = getODSResults(0);
1046
1047 for (auto v : valueGroup0) {
1048 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
1049 return ::mlir::failure();
1050 }
1051 }
1052 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1053 return emitOpError("failed to verify that result type matches with operand type");
1054 return ::mlir::success();
1055}
1056
1057::llvm::LogicalResult InvFeltOp::verifyInvariants() {
1058 return verifyInvariantsImpl();
1059}
1060
1061::llvm::LogicalResult InvFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
1062 inferredReturnTypes.resize(1);
1063 ::mlir::Builder odsBuilder(context);
1064 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
1065 inferredReturnTypes[0] = odsInferredType0;
1066 return ::mlir::success();
1067}
1068
1069::mlir::ParseResult InvFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
1070 ::mlir::OpAsmParser::UnresolvedOperand operandRawOperand{};
1071 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> operandOperands(&operandRawOperand, 1); ::llvm::SMLoc operandOperandsLoc;
1072 (void)operandOperandsLoc;
1073 ::mlir::Type operandRawType{};
1074 ::llvm::ArrayRef<::mlir::Type> operandTypes(&operandRawType, 1);
1075
1076 operandOperandsLoc = parser.getCurrentLocation();
1077 if (parser.parseOperand(operandRawOperand))
1078 return ::mlir::failure();
1079 {
1080 auto odsResult = parseInferredOrParsedType(parser, operandRawType, true);
1081 if (odsResult) return ::mlir::failure();
1082 }
1083 {
1084 auto loc = parser.getCurrentLocation();(void)loc;
1085 if (parser.parseOptionalAttrDict(result.attributes))
1086 return ::mlir::failure();
1087 }
1088 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
1089 result.addTypes(odsBuildableType0);
1090 if (parser.resolveOperands(operandOperands, operandTypes, operandOperandsLoc, result.operands))
1091 return ::mlir::failure();
1092 return ::mlir::success();
1093}
1094
1095void InvFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
1096 _odsPrinter << ' ';
1097 _odsPrinter << getOperand();
1098 printInferredOrParsedType(_odsPrinter, *this, getOperand().getType(), true);
1099 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1100 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1101}
1102
1103void InvFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
1104}
1105
1106} // namespace felt
1107} // namespace llzk
1108MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::InvFeltOp)
1109
1110namespace llzk {
1111namespace felt {
1112
1113//===----------------------------------------------------------------------===//
1114// ::llzk::felt::ModFeltOp definitions
1115//===----------------------------------------------------------------------===//
1116
1117namespace detail {
1118} // namespace detail
1120
1121::llvm::LogicalResult ModFeltOpAdaptor::verify(::mlir::Location loc) {
1122 return ::mlir::success();
1123}
1124
1125void ModFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
1126 odsState.addOperands(lhs);
1127 odsState.addOperands(rhs);
1128 odsState.addTypes(result);
1129}
1130
1131void ModFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
1132 odsState.addOperands(lhs);
1133 odsState.addOperands(rhs);
1134
1135 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1136 if (::mlir::succeeded(ModFeltOp::inferReturnTypes(odsBuilder.getContext(),
1137 odsState.location, odsState.operands,
1138 odsState.attributes.getDictionary(odsState.getContext()),
1139 odsState.getRawProperties(),
1140 odsState.regions, inferredReturnTypes)))
1141 odsState.addTypes(inferredReturnTypes);
1142 else
1143 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
1144
1145}
1146
1147void ModFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
1148 odsState.addOperands(lhs);
1149 odsState.addOperands(rhs);
1150 assert(resultTypes.size() == 1u && "mismatched number of results");
1151 odsState.addTypes(resultTypes);
1152}
1153
1154void ModFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1155 assert(operands.size() == 2u && "mismatched number of parameters");
1156 odsState.addOperands(operands);
1157 odsState.addAttributes(attributes);
1158 assert(resultTypes.size() == 1u && "mismatched number of return types");
1159 odsState.addTypes(resultTypes);
1160}
1161
1162void ModFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1163 assert(operands.size() == 2u && "mismatched number of parameters");
1164 odsState.addOperands(operands);
1165 odsState.addAttributes(attributes);
1166
1167 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1168 if (::mlir::succeeded(ModFeltOp::inferReturnTypes(odsBuilder.getContext(),
1169 odsState.location, operands,
1170 odsState.attributes.getDictionary(odsState.getContext()),
1171 odsState.getRawProperties(),
1172 odsState.regions, inferredReturnTypes))) {
1173 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1174 odsState.addTypes(inferredReturnTypes);
1175 } else {
1176 ::llvm::report_fatal_error("Failed to infer result type(s).");
1177 }
1178}
1179
1180::llvm::LogicalResult ModFeltOp::verifyInvariantsImpl() {
1181 {
1182 unsigned index = 0; (void)index;
1183 auto valueGroup0 = getODSOperands(0);
1184
1185 for (auto v : valueGroup0) {
1186 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1187 return ::mlir::failure();
1188 }
1189 auto valueGroup1 = getODSOperands(1);
1190
1191 for (auto v : valueGroup1) {
1192 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1193 return ::mlir::failure();
1194 }
1195 }
1196 {
1197 unsigned index = 0; (void)index;
1198 auto valueGroup0 = getODSResults(0);
1199
1200 for (auto v : valueGroup0) {
1201 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
1202 return ::mlir::failure();
1203 }
1204 }
1205 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1206 return emitOpError("failed to verify that result type matches with lhs type");
1207 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1208 return emitOpError("failed to verify that result type matches with rhs type");
1209 return ::mlir::success();
1210}
1211
1212::llvm::LogicalResult ModFeltOp::verifyInvariants() {
1213 return verifyInvariantsImpl();
1214}
1215
1216::llvm::LogicalResult ModFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
1217 inferredReturnTypes.resize(1);
1218 ::mlir::Builder odsBuilder(context);
1219 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
1220 inferredReturnTypes[0] = odsInferredType0;
1221 return ::mlir::success();
1222}
1223
1224::mlir::ParseResult ModFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
1225 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
1226 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
1227 (void)lhsOperandsLoc;
1228 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
1229 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
1230 (void)rhsOperandsLoc;
1231 ::mlir::Type lhsRawType{};
1232 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
1233 ::mlir::Type rhsRawType{};
1234 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
1235
1236 lhsOperandsLoc = parser.getCurrentLocation();
1237 if (parser.parseOperand(lhsRawOperand))
1238 return ::mlir::failure();
1239 if (parser.parseComma())
1240 return ::mlir::failure();
1241
1242 rhsOperandsLoc = parser.getCurrentLocation();
1243 if (parser.parseOperand(rhsRawOperand))
1244 return ::mlir::failure();
1245 {
1246 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
1247 if (odsResult) return ::mlir::failure();
1248 }
1249 {
1250 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
1251 if (odsResult) return ::mlir::failure();
1252 }
1253 {
1254 auto loc = parser.getCurrentLocation();(void)loc;
1255 if (parser.parseOptionalAttrDict(result.attributes))
1256 return ::mlir::failure();
1257 }
1258 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
1259 result.addTypes(odsBuildableType0);
1260 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
1261 return ::mlir::failure();
1262 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
1263 return ::mlir::failure();
1264 return ::mlir::success();
1265}
1266
1267void ModFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
1268 _odsPrinter << ' ';
1269 _odsPrinter << getLhs();
1270 _odsPrinter << ",";
1271 _odsPrinter << ' ';
1272 _odsPrinter << getRhs();
1273 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
1274 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
1275 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1276 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1277}
1278
1279void ModFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
1280}
1281
1282} // namespace felt
1283} // namespace llzk
1284MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::ModFeltOp)
1285
1286namespace llzk {
1287namespace felt {
1288
1289//===----------------------------------------------------------------------===//
1290// ::llzk::felt::MulFeltOp definitions
1291//===----------------------------------------------------------------------===//
1292
1293namespace detail {
1294} // namespace detail
1296
1297::llvm::LogicalResult MulFeltOpAdaptor::verify(::mlir::Location loc) {
1298 return ::mlir::success();
1299}
1300
1301void MulFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
1302 odsState.addOperands(lhs);
1303 odsState.addOperands(rhs);
1304 odsState.addTypes(result);
1305}
1306
1307void MulFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
1308 odsState.addOperands(lhs);
1309 odsState.addOperands(rhs);
1310
1311 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1312 if (::mlir::succeeded(MulFeltOp::inferReturnTypes(odsBuilder.getContext(),
1313 odsState.location, odsState.operands,
1314 odsState.attributes.getDictionary(odsState.getContext()),
1315 odsState.getRawProperties(),
1316 odsState.regions, inferredReturnTypes)))
1317 odsState.addTypes(inferredReturnTypes);
1318 else
1319 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
1320
1321}
1322
1323void MulFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
1324 odsState.addOperands(lhs);
1325 odsState.addOperands(rhs);
1326 assert(resultTypes.size() == 1u && "mismatched number of results");
1327 odsState.addTypes(resultTypes);
1328}
1329
1330void MulFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1331 assert(operands.size() == 2u && "mismatched number of parameters");
1332 odsState.addOperands(operands);
1333 odsState.addAttributes(attributes);
1334 assert(resultTypes.size() == 1u && "mismatched number of return types");
1335 odsState.addTypes(resultTypes);
1336}
1337
1338void MulFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1339 assert(operands.size() == 2u && "mismatched number of parameters");
1340 odsState.addOperands(operands);
1341 odsState.addAttributes(attributes);
1342
1343 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1344 if (::mlir::succeeded(MulFeltOp::inferReturnTypes(odsBuilder.getContext(),
1345 odsState.location, operands,
1346 odsState.attributes.getDictionary(odsState.getContext()),
1347 odsState.getRawProperties(),
1348 odsState.regions, inferredReturnTypes))) {
1349 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1350 odsState.addTypes(inferredReturnTypes);
1351 } else {
1352 ::llvm::report_fatal_error("Failed to infer result type(s).");
1353 }
1354}
1355
1356::llvm::LogicalResult MulFeltOp::verifyInvariantsImpl() {
1357 {
1358 unsigned index = 0; (void)index;
1359 auto valueGroup0 = getODSOperands(0);
1360
1361 for (auto v : valueGroup0) {
1362 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1363 return ::mlir::failure();
1364 }
1365 auto valueGroup1 = getODSOperands(1);
1366
1367 for (auto v : valueGroup1) {
1368 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1369 return ::mlir::failure();
1370 }
1371 }
1372 {
1373 unsigned index = 0; (void)index;
1374 auto valueGroup0 = getODSResults(0);
1375
1376 for (auto v : valueGroup0) {
1377 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
1378 return ::mlir::failure();
1379 }
1380 }
1381 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1382 return emitOpError("failed to verify that result type matches with lhs type");
1383 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1384 return emitOpError("failed to verify that result type matches with rhs type");
1385 return ::mlir::success();
1386}
1387
1388::llvm::LogicalResult MulFeltOp::verifyInvariants() {
1389 return verifyInvariantsImpl();
1390}
1391
1392::llvm::LogicalResult MulFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
1393 inferredReturnTypes.resize(1);
1394 ::mlir::Builder odsBuilder(context);
1395 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
1396 inferredReturnTypes[0] = odsInferredType0;
1397 return ::mlir::success();
1398}
1399
1400::mlir::ParseResult MulFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
1401 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
1402 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
1403 (void)lhsOperandsLoc;
1404 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
1405 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
1406 (void)rhsOperandsLoc;
1407 ::mlir::Type lhsRawType{};
1408 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
1409 ::mlir::Type rhsRawType{};
1410 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
1411
1412 lhsOperandsLoc = parser.getCurrentLocation();
1413 if (parser.parseOperand(lhsRawOperand))
1414 return ::mlir::failure();
1415 if (parser.parseComma())
1416 return ::mlir::failure();
1417
1418 rhsOperandsLoc = parser.getCurrentLocation();
1419 if (parser.parseOperand(rhsRawOperand))
1420 return ::mlir::failure();
1421 {
1422 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
1423 if (odsResult) return ::mlir::failure();
1424 }
1425 {
1426 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
1427 if (odsResult) return ::mlir::failure();
1428 }
1429 {
1430 auto loc = parser.getCurrentLocation();(void)loc;
1431 if (parser.parseOptionalAttrDict(result.attributes))
1432 return ::mlir::failure();
1433 }
1434 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
1435 result.addTypes(odsBuildableType0);
1436 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
1437 return ::mlir::failure();
1438 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
1439 return ::mlir::failure();
1440 return ::mlir::success();
1441}
1442
1443void MulFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
1444 _odsPrinter << ' ';
1445 _odsPrinter << getLhs();
1446 _odsPrinter << ",";
1447 _odsPrinter << ' ';
1448 _odsPrinter << getRhs();
1449 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
1450 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
1451 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1452 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1453}
1454
1455void MulFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
1456}
1457
1458} // namespace felt
1459} // namespace llzk
1460MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::MulFeltOp)
1461
1462namespace llzk {
1463namespace felt {
1464
1465//===----------------------------------------------------------------------===//
1466// ::llzk::felt::NegFeltOp definitions
1467//===----------------------------------------------------------------------===//
1468
1469namespace detail {
1470} // namespace detail
1472
1473::llvm::LogicalResult NegFeltOpAdaptor::verify(::mlir::Location loc) {
1474 return ::mlir::success();
1475}
1476
1477void NegFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand) {
1478 odsState.addOperands(operand);
1479 odsState.addTypes(result);
1480}
1481
1482void NegFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand) {
1483 odsState.addOperands(operand);
1484
1485 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1486 if (::mlir::succeeded(NegFeltOp::inferReturnTypes(odsBuilder.getContext(),
1487 odsState.location, odsState.operands,
1488 odsState.attributes.getDictionary(odsState.getContext()),
1489 odsState.getRawProperties(),
1490 odsState.regions, inferredReturnTypes)))
1491 odsState.addTypes(inferredReturnTypes);
1492 else
1493 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
1494
1495}
1496
1497void NegFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand) {
1498 odsState.addOperands(operand);
1499 assert(resultTypes.size() == 1u && "mismatched number of results");
1500 odsState.addTypes(resultTypes);
1501}
1502
1503void NegFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1504 assert(operands.size() == 1u && "mismatched number of parameters");
1505 odsState.addOperands(operands);
1506 odsState.addAttributes(attributes);
1507 assert(resultTypes.size() == 1u && "mismatched number of return types");
1508 odsState.addTypes(resultTypes);
1509}
1510
1511void NegFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1512 assert(operands.size() == 1u && "mismatched number of parameters");
1513 odsState.addOperands(operands);
1514 odsState.addAttributes(attributes);
1515
1516 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1517 if (::mlir::succeeded(NegFeltOp::inferReturnTypes(odsBuilder.getContext(),
1518 odsState.location, operands,
1519 odsState.attributes.getDictionary(odsState.getContext()),
1520 odsState.getRawProperties(),
1521 odsState.regions, inferredReturnTypes))) {
1522 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1523 odsState.addTypes(inferredReturnTypes);
1524 } else {
1525 ::llvm::report_fatal_error("Failed to infer result type(s).");
1526 }
1527}
1528
1529::llvm::LogicalResult NegFeltOp::verifyInvariantsImpl() {
1530 {
1531 unsigned index = 0; (void)index;
1532 auto valueGroup0 = getODSOperands(0);
1533
1534 for (auto v : valueGroup0) {
1535 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1536 return ::mlir::failure();
1537 }
1538 }
1539 {
1540 unsigned index = 0; (void)index;
1541 auto valueGroup0 = getODSResults(0);
1542
1543 for (auto v : valueGroup0) {
1544 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
1545 return ::mlir::failure();
1546 }
1547 }
1548 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1549 return emitOpError("failed to verify that result type matches with operand type");
1550 return ::mlir::success();
1551}
1552
1553::llvm::LogicalResult NegFeltOp::verifyInvariants() {
1554 return verifyInvariantsImpl();
1555}
1556
1557::llvm::LogicalResult NegFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
1558 inferredReturnTypes.resize(1);
1559 ::mlir::Builder odsBuilder(context);
1560 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
1561 inferredReturnTypes[0] = odsInferredType0;
1562 return ::mlir::success();
1563}
1564
1565::mlir::ParseResult NegFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
1566 ::mlir::OpAsmParser::UnresolvedOperand operandRawOperand{};
1567 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> operandOperands(&operandRawOperand, 1); ::llvm::SMLoc operandOperandsLoc;
1568 (void)operandOperandsLoc;
1569 ::mlir::Type operandRawType{};
1570 ::llvm::ArrayRef<::mlir::Type> operandTypes(&operandRawType, 1);
1571
1572 operandOperandsLoc = parser.getCurrentLocation();
1573 if (parser.parseOperand(operandRawOperand))
1574 return ::mlir::failure();
1575 {
1576 auto odsResult = parseInferredOrParsedType(parser, operandRawType, true);
1577 if (odsResult) return ::mlir::failure();
1578 }
1579 {
1580 auto loc = parser.getCurrentLocation();(void)loc;
1581 if (parser.parseOptionalAttrDict(result.attributes))
1582 return ::mlir::failure();
1583 }
1584 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
1585 result.addTypes(odsBuildableType0);
1586 if (parser.resolveOperands(operandOperands, operandTypes, operandOperandsLoc, result.operands))
1587 return ::mlir::failure();
1588 return ::mlir::success();
1589}
1590
1591void NegFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
1592 _odsPrinter << ' ';
1593 _odsPrinter << getOperand();
1594 printInferredOrParsedType(_odsPrinter, *this, getOperand().getType(), true);
1595 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1596 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1597}
1598
1599void NegFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
1600}
1601
1602} // namespace felt
1603} // namespace llzk
1604MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::NegFeltOp)
1605
1606namespace llzk {
1607namespace felt {
1608
1609//===----------------------------------------------------------------------===//
1610// ::llzk::felt::NotFeltOp definitions
1611//===----------------------------------------------------------------------===//
1612
1613namespace detail {
1614} // namespace detail
1616
1617::llvm::LogicalResult NotFeltOpAdaptor::verify(::mlir::Location loc) {
1618 return ::mlir::success();
1619}
1620
1621void NotFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand) {
1622 odsState.addOperands(operand);
1623 odsState.addTypes(result);
1624}
1625
1626void NotFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand) {
1627 odsState.addOperands(operand);
1628
1629 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1630 if (::mlir::succeeded(NotFeltOp::inferReturnTypes(odsBuilder.getContext(),
1631 odsState.location, odsState.operands,
1632 odsState.attributes.getDictionary(odsState.getContext()),
1633 odsState.getRawProperties(),
1634 odsState.regions, inferredReturnTypes)))
1635 odsState.addTypes(inferredReturnTypes);
1636 else
1637 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
1638
1639}
1640
1641void NotFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand) {
1642 odsState.addOperands(operand);
1643 assert(resultTypes.size() == 1u && "mismatched number of results");
1644 odsState.addTypes(resultTypes);
1645}
1646
1647void NotFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1648 assert(operands.size() == 1u && "mismatched number of parameters");
1649 odsState.addOperands(operands);
1650 odsState.addAttributes(attributes);
1651 assert(resultTypes.size() == 1u && "mismatched number of return types");
1652 odsState.addTypes(resultTypes);
1653}
1654
1655void NotFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1656 assert(operands.size() == 1u && "mismatched number of parameters");
1657 odsState.addOperands(operands);
1658 odsState.addAttributes(attributes);
1659
1660 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1661 if (::mlir::succeeded(NotFeltOp::inferReturnTypes(odsBuilder.getContext(),
1662 odsState.location, operands,
1663 odsState.attributes.getDictionary(odsState.getContext()),
1664 odsState.getRawProperties(),
1665 odsState.regions, inferredReturnTypes))) {
1666 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1667 odsState.addTypes(inferredReturnTypes);
1668 } else {
1669 ::llvm::report_fatal_error("Failed to infer result type(s).");
1670 }
1671}
1672
1673::llvm::LogicalResult NotFeltOp::verifyInvariantsImpl() {
1674 {
1675 unsigned index = 0; (void)index;
1676 auto valueGroup0 = getODSOperands(0);
1677
1678 for (auto v : valueGroup0) {
1679 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1680 return ::mlir::failure();
1681 }
1682 }
1683 {
1684 unsigned index = 0; (void)index;
1685 auto valueGroup0 = getODSResults(0);
1686
1687 for (auto v : valueGroup0) {
1688 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
1689 return ::mlir::failure();
1690 }
1691 }
1692 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1693 return emitOpError("failed to verify that result type matches with operand type");
1694 return ::mlir::success();
1695}
1696
1697::llvm::LogicalResult NotFeltOp::verifyInvariants() {
1698 return verifyInvariantsImpl();
1699}
1700
1701::llvm::LogicalResult NotFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
1702 inferredReturnTypes.resize(1);
1703 ::mlir::Builder odsBuilder(context);
1704 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
1705 inferredReturnTypes[0] = odsInferredType0;
1706 return ::mlir::success();
1707}
1708
1709::mlir::ParseResult NotFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
1710 ::mlir::OpAsmParser::UnresolvedOperand operandRawOperand{};
1711 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> operandOperands(&operandRawOperand, 1); ::llvm::SMLoc operandOperandsLoc;
1712 (void)operandOperandsLoc;
1713 ::mlir::Type operandRawType{};
1714 ::llvm::ArrayRef<::mlir::Type> operandTypes(&operandRawType, 1);
1715
1716 operandOperandsLoc = parser.getCurrentLocation();
1717 if (parser.parseOperand(operandRawOperand))
1718 return ::mlir::failure();
1719 {
1720 auto odsResult = parseInferredOrParsedType(parser, operandRawType, true);
1721 if (odsResult) return ::mlir::failure();
1722 }
1723 {
1724 auto loc = parser.getCurrentLocation();(void)loc;
1725 if (parser.parseOptionalAttrDict(result.attributes))
1726 return ::mlir::failure();
1727 }
1728 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
1729 result.addTypes(odsBuildableType0);
1730 if (parser.resolveOperands(operandOperands, operandTypes, operandOperandsLoc, result.operands))
1731 return ::mlir::failure();
1732 return ::mlir::success();
1733}
1734
1735void NotFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
1736 _odsPrinter << ' ';
1737 _odsPrinter << getOperand();
1738 printInferredOrParsedType(_odsPrinter, *this, getOperand().getType(), true);
1739 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1740 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1741}
1742
1743void NotFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
1744}
1745
1746} // namespace felt
1747} // namespace llzk
1748MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::NotFeltOp)
1749
1750namespace llzk {
1751namespace felt {
1752
1753//===----------------------------------------------------------------------===//
1754// ::llzk::felt::OrFeltOp definitions
1755//===----------------------------------------------------------------------===//
1756
1757namespace detail {
1758} // namespace detail
1760
1761::llvm::LogicalResult OrFeltOpAdaptor::verify(::mlir::Location loc) {
1762 return ::mlir::success();
1763}
1764
1765void OrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
1766 odsState.addOperands(lhs);
1767 odsState.addOperands(rhs);
1768 odsState.addTypes(result);
1769}
1770
1771void OrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
1772 odsState.addOperands(lhs);
1773 odsState.addOperands(rhs);
1774
1775 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1776 if (::mlir::succeeded(OrFeltOp::inferReturnTypes(odsBuilder.getContext(),
1777 odsState.location, odsState.operands,
1778 odsState.attributes.getDictionary(odsState.getContext()),
1779 odsState.getRawProperties(),
1780 odsState.regions, inferredReturnTypes)))
1781 odsState.addTypes(inferredReturnTypes);
1782 else
1783 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
1784
1785}
1786
1787void OrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
1788 odsState.addOperands(lhs);
1789 odsState.addOperands(rhs);
1790 assert(resultTypes.size() == 1u && "mismatched number of results");
1791 odsState.addTypes(resultTypes);
1792}
1793
1794void OrFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1795 assert(operands.size() == 2u && "mismatched number of parameters");
1796 odsState.addOperands(operands);
1797 odsState.addAttributes(attributes);
1798 assert(resultTypes.size() == 1u && "mismatched number of return types");
1799 odsState.addTypes(resultTypes);
1800}
1801
1802void OrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1803 assert(operands.size() == 2u && "mismatched number of parameters");
1804 odsState.addOperands(operands);
1805 odsState.addAttributes(attributes);
1806
1807 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1808 if (::mlir::succeeded(OrFeltOp::inferReturnTypes(odsBuilder.getContext(),
1809 odsState.location, operands,
1810 odsState.attributes.getDictionary(odsState.getContext()),
1811 odsState.getRawProperties(),
1812 odsState.regions, inferredReturnTypes))) {
1813 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1814 odsState.addTypes(inferredReturnTypes);
1815 } else {
1816 ::llvm::report_fatal_error("Failed to infer result type(s).");
1817 }
1818}
1819
1820::llvm::LogicalResult OrFeltOp::verifyInvariantsImpl() {
1821 {
1822 unsigned index = 0; (void)index;
1823 auto valueGroup0 = getODSOperands(0);
1824
1825 for (auto v : valueGroup0) {
1826 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1827 return ::mlir::failure();
1828 }
1829 auto valueGroup1 = getODSOperands(1);
1830
1831 for (auto v : valueGroup1) {
1832 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
1833 return ::mlir::failure();
1834 }
1835 }
1836 {
1837 unsigned index = 0; (void)index;
1838 auto valueGroup0 = getODSResults(0);
1839
1840 for (auto v : valueGroup0) {
1841 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
1842 return ::mlir::failure();
1843 }
1844 }
1845 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1846 return emitOpError("failed to verify that result type matches with lhs type");
1847 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
1848 return emitOpError("failed to verify that result type matches with rhs type");
1849 return ::mlir::success();
1850}
1851
1852::llvm::LogicalResult OrFeltOp::verifyInvariants() {
1853 return verifyInvariantsImpl();
1854}
1855
1856::llvm::LogicalResult OrFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
1857 inferredReturnTypes.resize(1);
1858 ::mlir::Builder odsBuilder(context);
1859 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
1860 inferredReturnTypes[0] = odsInferredType0;
1861 return ::mlir::success();
1862}
1863
1864::mlir::ParseResult OrFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
1865 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
1866 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
1867 (void)lhsOperandsLoc;
1868 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
1869 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
1870 (void)rhsOperandsLoc;
1871 ::mlir::Type lhsRawType{};
1872 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
1873 ::mlir::Type rhsRawType{};
1874 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
1875
1876 lhsOperandsLoc = parser.getCurrentLocation();
1877 if (parser.parseOperand(lhsRawOperand))
1878 return ::mlir::failure();
1879 if (parser.parseComma())
1880 return ::mlir::failure();
1881
1882 rhsOperandsLoc = parser.getCurrentLocation();
1883 if (parser.parseOperand(rhsRawOperand))
1884 return ::mlir::failure();
1885 {
1886 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
1887 if (odsResult) return ::mlir::failure();
1888 }
1889 {
1890 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
1891 if (odsResult) return ::mlir::failure();
1892 }
1893 {
1894 auto loc = parser.getCurrentLocation();(void)loc;
1895 if (parser.parseOptionalAttrDict(result.attributes))
1896 return ::mlir::failure();
1897 }
1898 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
1899 result.addTypes(odsBuildableType0);
1900 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
1901 return ::mlir::failure();
1902 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
1903 return ::mlir::failure();
1904 return ::mlir::success();
1905}
1906
1907void OrFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
1908 _odsPrinter << ' ';
1909 _odsPrinter << getLhs();
1910 _odsPrinter << ",";
1911 _odsPrinter << ' ';
1912 _odsPrinter << getRhs();
1913 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
1914 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
1915 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1916 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1917}
1918
1919void OrFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
1920}
1921
1922} // namespace felt
1923} // namespace llzk
1924MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::OrFeltOp)
1925
1926namespace llzk {
1927namespace felt {
1928
1929//===----------------------------------------------------------------------===//
1930// ::llzk::felt::ShlFeltOp definitions
1931//===----------------------------------------------------------------------===//
1932
1933namespace detail {
1934} // namespace detail
1936
1937::llvm::LogicalResult ShlFeltOpAdaptor::verify(::mlir::Location loc) {
1938 return ::mlir::success();
1939}
1940
1941void ShlFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
1942 odsState.addOperands(lhs);
1943 odsState.addOperands(rhs);
1944 odsState.addTypes(result);
1945}
1946
1947void ShlFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
1948 odsState.addOperands(lhs);
1949 odsState.addOperands(rhs);
1950
1951 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1952 if (::mlir::succeeded(ShlFeltOp::inferReturnTypes(odsBuilder.getContext(),
1953 odsState.location, odsState.operands,
1954 odsState.attributes.getDictionary(odsState.getContext()),
1955 odsState.getRawProperties(),
1956 odsState.regions, inferredReturnTypes)))
1957 odsState.addTypes(inferredReturnTypes);
1958 else
1959 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
1960
1961}
1962
1963void ShlFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
1964 odsState.addOperands(lhs);
1965 odsState.addOperands(rhs);
1966 assert(resultTypes.size() == 1u && "mismatched number of results");
1967 odsState.addTypes(resultTypes);
1968}
1969
1970void ShlFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1971 assert(operands.size() == 2u && "mismatched number of parameters");
1972 odsState.addOperands(operands);
1973 odsState.addAttributes(attributes);
1974 assert(resultTypes.size() == 1u && "mismatched number of return types");
1975 odsState.addTypes(resultTypes);
1976}
1977
1978void ShlFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1979 assert(operands.size() == 2u && "mismatched number of parameters");
1980 odsState.addOperands(operands);
1981 odsState.addAttributes(attributes);
1982
1983 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
1984 if (::mlir::succeeded(ShlFeltOp::inferReturnTypes(odsBuilder.getContext(),
1985 odsState.location, operands,
1986 odsState.attributes.getDictionary(odsState.getContext()),
1987 odsState.getRawProperties(),
1988 odsState.regions, inferredReturnTypes))) {
1989 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
1990 odsState.addTypes(inferredReturnTypes);
1991 } else {
1992 ::llvm::report_fatal_error("Failed to infer result type(s).");
1993 }
1994}
1995
1996::llvm::LogicalResult ShlFeltOp::verifyInvariantsImpl() {
1997 {
1998 unsigned index = 0; (void)index;
1999 auto valueGroup0 = getODSOperands(0);
2000
2001 for (auto v : valueGroup0) {
2002 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2003 return ::mlir::failure();
2004 }
2005 auto valueGroup1 = getODSOperands(1);
2006
2007 for (auto v : valueGroup1) {
2008 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2009 return ::mlir::failure();
2010 }
2011 }
2012 {
2013 unsigned index = 0; (void)index;
2014 auto valueGroup0 = getODSResults(0);
2015
2016 for (auto v : valueGroup0) {
2017 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
2018 return ::mlir::failure();
2019 }
2020 }
2021 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2022 return emitOpError("failed to verify that result type matches with lhs type");
2023 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2024 return emitOpError("failed to verify that result type matches with rhs type");
2025 return ::mlir::success();
2026}
2027
2028::llvm::LogicalResult ShlFeltOp::verifyInvariants() {
2029 return verifyInvariantsImpl();
2030}
2031
2032::llvm::LogicalResult ShlFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
2033 inferredReturnTypes.resize(1);
2034 ::mlir::Builder odsBuilder(context);
2035 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
2036 inferredReturnTypes[0] = odsInferredType0;
2037 return ::mlir::success();
2038}
2039
2040::mlir::ParseResult ShlFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
2041 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
2042 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
2043 (void)lhsOperandsLoc;
2044 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
2045 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
2046 (void)rhsOperandsLoc;
2047 ::mlir::Type lhsRawType{};
2048 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
2049 ::mlir::Type rhsRawType{};
2050 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
2051
2052 lhsOperandsLoc = parser.getCurrentLocation();
2053 if (parser.parseOperand(lhsRawOperand))
2054 return ::mlir::failure();
2055 if (parser.parseComma())
2056 return ::mlir::failure();
2057
2058 rhsOperandsLoc = parser.getCurrentLocation();
2059 if (parser.parseOperand(rhsRawOperand))
2060 return ::mlir::failure();
2061 {
2062 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
2063 if (odsResult) return ::mlir::failure();
2064 }
2065 {
2066 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
2067 if (odsResult) return ::mlir::failure();
2068 }
2069 {
2070 auto loc = parser.getCurrentLocation();(void)loc;
2071 if (parser.parseOptionalAttrDict(result.attributes))
2072 return ::mlir::failure();
2073 }
2074 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
2075 result.addTypes(odsBuildableType0);
2076 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
2077 return ::mlir::failure();
2078 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
2079 return ::mlir::failure();
2080 return ::mlir::success();
2081}
2082
2083void ShlFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
2084 _odsPrinter << ' ';
2085 _odsPrinter << getLhs();
2086 _odsPrinter << ",";
2087 _odsPrinter << ' ';
2088 _odsPrinter << getRhs();
2089 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
2090 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
2091 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
2092 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
2093}
2094
2095void ShlFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
2096}
2097
2098} // namespace felt
2099} // namespace llzk
2100MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::ShlFeltOp)
2101
2102namespace llzk {
2103namespace felt {
2104
2105//===----------------------------------------------------------------------===//
2106// ::llzk::felt::ShrFeltOp definitions
2107//===----------------------------------------------------------------------===//
2108
2109namespace detail {
2110} // namespace detail
2112
2113::llvm::LogicalResult ShrFeltOpAdaptor::verify(::mlir::Location loc) {
2114 return ::mlir::success();
2115}
2116
2117void ShrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
2118 odsState.addOperands(lhs);
2119 odsState.addOperands(rhs);
2120 odsState.addTypes(result);
2121}
2122
2123void ShrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
2124 odsState.addOperands(lhs);
2125 odsState.addOperands(rhs);
2126
2127 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
2128 if (::mlir::succeeded(ShrFeltOp::inferReturnTypes(odsBuilder.getContext(),
2129 odsState.location, odsState.operands,
2130 odsState.attributes.getDictionary(odsState.getContext()),
2131 odsState.getRawProperties(),
2132 odsState.regions, inferredReturnTypes)))
2133 odsState.addTypes(inferredReturnTypes);
2134 else
2135 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
2136
2137}
2138
2139void ShrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
2140 odsState.addOperands(lhs);
2141 odsState.addOperands(rhs);
2142 assert(resultTypes.size() == 1u && "mismatched number of results");
2143 odsState.addTypes(resultTypes);
2144}
2145
2146void ShrFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2147 assert(operands.size() == 2u && "mismatched number of parameters");
2148 odsState.addOperands(operands);
2149 odsState.addAttributes(attributes);
2150 assert(resultTypes.size() == 1u && "mismatched number of return types");
2151 odsState.addTypes(resultTypes);
2152}
2153
2154void ShrFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2155 assert(operands.size() == 2u && "mismatched number of parameters");
2156 odsState.addOperands(operands);
2157 odsState.addAttributes(attributes);
2158
2159 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
2160 if (::mlir::succeeded(ShrFeltOp::inferReturnTypes(odsBuilder.getContext(),
2161 odsState.location, operands,
2162 odsState.attributes.getDictionary(odsState.getContext()),
2163 odsState.getRawProperties(),
2164 odsState.regions, inferredReturnTypes))) {
2165 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
2166 odsState.addTypes(inferredReturnTypes);
2167 } else {
2168 ::llvm::report_fatal_error("Failed to infer result type(s).");
2169 }
2170}
2171
2172::llvm::LogicalResult ShrFeltOp::verifyInvariantsImpl() {
2173 {
2174 unsigned index = 0; (void)index;
2175 auto valueGroup0 = getODSOperands(0);
2176
2177 for (auto v : valueGroup0) {
2178 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2179 return ::mlir::failure();
2180 }
2181 auto valueGroup1 = getODSOperands(1);
2182
2183 for (auto v : valueGroup1) {
2184 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2185 return ::mlir::failure();
2186 }
2187 }
2188 {
2189 unsigned index = 0; (void)index;
2190 auto valueGroup0 = getODSResults(0);
2191
2192 for (auto v : valueGroup0) {
2193 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
2194 return ::mlir::failure();
2195 }
2196 }
2197 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2198 return emitOpError("failed to verify that result type matches with lhs type");
2199 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2200 return emitOpError("failed to verify that result type matches with rhs type");
2201 return ::mlir::success();
2202}
2203
2204::llvm::LogicalResult ShrFeltOp::verifyInvariants() {
2205 return verifyInvariantsImpl();
2206}
2207
2208::llvm::LogicalResult ShrFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
2209 inferredReturnTypes.resize(1);
2210 ::mlir::Builder odsBuilder(context);
2211 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
2212 inferredReturnTypes[0] = odsInferredType0;
2213 return ::mlir::success();
2214}
2215
2216::mlir::ParseResult ShrFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
2217 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
2218 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
2219 (void)lhsOperandsLoc;
2220 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
2221 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
2222 (void)rhsOperandsLoc;
2223 ::mlir::Type lhsRawType{};
2224 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
2225 ::mlir::Type rhsRawType{};
2226 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
2227
2228 lhsOperandsLoc = parser.getCurrentLocation();
2229 if (parser.parseOperand(lhsRawOperand))
2230 return ::mlir::failure();
2231 if (parser.parseComma())
2232 return ::mlir::failure();
2233
2234 rhsOperandsLoc = parser.getCurrentLocation();
2235 if (parser.parseOperand(rhsRawOperand))
2236 return ::mlir::failure();
2237 {
2238 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
2239 if (odsResult) return ::mlir::failure();
2240 }
2241 {
2242 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
2243 if (odsResult) return ::mlir::failure();
2244 }
2245 {
2246 auto loc = parser.getCurrentLocation();(void)loc;
2247 if (parser.parseOptionalAttrDict(result.attributes))
2248 return ::mlir::failure();
2249 }
2250 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
2251 result.addTypes(odsBuildableType0);
2252 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
2253 return ::mlir::failure();
2254 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
2255 return ::mlir::failure();
2256 return ::mlir::success();
2257}
2258
2259void ShrFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
2260 _odsPrinter << ' ';
2261 _odsPrinter << getLhs();
2262 _odsPrinter << ",";
2263 _odsPrinter << ' ';
2264 _odsPrinter << getRhs();
2265 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
2266 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
2267 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
2268 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
2269}
2270
2271void ShrFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
2272}
2273
2274} // namespace felt
2275} // namespace llzk
2276MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::ShrFeltOp)
2277
2278namespace llzk {
2279namespace felt {
2280
2281//===----------------------------------------------------------------------===//
2282// ::llzk::felt::SubFeltOp definitions
2283//===----------------------------------------------------------------------===//
2284
2285namespace detail {
2286} // namespace detail
2288
2289::llvm::LogicalResult SubFeltOpAdaptor::verify(::mlir::Location loc) {
2290 return ::mlir::success();
2291}
2292
2293void SubFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
2294 odsState.addOperands(lhs);
2295 odsState.addOperands(rhs);
2296 odsState.addTypes(result);
2297}
2298
2299void SubFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
2300 odsState.addOperands(lhs);
2301 odsState.addOperands(rhs);
2302
2303 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
2304 if (::mlir::succeeded(SubFeltOp::inferReturnTypes(odsBuilder.getContext(),
2305 odsState.location, odsState.operands,
2306 odsState.attributes.getDictionary(odsState.getContext()),
2307 odsState.getRawProperties(),
2308 odsState.regions, inferredReturnTypes)))
2309 odsState.addTypes(inferredReturnTypes);
2310 else
2311 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
2312
2313}
2314
2315void SubFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
2316 odsState.addOperands(lhs);
2317 odsState.addOperands(rhs);
2318 assert(resultTypes.size() == 1u && "mismatched number of results");
2319 odsState.addTypes(resultTypes);
2320}
2321
2322void SubFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2323 assert(operands.size() == 2u && "mismatched number of parameters");
2324 odsState.addOperands(operands);
2325 odsState.addAttributes(attributes);
2326 assert(resultTypes.size() == 1u && "mismatched number of return types");
2327 odsState.addTypes(resultTypes);
2328}
2329
2330void SubFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2331 assert(operands.size() == 2u && "mismatched number of parameters");
2332 odsState.addOperands(operands);
2333 odsState.addAttributes(attributes);
2334
2335 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
2336 if (::mlir::succeeded(SubFeltOp::inferReturnTypes(odsBuilder.getContext(),
2337 odsState.location, operands,
2338 odsState.attributes.getDictionary(odsState.getContext()),
2339 odsState.getRawProperties(),
2340 odsState.regions, inferredReturnTypes))) {
2341 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
2342 odsState.addTypes(inferredReturnTypes);
2343 } else {
2344 ::llvm::report_fatal_error("Failed to infer result type(s).");
2345 }
2346}
2347
2348::llvm::LogicalResult SubFeltOp::verifyInvariantsImpl() {
2349 {
2350 unsigned index = 0; (void)index;
2351 auto valueGroup0 = getODSOperands(0);
2352
2353 for (auto v : valueGroup0) {
2354 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2355 return ::mlir::failure();
2356 }
2357 auto valueGroup1 = getODSOperands(1);
2358
2359 for (auto v : valueGroup1) {
2360 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2361 return ::mlir::failure();
2362 }
2363 }
2364 {
2365 unsigned index = 0; (void)index;
2366 auto valueGroup0 = getODSResults(0);
2367
2368 for (auto v : valueGroup0) {
2369 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
2370 return ::mlir::failure();
2371 }
2372 }
2373 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2374 return emitOpError("failed to verify that result type matches with lhs type");
2375 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2376 return emitOpError("failed to verify that result type matches with rhs type");
2377 return ::mlir::success();
2378}
2379
2380::llvm::LogicalResult SubFeltOp::verifyInvariants() {
2381 return verifyInvariantsImpl();
2382}
2383
2384::llvm::LogicalResult SubFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
2385 inferredReturnTypes.resize(1);
2386 ::mlir::Builder odsBuilder(context);
2387 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
2388 inferredReturnTypes[0] = odsInferredType0;
2389 return ::mlir::success();
2390}
2391
2392::mlir::ParseResult SubFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
2393 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
2394 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
2395 (void)lhsOperandsLoc;
2396 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
2397 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
2398 (void)rhsOperandsLoc;
2399 ::mlir::Type lhsRawType{};
2400 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
2401 ::mlir::Type rhsRawType{};
2402 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
2403
2404 lhsOperandsLoc = parser.getCurrentLocation();
2405 if (parser.parseOperand(lhsRawOperand))
2406 return ::mlir::failure();
2407 if (parser.parseComma())
2408 return ::mlir::failure();
2409
2410 rhsOperandsLoc = parser.getCurrentLocation();
2411 if (parser.parseOperand(rhsRawOperand))
2412 return ::mlir::failure();
2413 {
2414 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
2415 if (odsResult) return ::mlir::failure();
2416 }
2417 {
2418 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
2419 if (odsResult) return ::mlir::failure();
2420 }
2421 {
2422 auto loc = parser.getCurrentLocation();(void)loc;
2423 if (parser.parseOptionalAttrDict(result.attributes))
2424 return ::mlir::failure();
2425 }
2426 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
2427 result.addTypes(odsBuildableType0);
2428 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
2429 return ::mlir::failure();
2430 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
2431 return ::mlir::failure();
2432 return ::mlir::success();
2433}
2434
2435void SubFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
2436 _odsPrinter << ' ';
2437 _odsPrinter << getLhs();
2438 _odsPrinter << ",";
2439 _odsPrinter << ' ';
2440 _odsPrinter << getRhs();
2441 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
2442 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
2443 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
2444 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
2445}
2446
2447void SubFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
2448}
2449
2450} // namespace felt
2451} // namespace llzk
2452MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::SubFeltOp)
2453
2454namespace llzk {
2455namespace felt {
2456
2457//===----------------------------------------------------------------------===//
2458// ::llzk::felt::XorFeltOp definitions
2459//===----------------------------------------------------------------------===//
2460
2461namespace detail {
2462} // namespace detail
2464
2465::llvm::LogicalResult XorFeltOpAdaptor::verify(::mlir::Location loc) {
2466 return ::mlir::success();
2467}
2468
2469void XorFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs) {
2470 odsState.addOperands(lhs);
2471 odsState.addOperands(rhs);
2472 odsState.addTypes(result);
2473}
2474
2475void XorFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs) {
2476 odsState.addOperands(lhs);
2477 odsState.addOperands(rhs);
2478
2479 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
2480 if (::mlir::succeeded(XorFeltOp::inferReturnTypes(odsBuilder.getContext(),
2481 odsState.location, odsState.operands,
2482 odsState.attributes.getDictionary(odsState.getContext()),
2483 odsState.getRawProperties(),
2484 odsState.regions, inferredReturnTypes)))
2485 odsState.addTypes(inferredReturnTypes);
2486 else
2487 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
2488
2489}
2490
2491void XorFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs) {
2492 odsState.addOperands(lhs);
2493 odsState.addOperands(rhs);
2494 assert(resultTypes.size() == 1u && "mismatched number of results");
2495 odsState.addTypes(resultTypes);
2496}
2497
2498void XorFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2499 assert(operands.size() == 2u && "mismatched number of parameters");
2500 odsState.addOperands(operands);
2501 odsState.addAttributes(attributes);
2502 assert(resultTypes.size() == 1u && "mismatched number of return types");
2503 odsState.addTypes(resultTypes);
2504}
2505
2506void XorFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2507 assert(operands.size() == 2u && "mismatched number of parameters");
2508 odsState.addOperands(operands);
2509 odsState.addAttributes(attributes);
2510
2511 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
2512 if (::mlir::succeeded(XorFeltOp::inferReturnTypes(odsBuilder.getContext(),
2513 odsState.location, operands,
2514 odsState.attributes.getDictionary(odsState.getContext()),
2515 odsState.getRawProperties(),
2516 odsState.regions, inferredReturnTypes))) {
2517 assert(inferredReturnTypes.size() == 1u && "mismatched number of return types");
2518 odsState.addTypes(inferredReturnTypes);
2519 } else {
2520 ::llvm::report_fatal_error("Failed to infer result type(s).");
2521 }
2522}
2523
2524::llvm::LogicalResult XorFeltOp::verifyInvariantsImpl() {
2525 {
2526 unsigned index = 0; (void)index;
2527 auto valueGroup0 = getODSOperands(0);
2528
2529 for (auto v : valueGroup0) {
2530 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2531 return ::mlir::failure();
2532 }
2533 auto valueGroup1 = getODSOperands(1);
2534
2535 for (auto v : valueGroup1) {
2536 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*this, v.getType(), "operand", index++)))
2537 return ::mlir::failure();
2538 }
2539 }
2540 {
2541 unsigned index = 0; (void)index;
2542 auto valueGroup0 = getODSResults(0);
2543
2544 for (auto v : valueGroup0) {
2545 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*this, v.getType(), "result", index++)))
2546 return ::mlir::failure();
2547 }
2548 }
2549 if (!((::llzk::typesUnify((*this->getODSOperands(0).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2550 return emitOpError("failed to verify that result type matches with lhs type");
2551 if (!((::llzk::typesUnify((*this->getODSOperands(1).begin()).getType(), (*this->getODSResults(0).begin()).getType()))))
2552 return emitOpError("failed to verify that result type matches with rhs type");
2553 return ::mlir::success();
2554}
2555
2556::llvm::LogicalResult XorFeltOp::verifyInvariants() {
2557 return verifyInvariantsImpl();
2558}
2559
2560::llvm::LogicalResult XorFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
2561 inferredReturnTypes.resize(1);
2562 ::mlir::Builder odsBuilder(context);
2563 ::mlir::Type odsInferredType0 = odsBuilder.getType<::llzk::felt::FeltType>();
2564 inferredReturnTypes[0] = odsInferredType0;
2565 return ::mlir::success();
2566}
2567
2568::mlir::ParseResult XorFeltOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
2569 ::mlir::OpAsmParser::UnresolvedOperand lhsRawOperand{};
2570 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> lhsOperands(&lhsRawOperand, 1); ::llvm::SMLoc lhsOperandsLoc;
2571 (void)lhsOperandsLoc;
2572 ::mlir::OpAsmParser::UnresolvedOperand rhsRawOperand{};
2573 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> rhsOperands(&rhsRawOperand, 1); ::llvm::SMLoc rhsOperandsLoc;
2574 (void)rhsOperandsLoc;
2575 ::mlir::Type lhsRawType{};
2576 ::llvm::ArrayRef<::mlir::Type> lhsTypes(&lhsRawType, 1);
2577 ::mlir::Type rhsRawType{};
2578 ::llvm::ArrayRef<::mlir::Type> rhsTypes(&rhsRawType, 1);
2579
2580 lhsOperandsLoc = parser.getCurrentLocation();
2581 if (parser.parseOperand(lhsRawOperand))
2582 return ::mlir::failure();
2583 if (parser.parseComma())
2584 return ::mlir::failure();
2585
2586 rhsOperandsLoc = parser.getCurrentLocation();
2587 if (parser.parseOperand(rhsRawOperand))
2588 return ::mlir::failure();
2589 {
2590 auto odsResult = parseInferredOrParsedType(parser, lhsRawType, true);
2591 if (odsResult) return ::mlir::failure();
2592 }
2593 {
2594 auto odsResult = parseInferredOrParsedType(parser, rhsRawType, false);
2595 if (odsResult) return ::mlir::failure();
2596 }
2597 {
2598 auto loc = parser.getCurrentLocation();(void)loc;
2599 if (parser.parseOptionalAttrDict(result.attributes))
2600 return ::mlir::failure();
2601 }
2602 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<::llzk::felt::FeltType>();
2603 result.addTypes(odsBuildableType0);
2604 if (parser.resolveOperands(lhsOperands, lhsTypes, lhsOperandsLoc, result.operands))
2605 return ::mlir::failure();
2606 if (parser.resolveOperands(rhsOperands, rhsTypes, rhsOperandsLoc, result.operands))
2607 return ::mlir::failure();
2608 return ::mlir::success();
2609}
2610
2611void XorFeltOp::print(::mlir::OpAsmPrinter &_odsPrinter) {
2612 _odsPrinter << ' ';
2613 _odsPrinter << getLhs();
2614 _odsPrinter << ",";
2615 _odsPrinter << ' ';
2616 _odsPrinter << getRhs();
2617 printInferredOrParsedType(_odsPrinter, *this, getLhs().getType(), true);
2618 printInferredOrParsedType(_odsPrinter, *this, getRhs().getType(), false);
2619 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
2620 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
2621}
2622
2623void XorFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
2624}
2625
2626} // namespace felt
2627} // namespace llzk
2628MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::felt::XorFeltOp)
2629
2630
2631#endif // GET_OP_CLASSES
2632
MlirStringRef name
Definition Poly.cpp:48
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:87
AddFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:124
AddFeltOpAdaptor(AddFeltOp op)
Definition Ops.cpp.inc:85
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:178
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:191
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:253
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:146
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:190
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:233
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:213
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:195
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:245
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:182
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:185
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:235
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:91
AndFeltOpAdaptor(AndFeltOp op)
Definition Ops.cpp.inc:261
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:263
AndFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:300
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:322
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:409
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:358
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:267
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:354
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:411
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:371
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:366
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:361
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:367
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:389
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:421
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:429
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:439
DivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:476
DivFeltOpAdaptor(DivFeltOp op)
Definition Ops.cpp.inc:437
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:565
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:498
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:585
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:605
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:547
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:587
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:543
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:534
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:542
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:597
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:530
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:537
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:443
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:622
FeltConstantOpAdaptor(FeltConstantOp op)
Definition Ops.cpp.inc:620
FeltConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:683
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::felt::FeltConstAttr value)
Definition Ops.cpp.inc:718
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:708
FoldAdaptor::Properties Properties
Definition Ops.h.inc:726
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:840
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:811
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:701
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:675
::llvm::APInt getValue()
Definition Ops.cpp.inc:713
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:688
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:631
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:789
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:848
::llzk::felt::FeltConstAttr getValueAttr()
Definition Ops.h.inc:777
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:758
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:681
::mlir::StringAttr getValueAttrName()
Definition Ops.h.inc:732
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:670
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:819
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:692
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:654
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:807
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:866
FeltNonDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:854
FeltNonDetOpAdaptor(FeltNonDetOp op)
Definition Ops.cpp.inc:864
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:918
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:954
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:943
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:917
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result)
Definition Ops.cpp.inc:870
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:959
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:935
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:931
InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:981
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:977
InvFeltOpAdaptor(InvFeltOp op)
Definition Ops.cpp.inc:975
::mlir::TypedValue<::mlir::Type > getOperand()
Definition Ops.h.inc:1044
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1057
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1097
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1095
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1057
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1079
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1038
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:981
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1069
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1103
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1033
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1061
ModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1144
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1121
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1224
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1205
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1267
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1233
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1211
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1180
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1216
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1215
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1125
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1279
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1273
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1255
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1212
MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1320
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1297
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1443
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1431
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1387
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1449
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1356
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1391
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1392
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1301
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1400
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1455
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1409
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1388
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1381
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1496
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1473
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1529
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:1477
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1594
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1599
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1553
::mlir::TypedValue<::mlir::Type > getOperand()
Definition Ops.h.inc:1559
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1572
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1557
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1591
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1612
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1553
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1565
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1617
NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1659
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1673
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1757
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1735
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1716
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:1621
::mlir::TypedValue<::mlir::Type > getOperand()
Definition Ops.h.inc:1722
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1697
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1709
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1743
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1701
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1735
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1775
OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1822
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1761
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1864
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1911
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1765
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1951
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1907
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1856
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1883
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1852
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1893
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1820
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1919
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1889
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1933
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1937
ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1998
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2095
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1941
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2065
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:2127
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2069
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2040
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2083
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2032
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1996
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:2109
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2059
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2087
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2028
ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2174
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2113
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2204
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2259
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2235
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:2303
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2245
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2271
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2208
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2263
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2172
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2117
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2241
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:2285
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2216
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2350
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2289
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2392
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2439
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2293
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2348
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2447
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2421
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:2461
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2435
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2384
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2380
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:2479
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2417
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2411
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2465
XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2526
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2615
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2524
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:2637
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:2655
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2568
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2593
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2556
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2469
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2587
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2560
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2611
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2597
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2623
::llzk::felt::FeltConstAttr getValueAttr()
Definition Ops.h.inc:670
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:648
FeltConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:652
bool typesUnify(Type lhs, Type rhs, ArrayRef< StringRef > rhsReversePrefix, UnificationMap *unifications)