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