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