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