LLZK 2.1.1
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 auto getValueAPInt() -> ::llvm::APInt { return getValue().getValue(); }
871
872 auto tryGetZExtValue() -> std::optional<uint64_t> { return getValueAPInt().tryZExtValue(); }
873};
874} // namespace felt
875} // namespace llzk
876MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::FeltConstantOp)
877
878namespace llzk {
879namespace felt {
880
881//===----------------------------------------------------------------------===//
882// ::llzk::felt::InvFeltOp declarations
883//===----------------------------------------------------------------------===//
884
885namespace detail {
887public:
888protected:
889 ::mlir::DictionaryAttr odsAttrs;
890 ::std::optional<::mlir::OperationName> odsOpName;
891 ::mlir::RegionRange odsRegions;
892public:
893 InvFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
894 odsOpName.emplace("felt.inv", odsAttrs.getContext());
895 }
896
897 InvFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
898
899 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
900 return {index, 1};
901 }
902
903 ::mlir::DictionaryAttr getAttributes() {
904 return odsAttrs;
905 }
906
907};
908} // namespace detail
909template <typename RangeT>
911 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
913public:
914 InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
915
916 InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : InvFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
917
918 InvFeltOpGenericAdaptor(RangeT values, const InvFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
919
920 template <typename LateInst = InvFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, InvFeltOp>>>
921 InvFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
922
923 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
924 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
925 }
926
927 RangeT getODSOperands(unsigned index) {
928 auto valueRange = getODSOperandIndexAndLength(index);
929 return {std::next(odsOperands.begin(), valueRange.first),
930 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
931 }
932
933 ValueT getOperand() {
934 return (*getODSOperands(0).begin());
935 }
936
937 RangeT getOperands() {
938 return odsOperands;
939 }
940
941private:
942 RangeT odsOperands;
943};
944class InvFeltOpAdaptor : public InvFeltOpGenericAdaptor<::mlir::ValueRange> {
945public:
948
949 ::llvm::LogicalResult verify(::mlir::Location loc);
950};
951class 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> {
952public:
953 using Op::Op;
954 using Op::print;
956 template <typename RangeT>
959 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
960 return {};
961 }
962
963 static constexpr ::llvm::StringLiteral getOperationName() {
964 return ::llvm::StringLiteral("felt.inv");
965 }
966
967 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
968 return {index, 1};
969 }
970
971 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
972 auto valueRange = getODSOperandIndexAndLength(index);
973 return {std::next(getOperation()->operand_begin(), valueRange.first),
974 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
975 }
976
977 ::mlir::TypedValue<::mlir::Type> getOperand() {
978 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
979 }
980
981 ::mlir::OpOperand &getOperandMutable() {
982 auto range = getODSOperandIndexAndLength(0);
983 return getOperation()->getOpOperand(range.first);
984 }
985
986 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
987 return {index, 1};
988 }
989
990 ::mlir::Operation::result_range getODSResults(unsigned index) {
991 auto valueRange = getODSResultIndexAndLength(index);
992 return {std::next(getOperation()->result_begin(), valueRange.first),
993 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
994 }
995
996 ::mlir::TypedValue<::mlir::Type> getResult() {
997 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
998 }
999
1000 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand);
1001 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand);
1002 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand);
1003 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1004 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1005 ::llvm::LogicalResult verifyInvariantsImpl();
1006 ::llvm::LogicalResult verifyInvariants();
1007 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1008 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);
1009 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1010 void print(::mlir::OpAsmPrinter &_odsPrinter);
1011 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1012public:
1013 static ::llvm::LogicalResult
1014 inferReturnTypes(::mlir::MLIRContext *context,
1015 std::optional<::mlir::Location> location,
1016 Adaptor adaptor,
1017 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
1018
1019 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
1020
1021
1022 private:
1023 static ::mlir::ParseResult parseInferredOrParsedType(
1024 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1025 ) {
1026 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1027 // If there is a comma, parse the `opType`
1028 mlir::Type type;
1029 if (parser.parseCustomTypeWithFallback(type)) {
1030 return mlir::failure();
1031 }
1032 opType = type;
1033 } else {
1034 // Otherwise, build the default type
1035 opType =
1036 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
1037 }
1038 return mlir::success();
1039 }
1040
1041 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1042 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1043 ) {
1044 printer << (isFirst ? " : " : ", ");
1045 printer.printStrippedAttrOrType(opType);
1046 }
1047};
1048} // namespace felt
1049} // namespace llzk
1050MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::InvFeltOp)
1051
1052namespace llzk {
1053namespace felt {
1054
1055//===----------------------------------------------------------------------===//
1056// ::llzk::felt::MulFeltOp declarations
1057//===----------------------------------------------------------------------===//
1058
1059namespace detail {
1061public:
1062protected:
1063 ::mlir::DictionaryAttr odsAttrs;
1064 ::std::optional<::mlir::OperationName> odsOpName;
1065 ::mlir::RegionRange odsRegions;
1066public:
1067 MulFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1068 odsOpName.emplace("felt.mul", odsAttrs.getContext());
1069 }
1070
1071 MulFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1072
1073 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1074 return {index, 1};
1075 }
1076
1077 ::mlir::DictionaryAttr getAttributes() {
1078 return odsAttrs;
1079 }
1080
1081};
1082} // namespace detail
1083template <typename RangeT>
1085 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1087public:
1088 MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1089
1090 MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : MulFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1091
1092 MulFeltOpGenericAdaptor(RangeT values, const MulFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1093
1094 template <typename LateInst = MulFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, MulFeltOp>>>
1095 MulFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1096
1097 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1098 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1099 }
1100
1101 RangeT getODSOperands(unsigned index) {
1102 auto valueRange = getODSOperandIndexAndLength(index);
1103 return {std::next(odsOperands.begin(), valueRange.first),
1104 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1105 }
1106
1107 ValueT getLhs() {
1108 return (*getODSOperands(0).begin());
1109 }
1110
1111 ValueT getRhs() {
1112 return (*getODSOperands(1).begin());
1113 }
1114
1115 RangeT getOperands() {
1116 return odsOperands;
1117 }
1118
1119private:
1120 RangeT odsOperands;
1121};
1122class MulFeltOpAdaptor : public MulFeltOpGenericAdaptor<::mlir::ValueRange> {
1123public:
1126
1127 ::llvm::LogicalResult verify(::mlir::Location loc);
1128};
1129class 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> {
1130public:
1131 using Op::Op;
1132 using Op::print;
1134 template <typename RangeT>
1137 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1138 return {};
1139 }
1140
1141 static constexpr ::llvm::StringLiteral getOperationName() {
1142 return ::llvm::StringLiteral("felt.mul");
1143 }
1144
1145 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1146 return {index, 1};
1147 }
1148
1149 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1150 auto valueRange = getODSOperandIndexAndLength(index);
1151 return {std::next(getOperation()->operand_begin(), valueRange.first),
1152 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1153 }
1154
1155 ::mlir::TypedValue<::mlir::Type> getLhs() {
1156 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1157 }
1158
1159 ::mlir::TypedValue<::mlir::Type> getRhs() {
1160 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
1161 }
1162
1163 ::mlir::OpOperand &getLhsMutable() {
1164 auto range = getODSOperandIndexAndLength(0);
1165 return getOperation()->getOpOperand(range.first);
1166 }
1167
1168 ::mlir::OpOperand &getRhsMutable() {
1169 auto range = getODSOperandIndexAndLength(1);
1170 return getOperation()->getOpOperand(range.first);
1171 }
1172
1173 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1174 return {index, 1};
1175 }
1176
1177 ::mlir::Operation::result_range getODSResults(unsigned index) {
1178 auto valueRange = getODSResultIndexAndLength(index);
1179 return {std::next(getOperation()->result_begin(), valueRange.first),
1180 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1181 }
1182
1183 ::mlir::TypedValue<::mlir::Type> getResult() {
1184 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
1185 }
1186
1187 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1188 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1189 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1190 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1191 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1192 ::llvm::LogicalResult verifyInvariantsImpl();
1193 ::llvm::LogicalResult verifyInvariants();
1194 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1195 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);
1196 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1197 void print(::mlir::OpAsmPrinter &_odsPrinter);
1198 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1199public:
1200 static ::llvm::LogicalResult
1201 inferReturnTypes(::mlir::MLIRContext *context,
1202 std::optional<::mlir::Location> location,
1203 Adaptor adaptor,
1204 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
1205
1206 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
1207
1208
1209 private:
1210 static ::mlir::ParseResult parseInferredOrParsedType(
1211 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1212 ) {
1213 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1214 // If there is a comma, parse the `opType`
1215 mlir::Type type;
1216 if (parser.parseCustomTypeWithFallback(type)) {
1217 return mlir::failure();
1218 }
1219 opType = type;
1220 } else {
1221 // Otherwise, build the default type
1222 opType =
1223 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
1224 }
1225 return mlir::success();
1226 }
1227
1228 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1229 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1230 ) {
1231 printer << (isFirst ? " : " : ", ");
1232 printer.printStrippedAttrOrType(opType);
1233 }
1234};
1235} // namespace felt
1236} // namespace llzk
1237MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::MulFeltOp)
1238
1239namespace llzk {
1240namespace felt {
1241
1242//===----------------------------------------------------------------------===//
1243// ::llzk::felt::NegFeltOp declarations
1244//===----------------------------------------------------------------------===//
1245
1246namespace detail {
1248public:
1249protected:
1250 ::mlir::DictionaryAttr odsAttrs;
1251 ::std::optional<::mlir::OperationName> odsOpName;
1252 ::mlir::RegionRange odsRegions;
1253public:
1254 NegFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1255 odsOpName.emplace("felt.neg", odsAttrs.getContext());
1256 }
1257
1258 NegFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1259
1260 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1261 return {index, 1};
1262 }
1263
1264 ::mlir::DictionaryAttr getAttributes() {
1265 return odsAttrs;
1266 }
1267
1268};
1269} // namespace detail
1270template <typename RangeT>
1272 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1274public:
1275 NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1276
1277 NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NegFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1278
1279 NegFeltOpGenericAdaptor(RangeT values, const NegFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1280
1281 template <typename LateInst = NegFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, NegFeltOp>>>
1282 NegFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1283
1284 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1285 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1286 }
1287
1288 RangeT getODSOperands(unsigned index) {
1289 auto valueRange = getODSOperandIndexAndLength(index);
1290 return {std::next(odsOperands.begin(), valueRange.first),
1291 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1292 }
1293
1294 ValueT getOperand() {
1295 return (*getODSOperands(0).begin());
1296 }
1297
1298 RangeT getOperands() {
1299 return odsOperands;
1300 }
1301
1302private:
1303 RangeT odsOperands;
1304};
1305class NegFeltOpAdaptor : public NegFeltOpGenericAdaptor<::mlir::ValueRange> {
1306public:
1309
1310 ::llvm::LogicalResult verify(::mlir::Location loc);
1311};
1312class 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> {
1313public:
1314 using Op::Op;
1315 using Op::print;
1317 template <typename RangeT>
1320 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1321 return {};
1322 }
1323
1324 static constexpr ::llvm::StringLiteral getOperationName() {
1325 return ::llvm::StringLiteral("felt.neg");
1326 }
1327
1328 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1329 return {index, 1};
1330 }
1331
1332 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1333 auto valueRange = getODSOperandIndexAndLength(index);
1334 return {std::next(getOperation()->operand_begin(), valueRange.first),
1335 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1336 }
1337
1338 ::mlir::TypedValue<::mlir::Type> getOperand() {
1339 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1340 }
1341
1342 ::mlir::OpOperand &getOperandMutable() {
1343 auto range = getODSOperandIndexAndLength(0);
1344 return getOperation()->getOpOperand(range.first);
1345 }
1346
1347 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1348 return {index, 1};
1349 }
1350
1351 ::mlir::Operation::result_range getODSResults(unsigned index) {
1352 auto valueRange = getODSResultIndexAndLength(index);
1353 return {std::next(getOperation()->result_begin(), valueRange.first),
1354 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1355 }
1356
1357 ::mlir::TypedValue<::mlir::Type> getResult() {
1358 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
1359 }
1360
1361 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand);
1362 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand);
1363 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand);
1364 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1365 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1366 ::llvm::LogicalResult verifyInvariantsImpl();
1367 ::llvm::LogicalResult verifyInvariants();
1368 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1369 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);
1370 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1371 void print(::mlir::OpAsmPrinter &_odsPrinter);
1372 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1373public:
1374 static ::llvm::LogicalResult
1375 inferReturnTypes(::mlir::MLIRContext *context,
1376 std::optional<::mlir::Location> location,
1377 Adaptor adaptor,
1378 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
1379
1380 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
1381
1382
1383 private:
1384 static ::mlir::ParseResult parseInferredOrParsedType(
1385 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1386 ) {
1387 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1388 // If there is a comma, parse the `opType`
1389 mlir::Type type;
1390 if (parser.parseCustomTypeWithFallback(type)) {
1391 return mlir::failure();
1392 }
1393 opType = type;
1394 } else {
1395 // Otherwise, build the default type
1396 opType =
1397 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
1398 }
1399 return mlir::success();
1400 }
1401
1402 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1403 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1404 ) {
1405 printer << (isFirst ? " : " : ", ");
1406 printer.printStrippedAttrOrType(opType);
1407 }
1408};
1409} // namespace felt
1410} // namespace llzk
1411MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::NegFeltOp)
1412
1413namespace llzk {
1414namespace felt {
1415
1416//===----------------------------------------------------------------------===//
1417// ::llzk::felt::NotFeltOp declarations
1418//===----------------------------------------------------------------------===//
1419
1420namespace detail {
1422public:
1423protected:
1424 ::mlir::DictionaryAttr odsAttrs;
1425 ::std::optional<::mlir::OperationName> odsOpName;
1426 ::mlir::RegionRange odsRegions;
1427public:
1428 NotFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1429 odsOpName.emplace("felt.bit_not", odsAttrs.getContext());
1430 }
1431
1432 NotFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1433
1434 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1435 return {index, 1};
1436 }
1437
1438 ::mlir::DictionaryAttr getAttributes() {
1439 return odsAttrs;
1440 }
1441
1442};
1443} // namespace detail
1444template <typename RangeT>
1446 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1448public:
1449 NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1450
1451 NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NotFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1452
1453 NotFeltOpGenericAdaptor(RangeT values, const NotFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1454
1455 template <typename LateInst = NotFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, NotFeltOp>>>
1456 NotFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1457
1458 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1459 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1460 }
1461
1462 RangeT getODSOperands(unsigned index) {
1463 auto valueRange = getODSOperandIndexAndLength(index);
1464 return {std::next(odsOperands.begin(), valueRange.first),
1465 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1466 }
1467
1468 ValueT getOperand() {
1469 return (*getODSOperands(0).begin());
1470 }
1471
1472 RangeT getOperands() {
1473 return odsOperands;
1474 }
1475
1476private:
1477 RangeT odsOperands;
1478};
1479class NotFeltOpAdaptor : public NotFeltOpGenericAdaptor<::mlir::ValueRange> {
1480public:
1483
1484 ::llvm::LogicalResult verify(::mlir::Location loc);
1485};
1486class 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> {
1487public:
1488 using Op::Op;
1489 using Op::print;
1491 template <typename RangeT>
1494 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1495 return {};
1496 }
1497
1498 static constexpr ::llvm::StringLiteral getOperationName() {
1499 return ::llvm::StringLiteral("felt.bit_not");
1500 }
1501
1502 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1503 return {index, 1};
1504 }
1505
1506 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1507 auto valueRange = getODSOperandIndexAndLength(index);
1508 return {std::next(getOperation()->operand_begin(), valueRange.first),
1509 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1510 }
1511
1512 ::mlir::TypedValue<::mlir::Type> getOperand() {
1513 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1514 }
1515
1516 ::mlir::OpOperand &getOperandMutable() {
1517 auto range = getODSOperandIndexAndLength(0);
1518 return getOperation()->getOpOperand(range.first);
1519 }
1520
1521 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1522 return {index, 1};
1523 }
1524
1525 ::mlir::Operation::result_range getODSResults(unsigned index) {
1526 auto valueRange = getODSResultIndexAndLength(index);
1527 return {std::next(getOperation()->result_begin(), valueRange.first),
1528 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1529 }
1530
1531 ::mlir::TypedValue<::mlir::Type> getResult() {
1532 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
1533 }
1534
1535 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand);
1536 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand);
1537 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand);
1538 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1539 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1540 ::llvm::LogicalResult verifyInvariantsImpl();
1541 ::llvm::LogicalResult verifyInvariants();
1542 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1543 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);
1544 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1545 void print(::mlir::OpAsmPrinter &_odsPrinter);
1546 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1547public:
1548 static ::llvm::LogicalResult
1549 inferReturnTypes(::mlir::MLIRContext *context,
1550 std::optional<::mlir::Location> location,
1551 Adaptor adaptor,
1552 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
1553
1554 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
1555
1556
1557 private:
1558 static ::mlir::ParseResult parseInferredOrParsedType(
1559 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1560 ) {
1561 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1562 // If there is a comma, parse the `opType`
1563 mlir::Type type;
1564 if (parser.parseCustomTypeWithFallback(type)) {
1565 return mlir::failure();
1566 }
1567 opType = type;
1568 } else {
1569 // Otherwise, build the default type
1570 opType =
1571 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
1572 }
1573 return mlir::success();
1574 }
1575
1576 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1577 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1578 ) {
1579 printer << (isFirst ? " : " : ", ");
1580 printer.printStrippedAttrOrType(opType);
1581 }
1582};
1583} // namespace felt
1584} // namespace llzk
1585MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::NotFeltOp)
1586
1587namespace llzk {
1588namespace felt {
1589
1590//===----------------------------------------------------------------------===//
1591// ::llzk::felt::OrFeltOp declarations
1592//===----------------------------------------------------------------------===//
1593
1594namespace detail {
1596public:
1597protected:
1598 ::mlir::DictionaryAttr odsAttrs;
1599 ::std::optional<::mlir::OperationName> odsOpName;
1600 ::mlir::RegionRange odsRegions;
1601public:
1602 OrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1603 odsOpName.emplace("felt.bit_or", odsAttrs.getContext());
1604 }
1605
1606 OrFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1607
1608 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1609 return {index, 1};
1610 }
1611
1612 ::mlir::DictionaryAttr getAttributes() {
1613 return odsAttrs;
1614 }
1615
1616};
1617} // namespace detail
1618template <typename RangeT>
1620 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1622public:
1623 OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1624
1625 OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : OrFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1626
1627 OrFeltOpGenericAdaptor(RangeT values, const OrFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1628
1629 template <typename LateInst = OrFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, OrFeltOp>>>
1630 OrFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1631
1632 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1633 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1634 }
1635
1636 RangeT getODSOperands(unsigned index) {
1637 auto valueRange = getODSOperandIndexAndLength(index);
1638 return {std::next(odsOperands.begin(), valueRange.first),
1639 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1640 }
1641
1642 ValueT getLhs() {
1643 return (*getODSOperands(0).begin());
1644 }
1645
1646 ValueT getRhs() {
1647 return (*getODSOperands(1).begin());
1648 }
1649
1650 RangeT getOperands() {
1651 return odsOperands;
1652 }
1653
1654private:
1655 RangeT odsOperands;
1656};
1657class OrFeltOpAdaptor : public OrFeltOpGenericAdaptor<::mlir::ValueRange> {
1658public:
1661
1662 ::llvm::LogicalResult verify(::mlir::Location loc);
1663};
1664class 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> {
1665public:
1666 using Op::Op;
1667 using Op::print;
1669 template <typename RangeT>
1672 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1673 return {};
1674 }
1675
1676 static constexpr ::llvm::StringLiteral getOperationName() {
1677 return ::llvm::StringLiteral("felt.bit_or");
1678 }
1679
1680 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1681 return {index, 1};
1682 }
1683
1684 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1685 auto valueRange = getODSOperandIndexAndLength(index);
1686 return {std::next(getOperation()->operand_begin(), valueRange.first),
1687 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1688 }
1689
1690 ::mlir::TypedValue<::mlir::Type> getLhs() {
1691 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1692 }
1693
1694 ::mlir::TypedValue<::mlir::Type> getRhs() {
1695 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
1696 }
1697
1698 ::mlir::OpOperand &getLhsMutable() {
1699 auto range = getODSOperandIndexAndLength(0);
1700 return getOperation()->getOpOperand(range.first);
1701 }
1702
1703 ::mlir::OpOperand &getRhsMutable() {
1704 auto range = getODSOperandIndexAndLength(1);
1705 return getOperation()->getOpOperand(range.first);
1706 }
1707
1708 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1709 return {index, 1};
1710 }
1711
1712 ::mlir::Operation::result_range getODSResults(unsigned index) {
1713 auto valueRange = getODSResultIndexAndLength(index);
1714 return {std::next(getOperation()->result_begin(), valueRange.first),
1715 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1716 }
1717
1718 ::mlir::TypedValue<::mlir::Type> getResult() {
1719 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
1720 }
1721
1722 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1723 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1724 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1725 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1726 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1727 ::llvm::LogicalResult verifyInvariantsImpl();
1728 ::llvm::LogicalResult verifyInvariants();
1729 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1730 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);
1731 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1732 void print(::mlir::OpAsmPrinter &_odsPrinter);
1733 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1734public:
1735 static ::llvm::LogicalResult
1736 inferReturnTypes(::mlir::MLIRContext *context,
1737 std::optional<::mlir::Location> location,
1738 Adaptor adaptor,
1739 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
1740
1741 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
1742
1743
1744 private:
1745 static ::mlir::ParseResult parseInferredOrParsedType(
1746 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1747 ) {
1748 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1749 // If there is a comma, parse the `opType`
1750 mlir::Type type;
1751 if (parser.parseCustomTypeWithFallback(type)) {
1752 return mlir::failure();
1753 }
1754 opType = type;
1755 } else {
1756 // Otherwise, build the default type
1757 opType =
1758 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
1759 }
1760 return mlir::success();
1761 }
1762
1763 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1764 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1765 ) {
1766 printer << (isFirst ? " : " : ", ");
1767 printer.printStrippedAttrOrType(opType);
1768 }
1769};
1770} // namespace felt
1771} // namespace llzk
1772MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::OrFeltOp)
1773
1774namespace llzk {
1775namespace felt {
1776
1777//===----------------------------------------------------------------------===//
1778// ::llzk::felt::PowFeltOp declarations
1779//===----------------------------------------------------------------------===//
1780
1781namespace detail {
1783public:
1784protected:
1785 ::mlir::DictionaryAttr odsAttrs;
1786 ::std::optional<::mlir::OperationName> odsOpName;
1787 ::mlir::RegionRange odsRegions;
1788public:
1789 PowFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1790 odsOpName.emplace("felt.pow", odsAttrs.getContext());
1791 }
1792
1793 PowFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1794
1795 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1796 return {index, 1};
1797 }
1798
1799 ::mlir::DictionaryAttr getAttributes() {
1800 return odsAttrs;
1801 }
1802
1803};
1804} // namespace detail
1805template <typename RangeT>
1807 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1809public:
1810 PowFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1811
1812 PowFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : PowFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1813
1814 PowFeltOpGenericAdaptor(RangeT values, const PowFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1815
1816 template <typename LateInst = PowFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, PowFeltOp>>>
1817 PowFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1818
1819 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1820 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1821 }
1822
1823 RangeT getODSOperands(unsigned index) {
1824 auto valueRange = getODSOperandIndexAndLength(index);
1825 return {std::next(odsOperands.begin(), valueRange.first),
1826 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1827 }
1828
1829 ValueT getLhs() {
1830 return (*getODSOperands(0).begin());
1831 }
1832
1833 ValueT getRhs() {
1834 return (*getODSOperands(1).begin());
1835 }
1836
1837 RangeT getOperands() {
1838 return odsOperands;
1839 }
1840
1841private:
1842 RangeT odsOperands;
1843};
1844class PowFeltOpAdaptor : public PowFeltOpGenericAdaptor<::mlir::ValueRange> {
1845public:
1848
1849 ::llvm::LogicalResult verify(::mlir::Location loc);
1850};
1851class 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> {
1852public:
1853 using Op::Op;
1854 using Op::print;
1856 template <typename RangeT>
1859 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1860 return {};
1861 }
1862
1863 static constexpr ::llvm::StringLiteral getOperationName() {
1864 return ::llvm::StringLiteral("felt.pow");
1865 }
1866
1867 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1868 return {index, 1};
1869 }
1870
1871 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1872 auto valueRange = getODSOperandIndexAndLength(index);
1873 return {std::next(getOperation()->operand_begin(), valueRange.first),
1874 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1875 }
1876
1877 ::mlir::TypedValue<::mlir::Type> getLhs() {
1878 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1879 }
1880
1881 ::mlir::TypedValue<::mlir::Type> getRhs() {
1882 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
1883 }
1884
1885 ::mlir::OpOperand &getLhsMutable() {
1886 auto range = getODSOperandIndexAndLength(0);
1887 return getOperation()->getOpOperand(range.first);
1888 }
1889
1890 ::mlir::OpOperand &getRhsMutable() {
1891 auto range = getODSOperandIndexAndLength(1);
1892 return getOperation()->getOpOperand(range.first);
1893 }
1894
1895 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1896 return {index, 1};
1897 }
1898
1899 ::mlir::Operation::result_range getODSResults(unsigned index) {
1900 auto valueRange = getODSResultIndexAndLength(index);
1901 return {std::next(getOperation()->result_begin(), valueRange.first),
1902 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1903 }
1904
1905 ::mlir::TypedValue<::mlir::Type> getResult() {
1906 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
1907 }
1908
1909 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1910 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1911 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1912 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1913 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1914 ::llvm::LogicalResult verifyInvariantsImpl();
1915 ::llvm::LogicalResult verifyInvariants();
1916 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1917 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);
1918 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1919 void print(::mlir::OpAsmPrinter &_odsPrinter);
1920 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1921public:
1922 static ::llvm::LogicalResult
1923 inferReturnTypes(::mlir::MLIRContext *context,
1924 std::optional<::mlir::Location> location,
1925 Adaptor adaptor,
1926 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
1927
1928 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
1929
1930
1931 private:
1932 static ::mlir::ParseResult parseInferredOrParsedType(
1933 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1934 ) {
1935 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1936 // If there is a comma, parse the `opType`
1937 mlir::Type type;
1938 if (parser.parseCustomTypeWithFallback(type)) {
1939 return mlir::failure();
1940 }
1941 opType = type;
1942 } else {
1943 // Otherwise, build the default type
1944 opType =
1945 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
1946 }
1947 return mlir::success();
1948 }
1949
1950 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1951 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1952 ) {
1953 printer << (isFirst ? " : " : ", ");
1954 printer.printStrippedAttrOrType(opType);
1955 }
1956};
1957} // namespace felt
1958} // namespace llzk
1959MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::PowFeltOp)
1960
1961namespace llzk {
1962namespace felt {
1963
1964//===----------------------------------------------------------------------===//
1965// ::llzk::felt::ShlFeltOp declarations
1966//===----------------------------------------------------------------------===//
1967
1968namespace detail {
1970public:
1971protected:
1972 ::mlir::DictionaryAttr odsAttrs;
1973 ::std::optional<::mlir::OperationName> odsOpName;
1974 ::mlir::RegionRange odsRegions;
1975public:
1976 ShlFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1977 odsOpName.emplace("felt.shl", odsAttrs.getContext());
1978 }
1979
1980 ShlFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1981
1982 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1983 return {index, 1};
1984 }
1985
1986 ::mlir::DictionaryAttr getAttributes() {
1987 return odsAttrs;
1988 }
1989
1990};
1991} // namespace detail
1992template <typename RangeT>
1994 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1996public:
1997 ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1998
1999 ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ShlFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2000
2001 ShlFeltOpGenericAdaptor(RangeT values, const ShlFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2002
2003 template <typename LateInst = ShlFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, ShlFeltOp>>>
2004 ShlFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2005
2006 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2007 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2008 }
2009
2010 RangeT getODSOperands(unsigned index) {
2011 auto valueRange = getODSOperandIndexAndLength(index);
2012 return {std::next(odsOperands.begin(), valueRange.first),
2013 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2014 }
2015
2016 ValueT getLhs() {
2017 return (*getODSOperands(0).begin());
2018 }
2019
2020 ValueT getRhs() {
2021 return (*getODSOperands(1).begin());
2022 }
2023
2024 RangeT getOperands() {
2025 return odsOperands;
2026 }
2027
2028private:
2029 RangeT odsOperands;
2030};
2031class ShlFeltOpAdaptor : public ShlFeltOpGenericAdaptor<::mlir::ValueRange> {
2032public:
2035
2036 ::llvm::LogicalResult verify(::mlir::Location loc);
2037};
2038class 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> {
2039public:
2040 using Op::Op;
2041 using Op::print;
2043 template <typename RangeT>
2046 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2047 return {};
2048 }
2049
2050 static constexpr ::llvm::StringLiteral getOperationName() {
2051 return ::llvm::StringLiteral("felt.shl");
2052 }
2053
2054 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2055 return {index, 1};
2056 }
2057
2058 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2059 auto valueRange = getODSOperandIndexAndLength(index);
2060 return {std::next(getOperation()->operand_begin(), valueRange.first),
2061 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2062 }
2063
2064 ::mlir::TypedValue<::mlir::Type> getLhs() {
2065 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2066 }
2067
2068 ::mlir::TypedValue<::mlir::Type> getRhs() {
2069 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
2070 }
2071
2072 ::mlir::OpOperand &getLhsMutable() {
2073 auto range = getODSOperandIndexAndLength(0);
2074 return getOperation()->getOpOperand(range.first);
2075 }
2076
2077 ::mlir::OpOperand &getRhsMutable() {
2078 auto range = getODSOperandIndexAndLength(1);
2079 return getOperation()->getOpOperand(range.first);
2080 }
2081
2082 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2083 return {index, 1};
2084 }
2085
2086 ::mlir::Operation::result_range getODSResults(unsigned index) {
2087 auto valueRange = getODSResultIndexAndLength(index);
2088 return {std::next(getOperation()->result_begin(), valueRange.first),
2089 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2090 }
2091
2092 ::mlir::TypedValue<::mlir::Type> getResult() {
2093 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
2094 }
2095
2096 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2097 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2098 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2099 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2100 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2101 ::llvm::LogicalResult verifyInvariantsImpl();
2102 ::llvm::LogicalResult verifyInvariants();
2103 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2104 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
2105 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2106 void print(::mlir::OpAsmPrinter &_odsPrinter);
2107 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2108public:
2109 static ::llvm::LogicalResult
2110 inferReturnTypes(::mlir::MLIRContext *context,
2111 std::optional<::mlir::Location> location,
2112 Adaptor adaptor,
2113 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
2114
2115 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
2116
2117
2118 private:
2119 static ::mlir::ParseResult parseInferredOrParsedType(
2120 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
2121 ) {
2122 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
2123 // If there is a comma, parse the `opType`
2124 mlir::Type type;
2125 if (parser.parseCustomTypeWithFallback(type)) {
2126 return mlir::failure();
2127 }
2128 opType = type;
2129 } else {
2130 // Otherwise, build the default type
2131 opType =
2132 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
2133 }
2134 return mlir::success();
2135 }
2136
2137 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
2138 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
2139 ) {
2140 printer << (isFirst ? " : " : ", ");
2141 printer.printStrippedAttrOrType(opType);
2142 }
2143};
2144} // namespace felt
2145} // namespace llzk
2146MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::ShlFeltOp)
2147
2148namespace llzk {
2149namespace felt {
2150
2151//===----------------------------------------------------------------------===//
2152// ::llzk::felt::ShrFeltOp declarations
2153//===----------------------------------------------------------------------===//
2154
2155namespace detail {
2157public:
2158protected:
2159 ::mlir::DictionaryAttr odsAttrs;
2160 ::std::optional<::mlir::OperationName> odsOpName;
2161 ::mlir::RegionRange odsRegions;
2162public:
2163 ShrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2164 odsOpName.emplace("felt.shr", odsAttrs.getContext());
2165 }
2166
2167 ShrFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2168
2169 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2170 return {index, 1};
2171 }
2172
2173 ::mlir::DictionaryAttr getAttributes() {
2174 return odsAttrs;
2175 }
2176
2177};
2178} // namespace detail
2179template <typename RangeT>
2181 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2183public:
2184 ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2185
2186 ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ShrFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2187
2188 ShrFeltOpGenericAdaptor(RangeT values, const ShrFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2189
2190 template <typename LateInst = ShrFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, ShrFeltOp>>>
2191 ShrFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2192
2193 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2194 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2195 }
2196
2197 RangeT getODSOperands(unsigned index) {
2198 auto valueRange = getODSOperandIndexAndLength(index);
2199 return {std::next(odsOperands.begin(), valueRange.first),
2200 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2201 }
2202
2203 ValueT getLhs() {
2204 return (*getODSOperands(0).begin());
2205 }
2206
2207 ValueT getRhs() {
2208 return (*getODSOperands(1).begin());
2209 }
2210
2211 RangeT getOperands() {
2212 return odsOperands;
2213 }
2214
2215private:
2216 RangeT odsOperands;
2217};
2218class ShrFeltOpAdaptor : public ShrFeltOpGenericAdaptor<::mlir::ValueRange> {
2219public:
2222
2223 ::llvm::LogicalResult verify(::mlir::Location loc);
2224};
2225class 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> {
2226public:
2227 using Op::Op;
2228 using Op::print;
2230 template <typename RangeT>
2233 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2234 return {};
2235 }
2236
2237 static constexpr ::llvm::StringLiteral getOperationName() {
2238 return ::llvm::StringLiteral("felt.shr");
2239 }
2240
2241 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2242 return {index, 1};
2243 }
2244
2245 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2246 auto valueRange = getODSOperandIndexAndLength(index);
2247 return {std::next(getOperation()->operand_begin(), valueRange.first),
2248 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2249 }
2250
2251 ::mlir::TypedValue<::mlir::Type> getLhs() {
2252 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2253 }
2254
2255 ::mlir::TypedValue<::mlir::Type> getRhs() {
2256 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
2257 }
2258
2259 ::mlir::OpOperand &getLhsMutable() {
2260 auto range = getODSOperandIndexAndLength(0);
2261 return getOperation()->getOpOperand(range.first);
2262 }
2263
2264 ::mlir::OpOperand &getRhsMutable() {
2265 auto range = getODSOperandIndexAndLength(1);
2266 return getOperation()->getOpOperand(range.first);
2267 }
2268
2269 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2270 return {index, 1};
2271 }
2272
2273 ::mlir::Operation::result_range getODSResults(unsigned index) {
2274 auto valueRange = getODSResultIndexAndLength(index);
2275 return {std::next(getOperation()->result_begin(), valueRange.first),
2276 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2277 }
2278
2279 ::mlir::TypedValue<::mlir::Type> getResult() {
2280 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
2281 }
2282
2283 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2284 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2285 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2286 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2287 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2288 ::llvm::LogicalResult verifyInvariantsImpl();
2289 ::llvm::LogicalResult verifyInvariants();
2290 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2291 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);
2292 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2293 void print(::mlir::OpAsmPrinter &_odsPrinter);
2294 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2295public:
2296 static ::llvm::LogicalResult
2297 inferReturnTypes(::mlir::MLIRContext *context,
2298 std::optional<::mlir::Location> location,
2299 Adaptor adaptor,
2300 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
2301
2302 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
2303
2304
2305 private:
2306 static ::mlir::ParseResult parseInferredOrParsedType(
2307 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
2308 ) {
2309 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
2310 // If there is a comma, parse the `opType`
2311 mlir::Type type;
2312 if (parser.parseCustomTypeWithFallback(type)) {
2313 return mlir::failure();
2314 }
2315 opType = type;
2316 } else {
2317 // Otherwise, build the default type
2318 opType =
2319 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
2320 }
2321 return mlir::success();
2322 }
2323
2324 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
2325 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
2326 ) {
2327 printer << (isFirst ? " : " : ", ");
2328 printer.printStrippedAttrOrType(opType);
2329 }
2330};
2331} // namespace felt
2332} // namespace llzk
2333MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::ShrFeltOp)
2334
2335namespace llzk {
2336namespace felt {
2337
2338//===----------------------------------------------------------------------===//
2339// ::llzk::felt::SignedIntDivFeltOp declarations
2340//===----------------------------------------------------------------------===//
2341
2342namespace detail {
2344public:
2345protected:
2346 ::mlir::DictionaryAttr odsAttrs;
2347 ::std::optional<::mlir::OperationName> odsOpName;
2348 ::mlir::RegionRange odsRegions;
2349public:
2350 SignedIntDivFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2351 odsOpName.emplace("felt.sintdiv", odsAttrs.getContext());
2352 }
2353
2354 SignedIntDivFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2355
2356 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2357 return {index, 1};
2358 }
2359
2360 ::mlir::DictionaryAttr getAttributes() {
2361 return odsAttrs;
2362 }
2363
2364};
2365} // namespace detail
2366template <typename RangeT>
2368 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2370public:
2371 SignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2372
2373 SignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SignedIntDivFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2374
2375 SignedIntDivFeltOpGenericAdaptor(RangeT values, const SignedIntDivFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2376
2377 template <typename LateInst = SignedIntDivFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, SignedIntDivFeltOp>>>
2378 SignedIntDivFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2379
2380 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2381 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2382 }
2383
2384 RangeT getODSOperands(unsigned index) {
2385 auto valueRange = getODSOperandIndexAndLength(index);
2386 return {std::next(odsOperands.begin(), valueRange.first),
2387 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2388 }
2389
2390 ValueT getLhs() {
2391 return (*getODSOperands(0).begin());
2392 }
2393
2394 ValueT getRhs() {
2395 return (*getODSOperands(1).begin());
2396 }
2397
2398 RangeT getOperands() {
2399 return odsOperands;
2400 }
2401
2402private:
2403 RangeT odsOperands;
2404};
2406public:
2409
2410 ::llvm::LogicalResult verify(::mlir::Location loc);
2411};
2412class 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> {
2413public:
2414 using Op::Op;
2415 using Op::print;
2417 template <typename RangeT>
2420 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2421 return {};
2422 }
2423
2424 static constexpr ::llvm::StringLiteral getOperationName() {
2425 return ::llvm::StringLiteral("felt.sintdiv");
2426 }
2427
2428 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2429 return {index, 1};
2430 }
2431
2432 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2433 auto valueRange = getODSOperandIndexAndLength(index);
2434 return {std::next(getOperation()->operand_begin(), valueRange.first),
2435 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2436 }
2437
2438 ::mlir::TypedValue<::mlir::Type> getLhs() {
2439 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2440 }
2441
2442 ::mlir::TypedValue<::mlir::Type> getRhs() {
2443 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
2444 }
2445
2446 ::mlir::OpOperand &getLhsMutable() {
2447 auto range = getODSOperandIndexAndLength(0);
2448 return getOperation()->getOpOperand(range.first);
2449 }
2450
2451 ::mlir::OpOperand &getRhsMutable() {
2452 auto range = getODSOperandIndexAndLength(1);
2453 return getOperation()->getOpOperand(range.first);
2454 }
2455
2456 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2457 return {index, 1};
2458 }
2459
2460 ::mlir::Operation::result_range getODSResults(unsigned index) {
2461 auto valueRange = getODSResultIndexAndLength(index);
2462 return {std::next(getOperation()->result_begin(), valueRange.first),
2463 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2464 }
2465
2466 ::mlir::TypedValue<::mlir::Type> getResult() {
2467 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
2468 }
2469
2470 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2471 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2472 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2473 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2474 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2475 ::llvm::LogicalResult verifyInvariantsImpl();
2476 ::llvm::LogicalResult verifyInvariants();
2477 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2478 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);
2479 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2480 void print(::mlir::OpAsmPrinter &_odsPrinter);
2481 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2482public:
2483 static ::llvm::LogicalResult
2484 inferReturnTypes(::mlir::MLIRContext *context,
2485 std::optional<::mlir::Location> location,
2486 Adaptor adaptor,
2487 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
2488
2489 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
2490
2491
2492 private:
2493 static ::mlir::ParseResult parseInferredOrParsedType(
2494 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
2495 ) {
2496 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
2497 // If there is a comma, parse the `opType`
2498 mlir::Type type;
2499 if (parser.parseCustomTypeWithFallback(type)) {
2500 return mlir::failure();
2501 }
2502 opType = type;
2503 } else {
2504 // Otherwise, build the default type
2505 opType =
2506 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
2507 }
2508 return mlir::success();
2509 }
2510
2511 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
2512 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
2513 ) {
2514 printer << (isFirst ? " : " : ", ");
2515 printer.printStrippedAttrOrType(opType);
2516 }
2517};
2518} // namespace felt
2519} // namespace llzk
2520MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::SignedIntDivFeltOp)
2521
2522namespace llzk {
2523namespace felt {
2524
2525//===----------------------------------------------------------------------===//
2526// ::llzk::felt::SignedModFeltOp declarations
2527//===----------------------------------------------------------------------===//
2528
2529namespace detail {
2531public:
2532protected:
2533 ::mlir::DictionaryAttr odsAttrs;
2534 ::std::optional<::mlir::OperationName> odsOpName;
2535 ::mlir::RegionRange odsRegions;
2536public:
2537 SignedModFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2538 odsOpName.emplace("felt.smod", odsAttrs.getContext());
2539 }
2540
2541 SignedModFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2542
2543 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2544 return {index, 1};
2545 }
2546
2547 ::mlir::DictionaryAttr getAttributes() {
2548 return odsAttrs;
2549 }
2550
2551};
2552} // namespace detail
2553template <typename RangeT>
2555 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2557public:
2558 SignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2559
2560 SignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SignedModFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2561
2562 SignedModFeltOpGenericAdaptor(RangeT values, const SignedModFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2563
2564 template <typename LateInst = SignedModFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, SignedModFeltOp>>>
2565 SignedModFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2566
2567 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2568 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2569 }
2570
2571 RangeT getODSOperands(unsigned index) {
2572 auto valueRange = getODSOperandIndexAndLength(index);
2573 return {std::next(odsOperands.begin(), valueRange.first),
2574 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2575 }
2576
2577 ValueT getLhs() {
2578 return (*getODSOperands(0).begin());
2579 }
2580
2581 ValueT getRhs() {
2582 return (*getODSOperands(1).begin());
2583 }
2584
2585 RangeT getOperands() {
2586 return odsOperands;
2587 }
2588
2589private:
2590 RangeT odsOperands;
2591};
2592class SignedModFeltOpAdaptor : public SignedModFeltOpGenericAdaptor<::mlir::ValueRange> {
2593public:
2596
2597 ::llvm::LogicalResult verify(::mlir::Location loc);
2598};
2599class 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> {
2600public:
2601 using Op::Op;
2602 using Op::print;
2604 template <typename RangeT>
2607 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2608 return {};
2609 }
2610
2611 static constexpr ::llvm::StringLiteral getOperationName() {
2612 return ::llvm::StringLiteral("felt.smod");
2613 }
2614
2615 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2616 return {index, 1};
2617 }
2618
2619 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2620 auto valueRange = getODSOperandIndexAndLength(index);
2621 return {std::next(getOperation()->operand_begin(), valueRange.first),
2622 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2623 }
2624
2625 ::mlir::TypedValue<::mlir::Type> getLhs() {
2626 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2627 }
2628
2629 ::mlir::TypedValue<::mlir::Type> getRhs() {
2630 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
2631 }
2632
2633 ::mlir::OpOperand &getLhsMutable() {
2634 auto range = getODSOperandIndexAndLength(0);
2635 return getOperation()->getOpOperand(range.first);
2636 }
2637
2638 ::mlir::OpOperand &getRhsMutable() {
2639 auto range = getODSOperandIndexAndLength(1);
2640 return getOperation()->getOpOperand(range.first);
2641 }
2642
2643 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2644 return {index, 1};
2645 }
2646
2647 ::mlir::Operation::result_range getODSResults(unsigned index) {
2648 auto valueRange = getODSResultIndexAndLength(index);
2649 return {std::next(getOperation()->result_begin(), valueRange.first),
2650 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2651 }
2652
2653 ::mlir::TypedValue<::mlir::Type> getResult() {
2654 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
2655 }
2656
2657 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2658 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2659 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2660 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2661 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2662 ::llvm::LogicalResult verifyInvariantsImpl();
2663 ::llvm::LogicalResult verifyInvariants();
2664 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2665 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);
2666 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2667 void print(::mlir::OpAsmPrinter &_odsPrinter);
2668 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2669public:
2670 static ::llvm::LogicalResult
2671 inferReturnTypes(::mlir::MLIRContext *context,
2672 std::optional<::mlir::Location> location,
2673 Adaptor adaptor,
2674 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
2675
2676 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
2677
2678
2679 private:
2680 static ::mlir::ParseResult parseInferredOrParsedType(
2681 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
2682 ) {
2683 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
2684 // If there is a comma, parse the `opType`
2685 mlir::Type type;
2686 if (parser.parseCustomTypeWithFallback(type)) {
2687 return mlir::failure();
2688 }
2689 opType = type;
2690 } else {
2691 // Otherwise, build the default type
2692 opType =
2693 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
2694 }
2695 return mlir::success();
2696 }
2697
2698 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
2699 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
2700 ) {
2701 printer << (isFirst ? " : " : ", ");
2702 printer.printStrippedAttrOrType(opType);
2703 }
2704};
2705} // namespace felt
2706} // namespace llzk
2707MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::SignedModFeltOp)
2708
2709namespace llzk {
2710namespace felt {
2711
2712//===----------------------------------------------------------------------===//
2713// ::llzk::felt::SubFeltOp declarations
2714//===----------------------------------------------------------------------===//
2715
2716namespace detail {
2718public:
2719protected:
2720 ::mlir::DictionaryAttr odsAttrs;
2721 ::std::optional<::mlir::OperationName> odsOpName;
2722 ::mlir::RegionRange odsRegions;
2723public:
2724 SubFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2725 odsOpName.emplace("felt.sub", odsAttrs.getContext());
2726 }
2727
2728 SubFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2729
2730 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2731 return {index, 1};
2732 }
2733
2734 ::mlir::DictionaryAttr getAttributes() {
2735 return odsAttrs;
2736 }
2737
2738};
2739} // namespace detail
2740template <typename RangeT>
2742 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2744public:
2745 SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2746
2747 SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SubFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2748
2749 SubFeltOpGenericAdaptor(RangeT values, const SubFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2750
2751 template <typename LateInst = SubFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, SubFeltOp>>>
2752 SubFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2753
2754 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2755 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2756 }
2757
2758 RangeT getODSOperands(unsigned index) {
2759 auto valueRange = getODSOperandIndexAndLength(index);
2760 return {std::next(odsOperands.begin(), valueRange.first),
2761 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2762 }
2763
2764 ValueT getLhs() {
2765 return (*getODSOperands(0).begin());
2766 }
2767
2768 ValueT getRhs() {
2769 return (*getODSOperands(1).begin());
2770 }
2771
2772 RangeT getOperands() {
2773 return odsOperands;
2774 }
2775
2776private:
2777 RangeT odsOperands;
2778};
2779class SubFeltOpAdaptor : public SubFeltOpGenericAdaptor<::mlir::ValueRange> {
2780public:
2783
2784 ::llvm::LogicalResult verify(::mlir::Location loc);
2785};
2786class 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> {
2787public:
2788 using Op::Op;
2789 using Op::print;
2791 template <typename RangeT>
2794 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2795 return {};
2796 }
2797
2798 static constexpr ::llvm::StringLiteral getOperationName() {
2799 return ::llvm::StringLiteral("felt.sub");
2800 }
2801
2802 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2803 return {index, 1};
2804 }
2805
2806 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2807 auto valueRange = getODSOperandIndexAndLength(index);
2808 return {std::next(getOperation()->operand_begin(), valueRange.first),
2809 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2810 }
2811
2812 ::mlir::TypedValue<::mlir::Type> getLhs() {
2813 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2814 }
2815
2816 ::mlir::TypedValue<::mlir::Type> getRhs() {
2817 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
2818 }
2819
2820 ::mlir::OpOperand &getLhsMutable() {
2821 auto range = getODSOperandIndexAndLength(0);
2822 return getOperation()->getOpOperand(range.first);
2823 }
2824
2825 ::mlir::OpOperand &getRhsMutable() {
2826 auto range = getODSOperandIndexAndLength(1);
2827 return getOperation()->getOpOperand(range.first);
2828 }
2829
2830 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2831 return {index, 1};
2832 }
2833
2834 ::mlir::Operation::result_range getODSResults(unsigned index) {
2835 auto valueRange = getODSResultIndexAndLength(index);
2836 return {std::next(getOperation()->result_begin(), valueRange.first),
2837 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2838 }
2839
2840 ::mlir::TypedValue<::mlir::Type> getResult() {
2841 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
2842 }
2843
2844 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2845 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2846 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2847 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2848 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2849 ::llvm::LogicalResult verifyInvariantsImpl();
2850 ::llvm::LogicalResult verifyInvariants();
2851 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2852 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);
2853 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2854 void print(::mlir::OpAsmPrinter &_odsPrinter);
2855 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2856public:
2857 static ::llvm::LogicalResult
2858 inferReturnTypes(::mlir::MLIRContext *context,
2859 std::optional<::mlir::Location> location,
2860 Adaptor adaptor,
2861 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
2862
2863 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
2864
2865
2866 private:
2867 static ::mlir::ParseResult parseInferredOrParsedType(
2868 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
2869 ) {
2870 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
2871 // If there is a comma, parse the `opType`
2872 mlir::Type type;
2873 if (parser.parseCustomTypeWithFallback(type)) {
2874 return mlir::failure();
2875 }
2876 opType = type;
2877 } else {
2878 // Otherwise, build the default type
2879 opType =
2880 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
2881 }
2882 return mlir::success();
2883 }
2884
2885 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
2886 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
2887 ) {
2888 printer << (isFirst ? " : " : ", ");
2889 printer.printStrippedAttrOrType(opType);
2890 }
2891};
2892} // namespace felt
2893} // namespace llzk
2894MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::SubFeltOp)
2895
2896namespace llzk {
2897namespace felt {
2898
2899//===----------------------------------------------------------------------===//
2900// ::llzk::felt::UnsignedIntDivFeltOp declarations
2901//===----------------------------------------------------------------------===//
2902
2903namespace detail {
2905public:
2906protected:
2907 ::mlir::DictionaryAttr odsAttrs;
2908 ::std::optional<::mlir::OperationName> odsOpName;
2909 ::mlir::RegionRange odsRegions;
2910public:
2911 UnsignedIntDivFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2912 odsOpName.emplace("felt.uintdiv", odsAttrs.getContext());
2913 }
2914
2915 UnsignedIntDivFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2916
2917 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2918 return {index, 1};
2919 }
2920
2921 ::mlir::DictionaryAttr getAttributes() {
2922 return odsAttrs;
2923 }
2924
2925};
2926} // namespace detail
2927template <typename RangeT>
2929 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2931public:
2932 UnsignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2933
2934 UnsignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : UnsignedIntDivFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2935
2936 UnsignedIntDivFeltOpGenericAdaptor(RangeT values, const UnsignedIntDivFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2937
2938 template <typename LateInst = UnsignedIntDivFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, UnsignedIntDivFeltOp>>>
2939 UnsignedIntDivFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2940
2941 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2942 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2943 }
2944
2945 RangeT getODSOperands(unsigned index) {
2946 auto valueRange = getODSOperandIndexAndLength(index);
2947 return {std::next(odsOperands.begin(), valueRange.first),
2948 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2949 }
2950
2951 ValueT getLhs() {
2952 return (*getODSOperands(0).begin());
2953 }
2954
2955 ValueT getRhs() {
2956 return (*getODSOperands(1).begin());
2957 }
2958
2959 RangeT getOperands() {
2960 return odsOperands;
2961 }
2962
2963private:
2964 RangeT odsOperands;
2965};
2967public:
2970
2971 ::llvm::LogicalResult verify(::mlir::Location loc);
2972};
2973class 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> {
2974public:
2975 using Op::Op;
2976 using Op::print;
2978 template <typename RangeT>
2981 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2982 return {};
2983 }
2984
2985 static constexpr ::llvm::StringLiteral getOperationName() {
2986 return ::llvm::StringLiteral("felt.uintdiv");
2987 }
2988
2989 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2990 return {index, 1};
2991 }
2992
2993 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2994 auto valueRange = getODSOperandIndexAndLength(index);
2995 return {std::next(getOperation()->operand_begin(), valueRange.first),
2996 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2997 }
2998
2999 ::mlir::TypedValue<::mlir::Type> getLhs() {
3000 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
3001 }
3002
3003 ::mlir::TypedValue<::mlir::Type> getRhs() {
3004 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
3005 }
3006
3007 ::mlir::OpOperand &getLhsMutable() {
3008 auto range = getODSOperandIndexAndLength(0);
3009 return getOperation()->getOpOperand(range.first);
3010 }
3011
3012 ::mlir::OpOperand &getRhsMutable() {
3013 auto range = getODSOperandIndexAndLength(1);
3014 return getOperation()->getOpOperand(range.first);
3015 }
3016
3017 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3018 return {index, 1};
3019 }
3020
3021 ::mlir::Operation::result_range getODSResults(unsigned index) {
3022 auto valueRange = getODSResultIndexAndLength(index);
3023 return {std::next(getOperation()->result_begin(), valueRange.first),
3024 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3025 }
3026
3027 ::mlir::TypedValue<::mlir::Type> getResult() {
3028 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
3029 }
3030
3031 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3032 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3033 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3034 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3035 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3036 ::llvm::LogicalResult verifyInvariantsImpl();
3037 ::llvm::LogicalResult verifyInvariants();
3038 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
3039 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);
3040 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3041 void print(::mlir::OpAsmPrinter &_odsPrinter);
3042 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3043public:
3044 static ::llvm::LogicalResult
3045 inferReturnTypes(::mlir::MLIRContext *context,
3046 std::optional<::mlir::Location> location,
3047 Adaptor adaptor,
3048 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
3049
3050 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
3051
3052
3053 private:
3054 static ::mlir::ParseResult parseInferredOrParsedType(
3055 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
3056 ) {
3057 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
3058 // If there is a comma, parse the `opType`
3059 mlir::Type type;
3060 if (parser.parseCustomTypeWithFallback(type)) {
3061 return mlir::failure();
3062 }
3063 opType = type;
3064 } else {
3065 // Otherwise, build the default type
3066 opType =
3067 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
3068 }
3069 return mlir::success();
3070 }
3071
3072 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
3073 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
3074 ) {
3075 printer << (isFirst ? " : " : ", ");
3076 printer.printStrippedAttrOrType(opType);
3077 }
3078};
3079} // namespace felt
3080} // namespace llzk
3081MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::UnsignedIntDivFeltOp)
3082
3083namespace llzk {
3084namespace felt {
3085
3086//===----------------------------------------------------------------------===//
3087// ::llzk::felt::UnsignedModFeltOp declarations
3088//===----------------------------------------------------------------------===//
3089
3090namespace detail {
3092public:
3093protected:
3094 ::mlir::DictionaryAttr odsAttrs;
3095 ::std::optional<::mlir::OperationName> odsOpName;
3096 ::mlir::RegionRange odsRegions;
3097public:
3098 UnsignedModFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3099 odsOpName.emplace("felt.umod", odsAttrs.getContext());
3100 }
3101
3102 UnsignedModFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3103
3104 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3105 return {index, 1};
3106 }
3107
3108 ::mlir::DictionaryAttr getAttributes() {
3109 return odsAttrs;
3110 }
3111
3112};
3113} // namespace detail
3114template <typename RangeT>
3116 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3118public:
3119 UnsignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3120
3121 UnsignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : UnsignedModFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3122
3123 UnsignedModFeltOpGenericAdaptor(RangeT values, const UnsignedModFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3124
3125 template <typename LateInst = UnsignedModFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, UnsignedModFeltOp>>>
3126 UnsignedModFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3127
3128 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3129 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3130 }
3131
3132 RangeT getODSOperands(unsigned index) {
3133 auto valueRange = getODSOperandIndexAndLength(index);
3134 return {std::next(odsOperands.begin(), valueRange.first),
3135 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3136 }
3137
3138 ValueT getLhs() {
3139 return (*getODSOperands(0).begin());
3140 }
3141
3142 ValueT getRhs() {
3143 return (*getODSOperands(1).begin());
3144 }
3145
3146 RangeT getOperands() {
3147 return odsOperands;
3148 }
3149
3150private:
3151 RangeT odsOperands;
3152};
3154public:
3157
3158 ::llvm::LogicalResult verify(::mlir::Location loc);
3159};
3160class 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> {
3161public:
3162 using Op::Op;
3163 using Op::print;
3165 template <typename RangeT>
3168 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3169 return {};
3170 }
3171
3172 static constexpr ::llvm::StringLiteral getOperationName() {
3173 return ::llvm::StringLiteral("felt.umod");
3174 }
3175
3176 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3177 return {index, 1};
3178 }
3179
3180 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3181 auto valueRange = getODSOperandIndexAndLength(index);
3182 return {std::next(getOperation()->operand_begin(), valueRange.first),
3183 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3184 }
3185
3186 ::mlir::TypedValue<::mlir::Type> getLhs() {
3187 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
3188 }
3189
3190 ::mlir::TypedValue<::mlir::Type> getRhs() {
3191 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
3192 }
3193
3194 ::mlir::OpOperand &getLhsMutable() {
3195 auto range = getODSOperandIndexAndLength(0);
3196 return getOperation()->getOpOperand(range.first);
3197 }
3198
3199 ::mlir::OpOperand &getRhsMutable() {
3200 auto range = getODSOperandIndexAndLength(1);
3201 return getOperation()->getOpOperand(range.first);
3202 }
3203
3204 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3205 return {index, 1};
3206 }
3207
3208 ::mlir::Operation::result_range getODSResults(unsigned index) {
3209 auto valueRange = getODSResultIndexAndLength(index);
3210 return {std::next(getOperation()->result_begin(), valueRange.first),
3211 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3212 }
3213
3214 ::mlir::TypedValue<::mlir::Type> getResult() {
3215 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
3216 }
3217
3218 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3219 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3220 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3221 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3222 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3223 ::llvm::LogicalResult verifyInvariantsImpl();
3224 ::llvm::LogicalResult verifyInvariants();
3225 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
3226 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);
3227 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3228 void print(::mlir::OpAsmPrinter &_odsPrinter);
3229 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3230public:
3231 static ::llvm::LogicalResult
3232 inferReturnTypes(::mlir::MLIRContext *context,
3233 std::optional<::mlir::Location> location,
3234 Adaptor adaptor,
3235 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
3236
3237 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
3238
3239
3240 private:
3241 static ::mlir::ParseResult parseInferredOrParsedType(
3242 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
3243 ) {
3244 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
3245 // If there is a comma, parse the `opType`
3246 mlir::Type type;
3247 if (parser.parseCustomTypeWithFallback(type)) {
3248 return mlir::failure();
3249 }
3250 opType = type;
3251 } else {
3252 // Otherwise, build the default type
3253 opType =
3254 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
3255 }
3256 return mlir::success();
3257 }
3258
3259 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
3260 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
3261 ) {
3262 printer << (isFirst ? " : " : ", ");
3263 printer.printStrippedAttrOrType(opType);
3264 }
3265};
3266} // namespace felt
3267} // namespace llzk
3268MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::UnsignedModFeltOp)
3269
3270namespace llzk {
3271namespace felt {
3272
3273//===----------------------------------------------------------------------===//
3274// ::llzk::felt::XorFeltOp declarations
3275//===----------------------------------------------------------------------===//
3276
3277namespace detail {
3279public:
3280protected:
3281 ::mlir::DictionaryAttr odsAttrs;
3282 ::std::optional<::mlir::OperationName> odsOpName;
3283 ::mlir::RegionRange odsRegions;
3284public:
3285 XorFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3286 odsOpName.emplace("felt.bit_xor", odsAttrs.getContext());
3287 }
3288
3289 XorFeltOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3290
3291 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3292 return {index, 1};
3293 }
3294
3295 ::mlir::DictionaryAttr getAttributes() {
3296 return odsAttrs;
3297 }
3298
3299};
3300} // namespace detail
3301template <typename RangeT>
3303 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3305public:
3306 XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3307
3308 XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : XorFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3309
3310 XorFeltOpGenericAdaptor(RangeT values, const XorFeltOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3311
3312 template <typename LateInst = XorFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, XorFeltOp>>>
3313 XorFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3314
3315 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3316 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3317 }
3318
3319 RangeT getODSOperands(unsigned index) {
3320 auto valueRange = getODSOperandIndexAndLength(index);
3321 return {std::next(odsOperands.begin(), valueRange.first),
3322 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3323 }
3324
3325 ValueT getLhs() {
3326 return (*getODSOperands(0).begin());
3327 }
3328
3329 ValueT getRhs() {
3330 return (*getODSOperands(1).begin());
3331 }
3332
3333 RangeT getOperands() {
3334 return odsOperands;
3335 }
3336
3337private:
3338 RangeT odsOperands;
3339};
3340class XorFeltOpAdaptor : public XorFeltOpGenericAdaptor<::mlir::ValueRange> {
3341public:
3344
3345 ::llvm::LogicalResult verify(::mlir::Location loc);
3346};
3347class 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> {
3348public:
3349 using Op::Op;
3350 using Op::print;
3352 template <typename RangeT>
3355 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3356 return {};
3357 }
3358
3359 static constexpr ::llvm::StringLiteral getOperationName() {
3360 return ::llvm::StringLiteral("felt.bit_xor");
3361 }
3362
3363 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3364 return {index, 1};
3365 }
3366
3367 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3368 auto valueRange = getODSOperandIndexAndLength(index);
3369 return {std::next(getOperation()->operand_begin(), valueRange.first),
3370 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3371 }
3372
3373 ::mlir::TypedValue<::mlir::Type> getLhs() {
3374 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
3375 }
3376
3377 ::mlir::TypedValue<::mlir::Type> getRhs() {
3378 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
3379 }
3380
3381 ::mlir::OpOperand &getLhsMutable() {
3382 auto range = getODSOperandIndexAndLength(0);
3383 return getOperation()->getOpOperand(range.first);
3384 }
3385
3386 ::mlir::OpOperand &getRhsMutable() {
3387 auto range = getODSOperandIndexAndLength(1);
3388 return getOperation()->getOpOperand(range.first);
3389 }
3390
3391 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3392 return {index, 1};
3393 }
3394
3395 ::mlir::Operation::result_range getODSResults(unsigned index) {
3396 auto valueRange = getODSResultIndexAndLength(index);
3397 return {std::next(getOperation()->result_begin(), valueRange.first),
3398 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3399 }
3400
3401 ::mlir::TypedValue<::mlir::Type> getResult() {
3402 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
3403 }
3404
3405 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3406 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3407 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3408 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3409 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3410 ::llvm::LogicalResult verifyInvariantsImpl();
3411 ::llvm::LogicalResult verifyInvariants();
3412 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
3413 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);
3414 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3415 void print(::mlir::OpAsmPrinter &_odsPrinter);
3416 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3417public:
3418 static ::llvm::LogicalResult
3419 inferReturnTypes(::mlir::MLIRContext *context,
3420 std::optional<::mlir::Location> location,
3421 Adaptor adaptor,
3422 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
3423
3424 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
3425
3426
3427 private:
3428 static ::mlir::ParseResult parseInferredOrParsedType(
3429 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
3430 ) {
3431 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
3432 // If there is a comma, parse the `opType`
3433 mlir::Type type;
3434 if (parser.parseCustomTypeWithFallback(type)) {
3435 return mlir::failure();
3436 }
3437 opType = type;
3438 } else {
3439 // Otherwise, build the default type
3440 opType =
3441 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
3442 }
3443 return mlir::success();
3444 }
3445
3446 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
3447 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
3448 ) {
3449 printer << (isFirst ? " : " : ", ");
3450 printer.printStrippedAttrOrType(opType);
3451 }
3452};
3453} // namespace felt
3454} // namespace llzk
3455MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::XorFeltOp)
3456
3457
3458#endif // GET_OP_CLASSES
3459
::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
auto tryGetZExtValue() -> std::optional< uint64_t >
Definition Ops.h.inc:872
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)
auto getValueAPInt() -> ::llvm::APInt
Definition Ops.h.inc:870
::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:914
::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:914
InvFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:921
InvFeltOpGenericAdaptor(RangeT values, const InvFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:918
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:927
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:923
InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:916
InvFeltOpAdaptor Adaptor
Definition Ops.h.inc:955
::mlir::TypedValue<::mlir::Type > getOperand()
Definition Ops.h.inc:977
::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:990
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:996
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:967
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:963
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:312
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:986
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:958
InvFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:957
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:971
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:959
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:981
::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:1088
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1127
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1097
MulFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1095
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1101
MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1088
MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1090
MulFeltOpGenericAdaptor(RangeT values, const MulFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:1092
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:1155
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1136
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1145
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1186
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1159
MulFeltOpAdaptor Adaptor
Definition Ops.h.inc:1133
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:1163
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1137
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1141
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:1168
MulFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1135
::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:1177
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1220
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:1183
::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:1149
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1173
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1275
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1329
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1284
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1275
NegFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1282
NegFeltOpGenericAdaptor(RangeT values, const NegFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:1279
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1277
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1288
::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:1320
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:1328
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1409
::mlir::TypedValue<::mlir::Type > getOperand()
Definition Ops.h.inc:1338
::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:1342
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:1347
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1351
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, std::optional<::mlir::Location > location, Adaptor adaptor, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
NegFeltOpAdaptor Adaptor
Definition Ops.h.inc:1316
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1446
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:1357
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:302
NegFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1318
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1319
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1332
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1324
::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:1449
NotFeltOpGenericAdaptor(RangeT values, const NotFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:1453
NotFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1456
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1458
NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1451
NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1449
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1462
::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:1490
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1502
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:1531
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1553
NotFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1492
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1494
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1525
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1506
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:1512
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1577
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1498
::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:1493
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1521
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1614
::mlir::OpOperand & getOperandMutable()
Definition Ops.h.inc:1516
::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:1623
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1665
OrFeltOpGenericAdaptor(RangeT values, const OrFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:1627
OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1625
OrFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1630
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1632
OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1623
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1636
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:1698
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1708
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1762
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1671
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1712
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:1670
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1812
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1676
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1680
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1684
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:1718
::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:1668
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1672
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:253
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1694
::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:1703
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1690
::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:1810
PowFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1810
PowFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1817
PowFeltOpGenericAdaptor(RangeT values, const PowFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:1814
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1823
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1819
PowFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1812
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1895
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1863
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1877
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1871
PowFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1857
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:1899
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:171
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1858
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2014
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1881
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:1885
static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r)
Definition Ops.cpp.inc:2051
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1859
::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:1905
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:1855
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1960
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:1890
::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:1867
::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:1997
ShlFeltOpGenericAdaptor(RangeT values, const ShlFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:2001
ShlFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2004
ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1999
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2006
ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1997
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2010
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2046
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:2050
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:2045
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2064
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2054
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:2072
static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r)
Definition Ops.cpp.inc:2253
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2068
::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:2042
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:2092
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2216
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2082
::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:2058
ShlFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2044
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:273
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2086
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2162
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:2077
ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2184
::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:2186
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2193
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2197
ShrFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2191
ShrFeltOpGenericAdaptor(RangeT values, const ShrFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:2188
ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2184
::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:2245
::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:2255
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:2232
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:2264
ShrFeltOpAdaptor Adaptor
Definition Ops.h.inc:2229
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2273
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2330
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2241
::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:2237
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:2231
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:2279
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2251
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2269
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:2259
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2233
::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:2371
SignedIntDivFeltOpAdaptor(SignedIntDivFeltOp op)
Definition Ops.cpp.inc:2471
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2380
SignedIntDivFeltOpGenericAdaptor(RangeT values, const SignedIntDivFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:2375
SignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2373
SignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2371
SignedIntDivFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2378
::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:2424
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:2451
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2570
SignedIntDivFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2418
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:2432
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2460
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2442
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2438
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2566
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2420
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2428
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:203
SignedIntDivFeltOpAdaptor Adaptor
Definition Ops.h.inc:2416
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:2446
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2456
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2419
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:2466
::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:2558
SignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2560
SignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2558
SignedModFeltOpGenericAdaptor(RangeT values, const SignedModFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:2562
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2571
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2567
SignedModFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2565
SignedModFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2605
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2615
::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:2633
SignedModFeltOpAdaptor Adaptor
Definition Ops.h.inc:2603
::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:2643
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:2629
::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:2607
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:2611
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2625
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2606
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2647
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:2638
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2619
::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:2653
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2745
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2877
SubFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2752
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2745
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2754
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2758
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2747
SubFeltOpGenericAdaptor(RangeT values, const SubFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:2749
::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:2834
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:2816
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2793
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2794
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:2798
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:2825
SubFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2792
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2830
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:2820
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:2812
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:2840
SubFeltOpAdaptor Adaptor
Definition Ops.h.inc:2790
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2802
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2806
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:2932
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:3079
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2941
UnsignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2934
UnsignedIntDivFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2939
UnsignedIntDivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2932
UnsignedIntDivFeltOpGenericAdaptor(RangeT values, const UnsignedIntDivFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:2936
UnsignedIntDivFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2979
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3226
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:3003
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3017
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:3012
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2985
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:3176
UnsignedIntDivFeltOpAdaptor Adaptor
Definition Ops.h.inc:2977
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:3007
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2981
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2989
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2980
::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:3027
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:2999
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3021
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3172
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2993
UnsignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3119
::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:3119
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3128
UnsignedModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3121
UnsignedModFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3126
UnsignedModFeltOpGenericAdaptor(RangeT values, const UnsignedModFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:3123
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:3176
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:3190
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3180
UnsignedModFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3166
::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:3199
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:3208
UnsignedModFeltOpAdaptor Adaptor
Definition Ops.h.inc:3164
::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:3167
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:3186
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3204
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3428
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:3214
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:3194
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:3168
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3172
::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:3306
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:3319
XorFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3313
XorFeltOpGenericAdaptor(RangeT values, const XorFeltOpGenericAdaptorBase &base)
Definition Ops.h.inc:3310
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3315
XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3308
XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3306
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:3355
XorFeltOpAdaptor Adaptor
Definition Ops.h.inc:3351
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3359
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:3386
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3395
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3542
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:3354
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3363
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:263
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3391
::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:3373
::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:3367
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:3381
XorFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3353
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3630
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:3401
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:3377
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:893
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:890
InvFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:897
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:899
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1073
MulFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1067
MulFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:1071
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1064
NegFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1254
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1251
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1260
NegFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:1258
NotFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1428
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1434
NotFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:1432
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1425
OrFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:1606
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1608
OrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1602
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1599
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1795
PowFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:1793
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1786
PowFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1789
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1973
ShlFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:1980
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1982
ShlFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1976
ShrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2163
ShrFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:2167
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2160
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2169
SignedIntDivFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2350
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2347
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2356
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2534
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2543
SignedModFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2537
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2730
SubFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2724
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2721
SubFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:2728
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2908
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2917
UnsignedIntDivFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2911
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3104
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3095
UnsignedModFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3098
XorFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3285
XorFeltOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:3289
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3282
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3291
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
Definition OpHelpers.h:32
void setValue(const ::llzk::felt::FeltConstAttr &propValue)
Definition Ops.h.inc:682