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