LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
Ops.h.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Op Declarations *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Ops.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10#if defined(GET_OP_CLASSES) || defined(GET_OP_FWD_DEFINES)
11#undef GET_OP_FWD_DEFINES
12namespace llzk {
13namespace felt {
14class AddFeltOp;
15} // namespace felt
16} // namespace llzk
17namespace llzk {
18namespace felt {
19class AndFeltOp;
20} // namespace felt
21} // namespace llzk
22namespace llzk {
23namespace felt {
24class DivFeltOp;
25} // namespace felt
26} // namespace llzk
27namespace llzk {
28namespace felt {
29class FeltConstantOp;
30} // namespace felt
31} // namespace llzk
32namespace llzk {
33namespace felt {
34class FeltNonDetOp;
35} // namespace felt
36} // namespace llzk
37namespace llzk {
38namespace felt {
39class InvFeltOp;
40} // namespace felt
41} // namespace llzk
42namespace llzk {
43namespace felt {
44class ModFeltOp;
45} // namespace felt
46} // namespace llzk
47namespace llzk {
48namespace felt {
49class MulFeltOp;
50} // namespace felt
51} // namespace llzk
52namespace llzk {
53namespace felt {
54class NegFeltOp;
55} // namespace felt
56} // namespace llzk
57namespace llzk {
58namespace felt {
59class NotFeltOp;
60} // namespace felt
61} // namespace llzk
62namespace llzk {
63namespace felt {
64class OrFeltOp;
65} // namespace felt
66} // namespace llzk
67namespace llzk {
68namespace felt {
69class ShlFeltOp;
70} // namespace felt
71} // namespace llzk
72namespace llzk {
73namespace felt {
74class ShrFeltOp;
75} // namespace felt
76} // namespace llzk
77namespace llzk {
78namespace felt {
79class SubFeltOp;
80} // namespace felt
81} // namespace llzk
82namespace llzk {
83namespace felt {
84class XorFeltOp;
85} // namespace felt
86} // namespace llzk
87#endif
88
89#ifdef GET_OP_CLASSES
90#undef GET_OP_CLASSES
91
92
93//===----------------------------------------------------------------------===//
94// Local Utility Method Definitions
95//===----------------------------------------------------------------------===//
96
97namespace llzk {
98namespace felt {
99
100//===----------------------------------------------------------------------===//
101// ::llzk::felt::AddFeltOp declarations
102//===----------------------------------------------------------------------===//
103
104namespace detail {
106public:
107protected:
108 ::mlir::DictionaryAttr odsAttrs;
109 ::std::optional<::mlir::OperationName> odsOpName;
110 ::mlir::RegionRange odsRegions;
111public:
112 AddFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
113
115
116 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
117 ::mlir::DictionaryAttr getAttributes();
118};
119} // namespace detail
120template <typename RangeT>
122 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
124public:
125 AddFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
126
127 AddFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AddFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
128
129 template <typename LateInst = AddFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, AddFeltOp>>>
130 AddFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
131
132 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
133 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
134 }
135
136 RangeT getODSOperands(unsigned index) {
137 auto valueRange = getODSOperandIndexAndLength(index);
138 return {std::next(odsOperands.begin(), valueRange.first),
139 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
140 }
141
142 ValueT getLhs() {
143 return (*getODSOperands(0).begin());
144 }
145
146 ValueT getRhs() {
147 return (*getODSOperands(1).begin());
148 }
149
150 RangeT getOperands() {
151 return odsOperands;
152 }
153
154private:
155 RangeT odsOperands;
156};
157class AddFeltOpAdaptor : public AddFeltOpGenericAdaptor<::mlir::ValueRange> {
158public:
161
162 ::mlir::LogicalResult verify(::mlir::Location loc);
163};
164class AddFeltOp : public ::mlir::Op<AddFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
165public:
166 using Op::Op;
167 using Op::print;
169 template <typename RangeT>
172 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
173 return {};
174 }
175
176 static constexpr ::llvm::StringLiteral getOperationName() {
177 return ::llvm::StringLiteral("felt.add");
178 }
179
180 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
181 ::mlir::Operation::operand_range getODSOperands(unsigned index);
182 ::mlir::Value getLhs();
183 ::mlir::Value getRhs();
184 ::mlir::OpOperand &getLhsMutable();
185 ::mlir::OpOperand &getRhsMutable();
186 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
187 ::mlir::Operation::result_range getODSResults(unsigned index);
188 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
189 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
190 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
191 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
192 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
193 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
194 ::mlir::LogicalResult verifyInvariantsImpl();
195 ::mlir::LogicalResult verifyInvariants();
196 static ::mlir::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);
197 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
198 void print(::mlir::OpAsmPrinter &_odsPrinter);
199 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
200public:
201 static ::mlir::ParseResult parseInferredOrParsedType(
202 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
203 ) {
204 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
205 // If there is a comma, parse the `opType`
206 mlir::Type type;
207 if (parser.parseCustomTypeWithFallback(type)) {
208 return mlir::failure();
209 }
210 opType = type;
211 } else {
212 // Otherwise, build the default type
213 opType =
214 parser.getBuilder().getType<::llzk::felt::FeltType>();
215 }
216 return mlir::success();
217 }
218
219 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
220 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
221 ) {
222 printer << (isFirst ? " : " : ", ");
223 printer.printStrippedAttrOrType(opType);
224 }
225};
226} // namespace felt
227} // namespace llzk
228MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::AddFeltOp)
229
230namespace llzk {
231namespace felt {
232
233//===----------------------------------------------------------------------===//
234// ::llzk::felt::AndFeltOp declarations
235//===----------------------------------------------------------------------===//
236
237namespace detail {
239public:
240protected:
241 ::mlir::DictionaryAttr odsAttrs;
242 ::std::optional<::mlir::OperationName> odsOpName;
243 ::mlir::RegionRange odsRegions;
244public:
245 AndFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
246
248
249 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
250 ::mlir::DictionaryAttr getAttributes();
251};
252} // namespace detail
253template <typename RangeT>
255 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
257public:
258 AndFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
259
260 AndFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AndFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
261
262 template <typename LateInst = AndFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, AndFeltOp>>>
263 AndFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
264
265 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
266 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
267 }
268
269 RangeT getODSOperands(unsigned index) {
270 auto valueRange = getODSOperandIndexAndLength(index);
271 return {std::next(odsOperands.begin(), valueRange.first),
272 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
273 }
274
275 ValueT getLhs() {
276 return (*getODSOperands(0).begin());
277 }
278
279 ValueT getRhs() {
280 return (*getODSOperands(1).begin());
281 }
282
283 RangeT getOperands() {
284 return odsOperands;
285 }
286
287private:
288 RangeT odsOperands;
289};
290class AndFeltOpAdaptor : public AndFeltOpGenericAdaptor<::mlir::ValueRange> {
291public:
294
295 ::mlir::LogicalResult verify(::mlir::Location loc);
296};
297class AndFeltOp : public ::mlir::Op<AndFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
298public:
299 using Op::Op;
300 using Op::print;
302 template <typename RangeT>
305 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
306 return {};
307 }
308
309 static constexpr ::llvm::StringLiteral getOperationName() {
310 return ::llvm::StringLiteral("felt.bit_and");
311 }
312
313 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
314 ::mlir::Operation::operand_range getODSOperands(unsigned index);
315 ::mlir::Value getLhs();
316 ::mlir::Value getRhs();
317 ::mlir::OpOperand &getLhsMutable();
318 ::mlir::OpOperand &getRhsMutable();
319 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
320 ::mlir::Operation::result_range getODSResults(unsigned index);
321 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
322 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
323 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
324 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
325 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
326 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
327 ::mlir::LogicalResult verifyInvariantsImpl();
328 ::mlir::LogicalResult verifyInvariants();
329 static ::mlir::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);
330 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
331 void print(::mlir::OpAsmPrinter &_odsPrinter);
332 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
333public:
334 static ::mlir::ParseResult parseInferredOrParsedType(
335 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
336 ) {
337 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
338 // If there is a comma, parse the `opType`
339 mlir::Type type;
340 if (parser.parseCustomTypeWithFallback(type)) {
341 return mlir::failure();
342 }
343 opType = type;
344 } else {
345 // Otherwise, build the default type
346 opType =
347 parser.getBuilder().getType<::llzk::felt::FeltType>();
348 }
349 return mlir::success();
350 }
351
352 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
353 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
354 ) {
355 printer << (isFirst ? " : " : ", ");
356 printer.printStrippedAttrOrType(opType);
357 }
358};
359} // namespace felt
360} // namespace llzk
361MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::AndFeltOp)
362
363namespace llzk {
364namespace felt {
365
366//===----------------------------------------------------------------------===//
367// ::llzk::felt::DivFeltOp declarations
368//===----------------------------------------------------------------------===//
369
370namespace detail {
372public:
373protected:
374 ::mlir::DictionaryAttr odsAttrs;
375 ::std::optional<::mlir::OperationName> odsOpName;
376 ::mlir::RegionRange odsRegions;
377public:
378 DivFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
379
381
382 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
383 ::mlir::DictionaryAttr getAttributes();
384};
385} // namespace detail
386template <typename RangeT>
388 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
390public:
391 DivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
392
393 DivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : DivFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
394
395 template <typename LateInst = DivFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, DivFeltOp>>>
396 DivFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
397
398 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
399 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
400 }
401
402 RangeT getODSOperands(unsigned index) {
403 auto valueRange = getODSOperandIndexAndLength(index);
404 return {std::next(odsOperands.begin(), valueRange.first),
405 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
406 }
407
408 ValueT getLhs() {
409 return (*getODSOperands(0).begin());
410 }
411
412 ValueT getRhs() {
413 return (*getODSOperands(1).begin());
414 }
415
416 RangeT getOperands() {
417 return odsOperands;
418 }
419
420private:
421 RangeT odsOperands;
422};
423class DivFeltOpAdaptor : public DivFeltOpGenericAdaptor<::mlir::ValueRange> {
424public:
427
428 ::mlir::LogicalResult verify(::mlir::Location loc);
429};
430class DivFeltOp : public ::mlir::Op<DivFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
431public:
432 using Op::Op;
433 using Op::print;
435 template <typename RangeT>
438 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
439 return {};
440 }
441
442 static constexpr ::llvm::StringLiteral getOperationName() {
443 return ::llvm::StringLiteral("felt.div");
444 }
445
446 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
447 ::mlir::Operation::operand_range getODSOperands(unsigned index);
448 ::mlir::Value getLhs();
449 ::mlir::Value getRhs();
450 ::mlir::OpOperand &getLhsMutable();
451 ::mlir::OpOperand &getRhsMutable();
452 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
453 ::mlir::Operation::result_range getODSResults(unsigned index);
454 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
455 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
456 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
457 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
458 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
459 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
460 ::mlir::LogicalResult verifyInvariantsImpl();
461 ::mlir::LogicalResult verifyInvariants();
462 static ::mlir::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);
463 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
464 void print(::mlir::OpAsmPrinter &_odsPrinter);
465 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
466public:
467 static ::mlir::ParseResult parseInferredOrParsedType(
468 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
469 ) {
470 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
471 // If there is a comma, parse the `opType`
472 mlir::Type type;
473 if (parser.parseCustomTypeWithFallback(type)) {
474 return mlir::failure();
475 }
476 opType = type;
477 } else {
478 // Otherwise, build the default type
479 opType =
480 parser.getBuilder().getType<::llzk::felt::FeltType>();
481 }
482 return mlir::success();
483 }
484
485 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
486 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
487 ) {
488 printer << (isFirst ? " : " : ", ");
489 printer.printStrippedAttrOrType(opType);
490 }
491};
492} // namespace felt
493} // namespace llzk
494MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::DivFeltOp)
495
496namespace llzk {
497namespace felt {
498
499//===----------------------------------------------------------------------===//
500// ::llzk::felt::FeltConstantOp declarations
501//===----------------------------------------------------------------------===//
502
503namespace detail {
505public:
506 struct Properties {
507 using valueTy = ::llzk::felt::FeltConstAttr;
509
510 auto getValue() {
511 auto &propStorage = this->value;
512 return ::llvm::cast<::llzk::felt::FeltConstAttr>(propStorage);
513 }
514 void setValue(const ::llzk::felt::FeltConstAttr &propValue) {
515 this->value = propValue;
516 }
517 bool operator==(const Properties &rhs) const {
518 return
519 rhs.value == this->value &&
520 true;
521 }
522 bool operator!=(const Properties &rhs) const {
523 return !(*this == rhs);
524 }
525 };
526protected:
527 ::mlir::DictionaryAttr odsAttrs;
528 ::std::optional<::mlir::OperationName> odsOpName;
530 ::mlir::RegionRange odsRegions;
531public:
532 FeltConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const Properties &properties = {}, ::mlir::RegionRange regions = {});
533
535
536 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
538 return properties;
539 }
540
541 ::mlir::DictionaryAttr getAttributes();
542 ::llzk::felt::FeltConstAttr getValueAttr();
543 ::llzk::felt::FeltConstAttr getValue();
544};
545} // namespace detail
546template <typename RangeT>
548 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
550public:
551 FeltConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const Properties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
552
553 FeltConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : FeltConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
554
555 template <typename LateInst = FeltConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, FeltConstantOp>>>
556 FeltConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
557
558 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
559 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
560 }
561
562 RangeT getODSOperands(unsigned index) {
563 auto valueRange = getODSOperandIndexAndLength(index);
564 return {std::next(odsOperands.begin(), valueRange.first),
565 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
566 }
567
568 RangeT getOperands() {
569 return odsOperands;
570 }
571
572private:
573 RangeT odsOperands;
574};
575class FeltConstantOpAdaptor : public FeltConstantOpGenericAdaptor<::mlir::ValueRange> {
576public:
579
580 ::mlir::LogicalResult verify(::mlir::Location loc);
581};
582class FeltConstantOp : public ::mlir::Op<FeltConstantOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::OpTrait::ConstantLike, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpAsmOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
583public:
584 using Op::Op;
585 using Op::print;
587 template <typename RangeT>
591 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
592 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
593 return ::llvm::ArrayRef(attrNames);
594 }
595
596 ::mlir::StringAttr getValueAttrName() {
597 return getAttributeNameForIndex(0);
598 }
599
600 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
601 return getAttributeNameForIndex(name, 0);
602 }
603
604 static constexpr ::llvm::StringLiteral getOperationName() {
605 return ::llvm::StringLiteral("felt.const");
606 }
607
608 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
609 ::mlir::Operation::operand_range getODSOperands(unsigned index);
610 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
611 ::mlir::Operation::result_range getODSResults(unsigned index);
612 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
613 static ::mlir::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
614 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
615 static llvm::hash_code computePropertiesHash(const Properties &prop);
616 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
617 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
618 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
619 static ::mlir::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
620 static ::mlir::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
621 void writeProperties(::mlir::DialectBytecodeWriter &writer);
622 ::llzk::felt::FeltConstAttr getValueAttr();
623 ::llzk::felt::FeltConstAttr getValue();
624 void setValueAttr(::llzk::felt::FeltConstAttr attr);
625 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::felt::FeltConstAttr value);
626 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::felt::FeltConstAttr value);
627 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::felt::FeltConstAttr value);
628 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
629 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
630 ::mlir::LogicalResult verifyInvariantsImpl();
631 ::mlir::LogicalResult verifyInvariants();
632 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
633 static ::mlir::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);
634 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
635 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
636 void print(::mlir::OpAsmPrinter &_odsPrinter);
637 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
638private:
639 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
640 return getAttributeNameForIndex((*this)->getName(), index);
641 }
642
643 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
644 assert(index < 1 && "invalid attribute index");
645 assert(name.getStringRef() == getOperationName() && "invalid operation name");
646 assert(name.isRegistered() && "Operation isn't registered, missing a "
647 "dependent dialect loading?");
648 return name.getAttributeNames()[index];
649 }
650
651public:
652};
653} // namespace felt
654} // namespace llzk
655MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::FeltConstantOp)
656
657namespace llzk {
658namespace felt {
659
660//===----------------------------------------------------------------------===//
661// ::llzk::felt::FeltNonDetOp declarations
662//===----------------------------------------------------------------------===//
663
664namespace detail {
666public:
667protected:
668 ::mlir::DictionaryAttr odsAttrs;
669 ::std::optional<::mlir::OperationName> odsOpName;
670 ::mlir::RegionRange odsRegions;
671public:
672 FeltNonDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
673
675
676 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
677 ::mlir::DictionaryAttr getAttributes();
678};
679} // namespace detail
680template <typename RangeT>
682 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
684public:
685 FeltNonDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
686
687 FeltNonDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : FeltNonDetOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
688
689 template <typename LateInst = FeltNonDetOp, typename = std::enable_if_t<std::is_same_v<LateInst, FeltNonDetOp>>>
690 FeltNonDetOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
691
692 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
693 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
694 }
695
696 RangeT getODSOperands(unsigned index) {
697 auto valueRange = getODSOperandIndexAndLength(index);
698 return {std::next(odsOperands.begin(), valueRange.first),
699 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
700 }
701
702 RangeT getOperands() {
703 return odsOperands;
704 }
705
706private:
707 RangeT odsOperands;
708};
709class FeltNonDetOpAdaptor : public FeltNonDetOpGenericAdaptor<::mlir::ValueRange> {
710public:
713
714 ::mlir::LogicalResult verify(::mlir::Location loc);
715};
716class FeltNonDetOp : public ::mlir::Op<FeltNonDetOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::ConstantLike, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpAsmOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
717public:
718 using Op::Op;
719 using Op::print;
721 template <typename RangeT>
724 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
725 return {};
726 }
727
728 static constexpr ::llvm::StringLiteral getOperationName() {
729 return ::llvm::StringLiteral("felt.nondet");
730 }
731
732 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
733 ::mlir::Operation::operand_range getODSOperands(unsigned index);
734 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
735 ::mlir::Operation::result_range getODSResults(unsigned index);
736 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
737 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result);
738 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
739 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
740 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
741 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
742 ::mlir::LogicalResult verifyInvariantsImpl();
743 ::mlir::LogicalResult verifyInvariants();
744 static ::mlir::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);
745 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
746 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
747 void print(::mlir::OpAsmPrinter &_odsPrinter);
748 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
749public:
750};
751} // namespace felt
752} // namespace llzk
753MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::FeltNonDetOp)
754
755namespace llzk {
756namespace felt {
757
758//===----------------------------------------------------------------------===//
759// ::llzk::felt::InvFeltOp declarations
760//===----------------------------------------------------------------------===//
761
762namespace detail {
764public:
765protected:
766 ::mlir::DictionaryAttr odsAttrs;
767 ::std::optional<::mlir::OperationName> odsOpName;
768 ::mlir::RegionRange odsRegions;
769public:
770 InvFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
771
773
774 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
775 ::mlir::DictionaryAttr getAttributes();
776};
777} // namespace detail
778template <typename RangeT>
780 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
782public:
783 InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
784
785 InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : InvFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
786
787 template <typename LateInst = InvFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, InvFeltOp>>>
788 InvFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
789
790 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
791 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
792 }
793
794 RangeT getODSOperands(unsigned index) {
795 auto valueRange = getODSOperandIndexAndLength(index);
796 return {std::next(odsOperands.begin(), valueRange.first),
797 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
798 }
799
800 ValueT getOperand() {
801 return (*getODSOperands(0).begin());
802 }
803
804 RangeT getOperands() {
805 return odsOperands;
806 }
807
808private:
809 RangeT odsOperands;
810};
811class InvFeltOpAdaptor : public InvFeltOpGenericAdaptor<::mlir::ValueRange> {
812public:
815
816 ::mlir::LogicalResult verify(::mlir::Location loc);
817};
818class InvFeltOp : public ::mlir::Op<InvFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
819public:
820 using Op::Op;
821 using Op::print;
823 template <typename RangeT>
826 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
827 return {};
828 }
829
830 static constexpr ::llvm::StringLiteral getOperationName() {
831 return ::llvm::StringLiteral("felt.inv");
832 }
833
834 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
835 ::mlir::Operation::operand_range getODSOperands(unsigned index);
836 ::mlir::Value getOperand();
837 ::mlir::OpOperand &getOperandMutable();
838 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
839 ::mlir::Operation::result_range getODSResults(unsigned index);
840 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
841 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand);
842 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand);
843 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand);
844 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
845 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
846 ::mlir::LogicalResult verifyInvariantsImpl();
847 ::mlir::LogicalResult verifyInvariants();
848 static ::mlir::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);
849 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
850 void print(::mlir::OpAsmPrinter &_odsPrinter);
851 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
852public:
853 static ::mlir::ParseResult parseInferredOrParsedType(
854 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
855 ) {
856 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
857 // If there is a comma, parse the `opType`
858 mlir::Type type;
859 if (parser.parseCustomTypeWithFallback(type)) {
860 return mlir::failure();
861 }
862 opType = type;
863 } else {
864 // Otherwise, build the default type
865 opType =
866 parser.getBuilder().getType<::llzk::felt::FeltType>();
867 }
868 return mlir::success();
869 }
870
871 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
872 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
873 ) {
874 printer << (isFirst ? " : " : ", ");
875 printer.printStrippedAttrOrType(opType);
876 }
877};
878} // namespace felt
879} // namespace llzk
880MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::InvFeltOp)
881
882namespace llzk {
883namespace felt {
884
885//===----------------------------------------------------------------------===//
886// ::llzk::felt::ModFeltOp declarations
887//===----------------------------------------------------------------------===//
888
889namespace detail {
891public:
892protected:
893 ::mlir::DictionaryAttr odsAttrs;
894 ::std::optional<::mlir::OperationName> odsOpName;
895 ::mlir::RegionRange odsRegions;
896public:
897 ModFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
898
900
901 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
902 ::mlir::DictionaryAttr getAttributes();
903};
904} // namespace detail
905template <typename RangeT>
907 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
909public:
910 ModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
911
912 ModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ModFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
913
914 template <typename LateInst = ModFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, ModFeltOp>>>
915 ModFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
916
917 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
918 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
919 }
920
921 RangeT getODSOperands(unsigned index) {
922 auto valueRange = getODSOperandIndexAndLength(index);
923 return {std::next(odsOperands.begin(), valueRange.first),
924 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
925 }
926
927 ValueT getLhs() {
928 return (*getODSOperands(0).begin());
929 }
930
931 ValueT getRhs() {
932 return (*getODSOperands(1).begin());
933 }
934
935 RangeT getOperands() {
936 return odsOperands;
937 }
938
939private:
940 RangeT odsOperands;
941};
942class ModFeltOpAdaptor : public ModFeltOpGenericAdaptor<::mlir::ValueRange> {
943public:
946
947 ::mlir::LogicalResult verify(::mlir::Location loc);
948};
949class ModFeltOp : public ::mlir::Op<ModFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
950public:
951 using Op::Op;
952 using Op::print;
954 template <typename RangeT>
957 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
958 return {};
959 }
960
961 static constexpr ::llvm::StringLiteral getOperationName() {
962 return ::llvm::StringLiteral("felt.mod");
963 }
964
965 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
966 ::mlir::Operation::operand_range getODSOperands(unsigned index);
967 ::mlir::Value getLhs();
968 ::mlir::Value getRhs();
969 ::mlir::OpOperand &getLhsMutable();
970 ::mlir::OpOperand &getRhsMutable();
971 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
972 ::mlir::Operation::result_range getODSResults(unsigned index);
973 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
974 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
975 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
976 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
977 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
978 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
979 ::mlir::LogicalResult verifyInvariantsImpl();
980 ::mlir::LogicalResult verifyInvariants();
981 static ::mlir::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);
982 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
983 void print(::mlir::OpAsmPrinter &_odsPrinter);
984 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
985public:
986 static ::mlir::ParseResult parseInferredOrParsedType(
987 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
988 ) {
989 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
990 // If there is a comma, parse the `opType`
991 mlir::Type type;
992 if (parser.parseCustomTypeWithFallback(type)) {
993 return mlir::failure();
994 }
995 opType = type;
996 } else {
997 // Otherwise, build the default type
998 opType =
999 parser.getBuilder().getType<::llzk::felt::FeltType>();
1000 }
1001 return mlir::success();
1002 }
1003
1004 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1005 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1006 ) {
1007 printer << (isFirst ? " : " : ", ");
1008 printer.printStrippedAttrOrType(opType);
1009 }
1010};
1011} // namespace felt
1012} // namespace llzk
1013MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::ModFeltOp)
1014
1015namespace llzk {
1016namespace felt {
1017
1018//===----------------------------------------------------------------------===//
1019// ::llzk::felt::MulFeltOp declarations
1020//===----------------------------------------------------------------------===//
1021
1022namespace detail {
1024public:
1025protected:
1026 ::mlir::DictionaryAttr odsAttrs;
1027 ::std::optional<::mlir::OperationName> odsOpName;
1028 ::mlir::RegionRange odsRegions;
1029public:
1030 MulFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1031
1033
1034 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1035 ::mlir::DictionaryAttr getAttributes();
1036};
1037} // namespace detail
1038template <typename RangeT>
1040 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1042public:
1043 MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1044
1045 MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : MulFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1046
1047 template <typename LateInst = MulFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, MulFeltOp>>>
1048 MulFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1049
1050 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1051 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1052 }
1053
1054 RangeT getODSOperands(unsigned index) {
1055 auto valueRange = getODSOperandIndexAndLength(index);
1056 return {std::next(odsOperands.begin(), valueRange.first),
1057 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1058 }
1059
1060 ValueT getLhs() {
1061 return (*getODSOperands(0).begin());
1062 }
1063
1064 ValueT getRhs() {
1065 return (*getODSOperands(1).begin());
1066 }
1067
1068 RangeT getOperands() {
1069 return odsOperands;
1070 }
1071
1072private:
1073 RangeT odsOperands;
1074};
1075class MulFeltOpAdaptor : public MulFeltOpGenericAdaptor<::mlir::ValueRange> {
1076public:
1079
1080 ::mlir::LogicalResult verify(::mlir::Location loc);
1081};
1082class MulFeltOp : public ::mlir::Op<MulFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1083public:
1084 using Op::Op;
1085 using Op::print;
1087 template <typename RangeT>
1090 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1091 return {};
1092 }
1093
1094 static constexpr ::llvm::StringLiteral getOperationName() {
1095 return ::llvm::StringLiteral("felt.mul");
1096 }
1097
1098 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1099 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1100 ::mlir::Value getLhs();
1101 ::mlir::Value getRhs();
1102 ::mlir::OpOperand &getLhsMutable();
1103 ::mlir::OpOperand &getRhsMutable();
1104 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1105 ::mlir::Operation::result_range getODSResults(unsigned index);
1106 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
1107 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1108 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1109 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1110 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1111 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1112 ::mlir::LogicalResult verifyInvariantsImpl();
1113 ::mlir::LogicalResult verifyInvariants();
1114 static ::mlir::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);
1115 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1116 void print(::mlir::OpAsmPrinter &_odsPrinter);
1117 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1118public:
1119 static ::mlir::ParseResult parseInferredOrParsedType(
1120 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1121 ) {
1122 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1123 // If there is a comma, parse the `opType`
1124 mlir::Type type;
1125 if (parser.parseCustomTypeWithFallback(type)) {
1126 return mlir::failure();
1127 }
1128 opType = type;
1129 } else {
1130 // Otherwise, build the default type
1131 opType =
1132 parser.getBuilder().getType<::llzk::felt::FeltType>();
1133 }
1134 return mlir::success();
1135 }
1136
1137 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1138 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1139 ) {
1140 printer << (isFirst ? " : " : ", ");
1141 printer.printStrippedAttrOrType(opType);
1142 }
1143};
1144} // namespace felt
1145} // namespace llzk
1146MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::MulFeltOp)
1147
1148namespace llzk {
1149namespace felt {
1150
1151//===----------------------------------------------------------------------===//
1152// ::llzk::felt::NegFeltOp declarations
1153//===----------------------------------------------------------------------===//
1154
1155namespace detail {
1157public:
1158protected:
1159 ::mlir::DictionaryAttr odsAttrs;
1160 ::std::optional<::mlir::OperationName> odsOpName;
1161 ::mlir::RegionRange odsRegions;
1162public:
1163 NegFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1164
1166
1167 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1168 ::mlir::DictionaryAttr getAttributes();
1169};
1170} // namespace detail
1171template <typename RangeT>
1173 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1175public:
1176 NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1177
1178 NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NegFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1179
1180 template <typename LateInst = NegFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, NegFeltOp>>>
1181 NegFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1182
1183 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1184 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1185 }
1186
1187 RangeT getODSOperands(unsigned index) {
1188 auto valueRange = getODSOperandIndexAndLength(index);
1189 return {std::next(odsOperands.begin(), valueRange.first),
1190 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1191 }
1192
1193 ValueT getOperand() {
1194 return (*getODSOperands(0).begin());
1195 }
1196
1197 RangeT getOperands() {
1198 return odsOperands;
1199 }
1200
1201private:
1202 RangeT odsOperands;
1203};
1204class NegFeltOpAdaptor : public NegFeltOpGenericAdaptor<::mlir::ValueRange> {
1205public:
1208
1209 ::mlir::LogicalResult verify(::mlir::Location loc);
1210};
1211class NegFeltOp : public ::mlir::Op<NegFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1212public:
1213 using Op::Op;
1214 using Op::print;
1216 template <typename RangeT>
1219 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1220 return {};
1221 }
1222
1223 static constexpr ::llvm::StringLiteral getOperationName() {
1224 return ::llvm::StringLiteral("felt.neg");
1225 }
1226
1227 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1228 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1229 ::mlir::Value getOperand();
1230 ::mlir::OpOperand &getOperandMutable();
1231 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1232 ::mlir::Operation::result_range getODSResults(unsigned index);
1233 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
1234 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand);
1235 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand);
1236 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand);
1237 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1238 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1239 ::mlir::LogicalResult verifyInvariantsImpl();
1240 ::mlir::LogicalResult verifyInvariants();
1241 static ::mlir::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);
1242 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1243 void print(::mlir::OpAsmPrinter &_odsPrinter);
1244 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1245public:
1246 static ::mlir::ParseResult parseInferredOrParsedType(
1247 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1248 ) {
1249 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1250 // If there is a comma, parse the `opType`
1251 mlir::Type type;
1252 if (parser.parseCustomTypeWithFallback(type)) {
1253 return mlir::failure();
1254 }
1255 opType = type;
1256 } else {
1257 // Otherwise, build the default type
1258 opType =
1259 parser.getBuilder().getType<::llzk::felt::FeltType>();
1260 }
1261 return mlir::success();
1262 }
1263
1264 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1265 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1266 ) {
1267 printer << (isFirst ? " : " : ", ");
1268 printer.printStrippedAttrOrType(opType);
1269 }
1270};
1271} // namespace felt
1272} // namespace llzk
1273MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::NegFeltOp)
1274
1275namespace llzk {
1276namespace felt {
1277
1278//===----------------------------------------------------------------------===//
1279// ::llzk::felt::NotFeltOp declarations
1280//===----------------------------------------------------------------------===//
1281
1282namespace detail {
1284public:
1285protected:
1286 ::mlir::DictionaryAttr odsAttrs;
1287 ::std::optional<::mlir::OperationName> odsOpName;
1288 ::mlir::RegionRange odsRegions;
1289public:
1290 NotFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1291
1293
1294 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1295 ::mlir::DictionaryAttr getAttributes();
1296};
1297} // namespace detail
1298template <typename RangeT>
1300 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1302public:
1303 NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1304
1305 NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NotFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1306
1307 template <typename LateInst = NotFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, NotFeltOp>>>
1308 NotFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1309
1310 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1311 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1312 }
1313
1314 RangeT getODSOperands(unsigned index) {
1315 auto valueRange = getODSOperandIndexAndLength(index);
1316 return {std::next(odsOperands.begin(), valueRange.first),
1317 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1318 }
1319
1320 ValueT getOperand() {
1321 return (*getODSOperands(0).begin());
1322 }
1323
1324 RangeT getOperands() {
1325 return odsOperands;
1326 }
1327
1328private:
1329 RangeT odsOperands;
1330};
1331class NotFeltOpAdaptor : public NotFeltOpGenericAdaptor<::mlir::ValueRange> {
1332public:
1335
1336 ::mlir::LogicalResult verify(::mlir::Location loc);
1337};
1338class NotFeltOp : public ::mlir::Op<NotFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1339public:
1340 using Op::Op;
1341 using Op::print;
1343 template <typename RangeT>
1346 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1347 return {};
1348 }
1349
1350 static constexpr ::llvm::StringLiteral getOperationName() {
1351 return ::llvm::StringLiteral("felt.bit_not");
1352 }
1353
1354 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1355 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1356 ::mlir::Value getOperand();
1357 ::mlir::OpOperand &getOperandMutable();
1358 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1359 ::mlir::Operation::result_range getODSResults(unsigned index);
1360 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
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 ::mlir::LogicalResult verifyInvariantsImpl();
1367 ::mlir::LogicalResult verifyInvariants();
1368 static ::mlir::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);
1369 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1370 void print(::mlir::OpAsmPrinter &_odsPrinter);
1371 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1372public:
1373 static ::mlir::ParseResult parseInferredOrParsedType(
1374 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1375 ) {
1376 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1377 // If there is a comma, parse the `opType`
1378 mlir::Type type;
1379 if (parser.parseCustomTypeWithFallback(type)) {
1380 return mlir::failure();
1381 }
1382 opType = type;
1383 } else {
1384 // Otherwise, build the default type
1385 opType =
1386 parser.getBuilder().getType<::llzk::felt::FeltType>();
1387 }
1388 return mlir::success();
1389 }
1390
1391 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1392 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1393 ) {
1394 printer << (isFirst ? " : " : ", ");
1395 printer.printStrippedAttrOrType(opType);
1396 }
1397};
1398} // namespace felt
1399} // namespace llzk
1400MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::NotFeltOp)
1401
1402namespace llzk {
1403namespace felt {
1404
1405//===----------------------------------------------------------------------===//
1406// ::llzk::felt::OrFeltOp declarations
1407//===----------------------------------------------------------------------===//
1408
1409namespace detail {
1411public:
1412protected:
1413 ::mlir::DictionaryAttr odsAttrs;
1414 ::std::optional<::mlir::OperationName> odsOpName;
1415 ::mlir::RegionRange odsRegions;
1416public:
1417 OrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1418
1420
1421 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1422 ::mlir::DictionaryAttr getAttributes();
1423};
1424} // namespace detail
1425template <typename RangeT>
1427 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1429public:
1430 OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1431
1432 OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : OrFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1433
1434 template <typename LateInst = OrFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, OrFeltOp>>>
1435 OrFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1436
1437 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1438 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1439 }
1440
1441 RangeT getODSOperands(unsigned index) {
1442 auto valueRange = getODSOperandIndexAndLength(index);
1443 return {std::next(odsOperands.begin(), valueRange.first),
1444 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1445 }
1446
1447 ValueT getLhs() {
1448 return (*getODSOperands(0).begin());
1449 }
1450
1451 ValueT getRhs() {
1452 return (*getODSOperands(1).begin());
1453 }
1454
1455 RangeT getOperands() {
1456 return odsOperands;
1457 }
1458
1459private:
1460 RangeT odsOperands;
1461};
1462class OrFeltOpAdaptor : public OrFeltOpGenericAdaptor<::mlir::ValueRange> {
1463public:
1466
1467 ::mlir::LogicalResult verify(::mlir::Location loc);
1468};
1469class OrFeltOp : public ::mlir::Op<OrFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1470public:
1471 using Op::Op;
1472 using Op::print;
1474 template <typename RangeT>
1477 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1478 return {};
1479 }
1480
1481 static constexpr ::llvm::StringLiteral getOperationName() {
1482 return ::llvm::StringLiteral("felt.bit_or");
1483 }
1484
1485 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1486 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1487 ::mlir::Value getLhs();
1488 ::mlir::Value getRhs();
1489 ::mlir::OpOperand &getLhsMutable();
1490 ::mlir::OpOperand &getRhsMutable();
1491 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1492 ::mlir::Operation::result_range getODSResults(unsigned index);
1493 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
1494 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1495 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1496 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1497 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1498 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1499 ::mlir::LogicalResult verifyInvariantsImpl();
1500 ::mlir::LogicalResult verifyInvariants();
1501 static ::mlir::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);
1502 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1503 void print(::mlir::OpAsmPrinter &_odsPrinter);
1504 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1505public:
1506 static ::mlir::ParseResult parseInferredOrParsedType(
1507 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1508 ) {
1509 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1510 // If there is a comma, parse the `opType`
1511 mlir::Type type;
1512 if (parser.parseCustomTypeWithFallback(type)) {
1513 return mlir::failure();
1514 }
1515 opType = type;
1516 } else {
1517 // Otherwise, build the default type
1518 opType =
1519 parser.getBuilder().getType<::llzk::felt::FeltType>();
1520 }
1521 return mlir::success();
1522 }
1523
1524 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1525 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1526 ) {
1527 printer << (isFirst ? " : " : ", ");
1528 printer.printStrippedAttrOrType(opType);
1529 }
1530};
1531} // namespace felt
1532} // namespace llzk
1533MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::OrFeltOp)
1534
1535namespace llzk {
1536namespace felt {
1537
1538//===----------------------------------------------------------------------===//
1539// ::llzk::felt::ShlFeltOp declarations
1540//===----------------------------------------------------------------------===//
1541
1542namespace detail {
1544public:
1545protected:
1546 ::mlir::DictionaryAttr odsAttrs;
1547 ::std::optional<::mlir::OperationName> odsOpName;
1548 ::mlir::RegionRange odsRegions;
1549public:
1550 ShlFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1551
1553
1554 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1555 ::mlir::DictionaryAttr getAttributes();
1556};
1557} // namespace detail
1558template <typename RangeT>
1560 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1562public:
1563 ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1564
1565 ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ShlFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1566
1567 template <typename LateInst = ShlFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, ShlFeltOp>>>
1568 ShlFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1569
1570 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1571 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1572 }
1573
1574 RangeT getODSOperands(unsigned index) {
1575 auto valueRange = getODSOperandIndexAndLength(index);
1576 return {std::next(odsOperands.begin(), valueRange.first),
1577 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1578 }
1579
1580 ValueT getLhs() {
1581 return (*getODSOperands(0).begin());
1582 }
1583
1584 ValueT getRhs() {
1585 return (*getODSOperands(1).begin());
1586 }
1587
1588 RangeT getOperands() {
1589 return odsOperands;
1590 }
1591
1592private:
1593 RangeT odsOperands;
1594};
1595class ShlFeltOpAdaptor : public ShlFeltOpGenericAdaptor<::mlir::ValueRange> {
1596public:
1599
1600 ::mlir::LogicalResult verify(::mlir::Location loc);
1601};
1602class ShlFeltOp : public ::mlir::Op<ShlFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1603public:
1604 using Op::Op;
1605 using Op::print;
1607 template <typename RangeT>
1610 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1611 return {};
1612 }
1613
1614 static constexpr ::llvm::StringLiteral getOperationName() {
1615 return ::llvm::StringLiteral("felt.shl");
1616 }
1617
1618 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1619 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1620 ::mlir::Value getLhs();
1621 ::mlir::Value getRhs();
1622 ::mlir::OpOperand &getLhsMutable();
1623 ::mlir::OpOperand &getRhsMutable();
1624 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1625 ::mlir::Operation::result_range getODSResults(unsigned index);
1626 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
1627 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1628 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1629 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1630 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1631 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1632 ::mlir::LogicalResult verifyInvariantsImpl();
1633 ::mlir::LogicalResult verifyInvariants();
1634 static ::mlir::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);
1635 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1636 void print(::mlir::OpAsmPrinter &_odsPrinter);
1637 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1638public:
1639 static ::mlir::ParseResult parseInferredOrParsedType(
1640 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1641 ) {
1642 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1643 // If there is a comma, parse the `opType`
1644 mlir::Type type;
1645 if (parser.parseCustomTypeWithFallback(type)) {
1646 return mlir::failure();
1647 }
1648 opType = type;
1649 } else {
1650 // Otherwise, build the default type
1651 opType =
1652 parser.getBuilder().getType<::llzk::felt::FeltType>();
1653 }
1654 return mlir::success();
1655 }
1656
1657 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1658 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1659 ) {
1660 printer << (isFirst ? " : " : ", ");
1661 printer.printStrippedAttrOrType(opType);
1662 }
1663};
1664} // namespace felt
1665} // namespace llzk
1666MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::ShlFeltOp)
1667
1668namespace llzk {
1669namespace felt {
1670
1671//===----------------------------------------------------------------------===//
1672// ::llzk::felt::ShrFeltOp declarations
1673//===----------------------------------------------------------------------===//
1674
1675namespace detail {
1677public:
1678protected:
1679 ::mlir::DictionaryAttr odsAttrs;
1680 ::std::optional<::mlir::OperationName> odsOpName;
1681 ::mlir::RegionRange odsRegions;
1682public:
1683 ShrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1684
1686
1687 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1688 ::mlir::DictionaryAttr getAttributes();
1689};
1690} // namespace detail
1691template <typename RangeT>
1693 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1695public:
1696 ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1697
1698 ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ShrFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1699
1700 template <typename LateInst = ShrFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, ShrFeltOp>>>
1701 ShrFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1702
1703 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1704 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1705 }
1706
1707 RangeT getODSOperands(unsigned index) {
1708 auto valueRange = getODSOperandIndexAndLength(index);
1709 return {std::next(odsOperands.begin(), valueRange.first),
1710 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1711 }
1712
1713 ValueT getLhs() {
1714 return (*getODSOperands(0).begin());
1715 }
1716
1717 ValueT getRhs() {
1718 return (*getODSOperands(1).begin());
1719 }
1720
1721 RangeT getOperands() {
1722 return odsOperands;
1723 }
1724
1725private:
1726 RangeT odsOperands;
1727};
1728class ShrFeltOpAdaptor : public ShrFeltOpGenericAdaptor<::mlir::ValueRange> {
1729public:
1732
1733 ::mlir::LogicalResult verify(::mlir::Location loc);
1734};
1735class ShrFeltOp : public ::mlir::Op<ShrFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1736public:
1737 using Op::Op;
1738 using Op::print;
1740 template <typename RangeT>
1743 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1744 return {};
1745 }
1746
1747 static constexpr ::llvm::StringLiteral getOperationName() {
1748 return ::llvm::StringLiteral("felt.shr");
1749 }
1750
1751 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1752 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1753 ::mlir::Value getLhs();
1754 ::mlir::Value getRhs();
1755 ::mlir::OpOperand &getLhsMutable();
1756 ::mlir::OpOperand &getRhsMutable();
1757 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1758 ::mlir::Operation::result_range getODSResults(unsigned index);
1759 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
1760 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1761 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1762 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1763 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1764 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1765 ::mlir::LogicalResult verifyInvariantsImpl();
1766 ::mlir::LogicalResult verifyInvariants();
1767 static ::mlir::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);
1768 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1769 void print(::mlir::OpAsmPrinter &_odsPrinter);
1770 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1771public:
1772 static ::mlir::ParseResult parseInferredOrParsedType(
1773 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1774 ) {
1775 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1776 // If there is a comma, parse the `opType`
1777 mlir::Type type;
1778 if (parser.parseCustomTypeWithFallback(type)) {
1779 return mlir::failure();
1780 }
1781 opType = type;
1782 } else {
1783 // Otherwise, build the default type
1784 opType =
1785 parser.getBuilder().getType<::llzk::felt::FeltType>();
1786 }
1787 return mlir::success();
1788 }
1789
1790 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1791 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1792 ) {
1793 printer << (isFirst ? " : " : ", ");
1794 printer.printStrippedAttrOrType(opType);
1795 }
1796};
1797} // namespace felt
1798} // namespace llzk
1799MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::ShrFeltOp)
1800
1801namespace llzk {
1802namespace felt {
1803
1804//===----------------------------------------------------------------------===//
1805// ::llzk::felt::SubFeltOp declarations
1806//===----------------------------------------------------------------------===//
1807
1808namespace detail {
1810public:
1811protected:
1812 ::mlir::DictionaryAttr odsAttrs;
1813 ::std::optional<::mlir::OperationName> odsOpName;
1814 ::mlir::RegionRange odsRegions;
1815public:
1816 SubFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1817
1819
1820 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1821 ::mlir::DictionaryAttr getAttributes();
1822};
1823} // namespace detail
1824template <typename RangeT>
1826 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1828public:
1829 SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1830
1831 SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SubFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1832
1833 template <typename LateInst = SubFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, SubFeltOp>>>
1834 SubFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1835
1836 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1837 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1838 }
1839
1840 RangeT getODSOperands(unsigned index) {
1841 auto valueRange = getODSOperandIndexAndLength(index);
1842 return {std::next(odsOperands.begin(), valueRange.first),
1843 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1844 }
1845
1846 ValueT getLhs() {
1847 return (*getODSOperands(0).begin());
1848 }
1849
1850 ValueT getRhs() {
1851 return (*getODSOperands(1).begin());
1852 }
1853
1854 RangeT getOperands() {
1855 return odsOperands;
1856 }
1857
1858private:
1859 RangeT odsOperands;
1860};
1861class SubFeltOpAdaptor : public SubFeltOpGenericAdaptor<::mlir::ValueRange> {
1862public:
1865
1866 ::mlir::LogicalResult verify(::mlir::Location loc);
1867};
1868class SubFeltOp : public ::mlir::Op<SubFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1869public:
1870 using Op::Op;
1871 using Op::print;
1873 template <typename RangeT>
1876 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1877 return {};
1878 }
1879
1880 static constexpr ::llvm::StringLiteral getOperationName() {
1881 return ::llvm::StringLiteral("felt.sub");
1882 }
1883
1884 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1885 ::mlir::Operation::operand_range getODSOperands(unsigned index);
1886 ::mlir::Value getLhs();
1887 ::mlir::Value getRhs();
1888 ::mlir::OpOperand &getLhsMutable();
1889 ::mlir::OpOperand &getRhsMutable();
1890 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
1891 ::mlir::Operation::result_range getODSResults(unsigned index);
1892 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
1893 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1894 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1895 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1896 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1897 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1898 ::mlir::LogicalResult verifyInvariantsImpl();
1899 ::mlir::LogicalResult verifyInvariants();
1900 static ::mlir::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);
1901 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1902 void print(::mlir::OpAsmPrinter &_odsPrinter);
1903 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1904public:
1905 static ::mlir::ParseResult parseInferredOrParsedType(
1906 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1907 ) {
1908 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1909 // If there is a comma, parse the `opType`
1910 mlir::Type type;
1911 if (parser.parseCustomTypeWithFallback(type)) {
1912 return mlir::failure();
1913 }
1914 opType = type;
1915 } else {
1916 // Otherwise, build the default type
1917 opType =
1918 parser.getBuilder().getType<::llzk::felt::FeltType>();
1919 }
1920 return mlir::success();
1921 }
1922
1923 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1924 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1925 ) {
1926 printer << (isFirst ? " : " : ", ");
1927 printer.printStrippedAttrOrType(opType);
1928 }
1929};
1930} // namespace felt
1931} // namespace llzk
1932MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::SubFeltOp)
1933
1934namespace llzk {
1935namespace felt {
1936
1937//===----------------------------------------------------------------------===//
1938// ::llzk::felt::XorFeltOp declarations
1939//===----------------------------------------------------------------------===//
1940
1941namespace detail {
1943public:
1944protected:
1945 ::mlir::DictionaryAttr odsAttrs;
1946 ::std::optional<::mlir::OperationName> odsOpName;
1947 ::mlir::RegionRange odsRegions;
1948public:
1949 XorFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {});
1950
1952
1953 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1954 ::mlir::DictionaryAttr getAttributes();
1955};
1956} // namespace detail
1957template <typename RangeT>
1959 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1961public:
1962 XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1963
1964 XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : XorFeltOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1965
1966 template <typename LateInst = XorFeltOp, typename = std::enable_if_t<std::is_same_v<LateInst, XorFeltOp>>>
1967 XorFeltOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1968
1969 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1970 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1971 }
1972
1973 RangeT getODSOperands(unsigned index) {
1974 auto valueRange = getODSOperandIndexAndLength(index);
1975 return {std::next(odsOperands.begin(), valueRange.first),
1976 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1977 }
1978
1979 ValueT getLhs() {
1980 return (*getODSOperands(0).begin());
1981 }
1982
1983 ValueT getRhs() {
1984 return (*getODSOperands(1).begin());
1985 }
1986
1987 RangeT getOperands() {
1988 return odsOperands;
1989 }
1990
1991private:
1992 RangeT odsOperands;
1993};
1994class XorFeltOpAdaptor : public XorFeltOpGenericAdaptor<::mlir::ValueRange> {
1995public:
1998
1999 ::mlir::LogicalResult verify(::mlir::Location loc);
2000};
2001class XorFeltOp : public ::mlir::Op<XorFeltOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::felt::FeltType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
2002public:
2003 using Op::Op;
2004 using Op::print;
2006 template <typename RangeT>
2009 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2010 return {};
2011 }
2012
2013 static constexpr ::llvm::StringLiteral getOperationName() {
2014 return ::llvm::StringLiteral("felt.bit_xor");
2015 }
2016
2017 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
2018 ::mlir::Operation::operand_range getODSOperands(unsigned index);
2019 ::mlir::Value getLhs();
2020 ::mlir::Value getRhs();
2021 ::mlir::OpOperand &getLhsMutable();
2022 ::mlir::OpOperand &getRhsMutable();
2023 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
2024 ::mlir::Operation::result_range getODSResults(unsigned index);
2025 ::mlir::TypedValue<::llzk::felt::FeltType> getResult();
2026 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2027 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2028 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2029 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2030 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2031 ::mlir::LogicalResult verifyInvariantsImpl();
2032 ::mlir::LogicalResult verifyInvariants();
2033 static ::mlir::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);
2034 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2035 void print(::mlir::OpAsmPrinter &_odsPrinter);
2036 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2037public:
2038 static ::mlir::ParseResult parseInferredOrParsedType(
2039 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
2040 ) {
2041 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
2042 // If there is a comma, parse the `opType`
2043 mlir::Type type;
2044 if (parser.parseCustomTypeWithFallback(type)) {
2045 return mlir::failure();
2046 }
2047 opType = type;
2048 } else {
2049 // Otherwise, build the default type
2050 opType =
2051 parser.getBuilder().getType<::llzk::felt::FeltType>();
2052 }
2053 return mlir::success();
2054 }
2055
2056 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
2057 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
2058 ) {
2059 printer << (isFirst ? " : " : ", ");
2060 printer.printStrippedAttrOrType(opType);
2061 }
2062};
2063} // namespace felt
2064} // namespace llzk
2065MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::felt::XorFeltOp)
2066
2067
2068#endif // GET_OP_CLASSES
2069
AddFeltOpAdaptor(AddFeltOp op)
Definition Ops.cpp.inc:99
AddFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:125
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:101
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:132
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:136
AddFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:127
AddFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:125
AddFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:130
::mlir::Value getRhs()
Definition Ops.cpp.inc:119
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:128
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:219
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:171
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:176
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:172
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:245
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:133
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:288
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:123
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:105
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:300
AddFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:170
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:237
AddFeltOpAdaptor Adaptor
Definition Ops.h.inc:168
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:201
::mlir::Value getLhs()
Definition Ops.cpp.inc:115
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:109
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:143
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:137
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:233
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:201
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:147
AndFeltOpAdaptor(AndFeltOp op)
Definition Ops.cpp.inc:330
AndFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:258
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:332
AndFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:258
AndFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:263
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:265
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:269
AndFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:260
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:309
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:432
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:468
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:336
::mlir::Value getRhs()
Definition Ops.cpp.inc:350
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:519
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:378
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:368
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:374
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:334
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:359
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:340
AndFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:303
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:476
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:304
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:305
AndFeltOpAdaptor Adaptor
Definition Ops.h.inc:301
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:364
::mlir::Value getLhs()
Definition Ops.cpp.inc:346
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:354
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:464
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:531
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:352
DivFeltOpAdaptor(DivFeltOp op)
Definition Ops.cpp.inc:561
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:563
DivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:391
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:402
DivFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:396
DivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:393
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:398
DivFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:391
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:599
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:585
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:442
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:750
::mlir::Value getLhs()
Definition Ops.cpp.inc:577
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:590
DivFeltOpAdaptor Adaptor
Definition Ops.h.inc:434
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:485
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:695
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:467
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:605
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:595
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:707
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:567
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:762
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:438
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:663
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:699
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:609
::mlir::Value getRhs()
Definition Ops.cpp.inc:581
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:437
DivFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:436
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:571
FeltConstantOpAdaptor(FeltConstantOp op)
Definition Ops.cpp.inc:802
FeltConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const Properties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:551
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:804
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:562
FeltConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:553
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:558
FeltConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:556
FeltConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const Properties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:551
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::felt::FeltConstAttr value)
Definition Ops.cpp.inc:937
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:919
FeltConstantOpAdaptor Adaptor
Definition Ops.h.inc:586
FoldAdaptor::Properties Properties
Definition Ops.h.inc:590
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1039
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:604
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:813
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:886
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:589
FeltConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:588
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:899
::mlir::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:837
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1006
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1047
void setValueAttr(::llzk::felt::FeltConstAttr attr)
Definition Ops.cpp.inc:933
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition Ops.cpp:30
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:38
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:892
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:823
::mlir::StringAttr getValueAttrName()
Definition Ops.h.inc:596
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition Ops.h.inc:600
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:881
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1018
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1010
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:827
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:988
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:591
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:833
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:865
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:817
::llzk::felt::FeltConstAttr getValueAttr()
Definition Ops.cpp.inc:924
::mlir::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:903
::mlir::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:912
::llzk::felt::FeltConstAttr getValue()
Definition Ops.cpp.inc:928
FeltNonDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:685
FeltNonDetOpAdaptor(FeltNonDetOp op)
Definition Ops.cpp.inc:1077
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1079
FeltNonDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:687
FeltNonDetOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:690
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:692
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:696
FeltNonDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:685
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:1087
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:723
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1154
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition Ops.cpp:44
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1190
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1083
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1179
FeltNonDetOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:722
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1171
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:1097
FeltNonDetOpAdaptor Adaptor
Definition Ops.h.inc:720
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:724
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:728
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1093
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:1103
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result)
Definition Ops.cpp.inc:1107
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1167
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1195
InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:783
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1227
InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:783
InvFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:788
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:794
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:790
InvFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:785
InvFeltOpAdaptor Adaptor
Definition Ops.h.inc:822
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1343
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1339
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:1260
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:1235
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:871
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1315
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1377
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1231
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:830
::mlir::Value getOperand()
Definition Ops.cpp.inc:1241
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:853
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1250
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:825
InvFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:824
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:826
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:1264
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1351
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1385
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:1254
::mlir::OpOperand & getOperandMutable()
Definition Ops.cpp.inc:1245
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1417
ModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:910
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:917
ModFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:915
ModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:912
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:921
ModFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:910
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:1444
::mlir::Value getLhs()
Definition Ops.cpp.inc:1431
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1561
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:957
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1604
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:1453
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1553
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:956
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1463
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1616
ModFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:955
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1004
::mlir::Value getRhs()
Definition Ops.cpp.inc:1435
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:1439
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1549
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1449
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:1459
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:1425
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1517
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:986
ModFeltOpAdaptor Adaptor
Definition Ops.h.inc:953
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:961
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1421
MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1043
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1648
MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1043
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1050
MulFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1048
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1054
MulFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1045
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:1690
::mlir::Value getRhs()
Definition Ops.cpp.inc:1666
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1835
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1748
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1119
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1089
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1137
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1784
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1652
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:1684
MulFeltOpAdaptor Adaptor
Definition Ops.h.inc:1086
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1694
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1090
::mlir::Value getLhs()
Definition Ops.cpp.inc:1662
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1094
MulFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1088
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1792
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1847
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1780
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:1670
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:1675
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1680
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:1656
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1176
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1879
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1183
NegFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1181
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1176
NegFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1178
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1187
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:1916
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1219
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1246
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:1912
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2037
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1883
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1902
NegFeltOpAdaptor Adaptor
Definition Ops.h.inc:1215
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:1887
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2029
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1991
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1995
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:1906
::mlir::Value getOperand()
Definition Ops.cpp.inc:1893
::mlir::OpOperand & getOperandMutable()
Definition Ops.cpp.inc:1897
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1264
NegFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1217
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1967
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1218
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1223
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2003
NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1303
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2069
NotFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1308
NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1303
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1310
NotFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1305
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1314
NotFeltOpAdaptor Adaptor
Definition Ops.h.inc:1342
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2157
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2073
NotFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1344
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:2096
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1373
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1346
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:2106
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2185
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1350
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2193
::mlir::OpOperand & getOperandMutable()
Definition Ops.cpp.inc:2087
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2227
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1345
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2181
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2092
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2219
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:2077
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1391
::mlir::Value getOperand()
Definition Ops.cpp.inc:2083
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:2102
OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1430
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2259
OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1432
OrFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1435
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1437
OrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1430
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1441
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2291
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2403
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1476
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:2286
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2305
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:2301
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1524
OrFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1475
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2446
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:2295
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1481
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:2267
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2263
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2391
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2359
::mlir::Value getRhs()
Definition Ops.cpp.inc:2277
OrFeltOpAdaptor Adaptor
Definition Ops.h.inc:1473
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2395
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1477
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:2281
::mlir::Value getLhs()
Definition Ops.cpp.inc:2273
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2458
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1506
ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1563
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2490
ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1563
ShlFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1568
ShlFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1565
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1570
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1574
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1610
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2689
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1614
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2536
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:2532
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1609
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2494
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1657
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:2498
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:2517
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2626
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2634
ShlFeltOpAdaptor Adaptor
Definition Ops.h.inc:1606
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2590
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2677
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2522
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1639
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2622
ShlFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1608
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:2526
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:2512
::mlir::Value getRhs()
Definition Ops.cpp.inc:2508
::mlir::Value getLhs()
Definition Ops.cpp.inc:2504
ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1696
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2721
ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1698
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1703
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1707
ShrFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1701
ShrFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1696
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2908
::mlir::Value getRhs()
Definition Ops.cpp.inc:2739
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1790
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2920
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1742
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:2748
ShrFeltOpAdaptor Adaptor
Definition Ops.h.inc:1739
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2821
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2725
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1747
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:2743
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:2729
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2767
ShrFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1741
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:2857
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2753
::mlir::Value getLhs()
Definition Ops.cpp.inc:2735
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1772
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2865
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2853
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:2763
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:2757
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1743
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1829
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2952
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1829
SubFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1834
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1836
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1840
SubFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1831
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:3096
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:3088
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:2994
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:2998
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:3151
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:2979
::mlir::Value getLhs()
Definition Ops.cpp.inc:2966
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:1905
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1875
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1876
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3139
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3084
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1880
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3052
SubFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1874
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2984
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:2960
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:2988
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:1923
SubFeltOpAdaptor Adaptor
Definition Ops.h.inc:1872
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:2956
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:2974
::mlir::Value getRhs()
Definition Ops.cpp.inc:2970
::mlir::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:3183
XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1962
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1973
XorFeltOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1967
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1969
XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1964
XorFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1962
::mlir::OpOperand & getLhsMutable()
Definition Ops.cpp.inc:3205
::mlir::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:3319
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2009
::mlir::Value getRhs()
Definition Ops.cpp.inc:3201
XorFeltOpAdaptor Adaptor
Definition Ops.h.inc:2005
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2013
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2008
::mlir::ParseResult parseInferredOrParsedType(::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst)
Definition Ops.h.inc:2038
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.cpp.inc:3191
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:3187
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.cpp.inc:3215
::mlir::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3315
::mlir::Value getLhs()
Definition Ops.cpp.inc:3197
static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer, ::mlir::Operation *op, ::mlir::Type opType, bool isFirst)
Definition Ops.h.inc:2056
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:3327
::mlir::OpOperand & getRhsMutable()
Definition Ops.cpp.inc:3210
::mlir::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3283
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
Definition Ops.cpp.inc:3225
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:3229
XorFeltOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2007
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3370
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.cpp.inc:3219
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:3382
AddFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:84
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:90
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:109
AndFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:315
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:321
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:242
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:375
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:552
DivFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:546
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:528
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:783
FeltConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const Properties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:777
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:669
FeltNonDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:1062
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1068
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:767
InvFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:1210
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1216
ModFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:1400
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1406
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:894
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1637
MulFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:1631
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1027
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1160
NegFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:1862
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1868
NotFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:2052
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:2058
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1287
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:2248
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1414
OrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:2242
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1547
ShlFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:2473
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:2479
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1680
ShrFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:2704
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:2710
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:2941
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1813
SubFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:2935
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1946
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:3172
XorFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs=nullptr, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.cpp.inc:3166
void setValue(const ::llzk::felt::FeltConstAttr &propValue)
Definition Ops.h.inc:514