LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Ops.h.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Op Declarations *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Ops.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10namespace llzk {
11namespace boolean {
12class ExistsOp;
13} // namespace boolean
14} // namespace llzk
15namespace llzk {
16namespace boolean {
17class ForAllOp;
18} // namespace boolean
19} // namespace llzk
20namespace llzk {
21namespace boolean {
22class AndBoolOp;
23} // namespace boolean
24} // namespace llzk
25namespace llzk {
26namespace boolean {
27class AssertOp;
28} // namespace boolean
29} // namespace llzk
30namespace llzk {
31namespace boolean {
32class CmpOp;
33} // namespace boolean
34} // namespace llzk
35namespace llzk {
36namespace boolean {
37class NotBoolOp;
38} // namespace boolean
39} // namespace llzk
40namespace llzk {
41namespace boolean {
42class OrBoolOp;
43} // namespace boolean
44} // namespace llzk
45namespace llzk {
46namespace boolean {
47class XorBoolOp;
48} // namespace boolean
49} // namespace llzk
50namespace llzk {
51namespace boolean {
52class YieldOp;
53} // namespace boolean
54} // namespace llzk
55#ifdef GET_OP_CLASSES
56#undef GET_OP_CLASSES
57
58namespace llzk {
59namespace boolean {
60
61//===----------------------------------------------------------------------===//
62// ::llzk::boolean::ExistsOp declarations
63//===----------------------------------------------------------------------===//
64
65namespace detail {
67public:
68protected:
69 ::mlir::DictionaryAttr odsAttrs;
70 ::std::optional<::mlir::OperationName> odsOpName;
71 ::mlir::RegionRange odsRegions;
72public:
73 ExistsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
74 odsOpName.emplace("bool.exists", odsAttrs.getContext());
75 }
76
77 ExistsOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
78
79 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
80 return {index, 1};
81 }
82
83 ::mlir::DictionaryAttr getAttributes() {
84 return odsAttrs;
85 }
86
87 ::mlir::Region &getRegion() {
88 return *odsRegions[0];
89 }
90
91 ::mlir::RegionRange getRegions() {
92 return odsRegions;
93 }
94
95};
96} // namespace detail
97template <typename RangeT>
99 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
101public:
102 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
103
104 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ExistsOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
105
106 ExistsOpGenericAdaptor(RangeT values, const ExistsOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
107
108 template <typename LateInst = ExistsOp, typename = std::enable_if_t<std::is_same_v<LateInst, ExistsOp>>>
109 ExistsOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
110
111 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
112 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
113 }
114
115 RangeT getODSOperands(unsigned index) {
116 auto valueRange = getODSOperandIndexAndLength(index);
117 return {std::next(odsOperands.begin(), valueRange.first),
118 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
119 }
120
121 ValueT getSort() {
122 return (*getODSOperands(0).begin());
123 }
124
125 RangeT getOperands() {
126 return odsOperands;
127 }
128
129private:
130 RangeT odsOperands;
131};
132class ExistsOpAdaptor : public ExistsOpGenericAdaptor<::mlir::ValueRange> {
133public:
136
137 ::llvm::LogicalResult verify(::mlir::Location loc);
138};
139class ExistsOp : public ::mlir::Op<ExistsOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::NotFieldNative, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
140public:
141 using Op::Op;
142 using Op::print;
144 template <typename RangeT>
147 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
148 return {};
149 }
150
151 static constexpr ::llvm::StringLiteral getOperationName() {
152 return ::llvm::StringLiteral("bool.exists");
153 }
154
155 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
156 return {index, 1};
157 }
158
159 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
160 auto valueRange = getODSOperandIndexAndLength(index);
161 return {std::next(getOperation()->operand_begin(), valueRange.first),
162 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
163 }
164
165 ::mlir::TypedValue<::llzk::array::ArrayType> getSort() {
166 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
167 }
168
169 ::mlir::OpOperand &getSortMutable() {
170 auto range = getODSOperandIndexAndLength(0);
171 return getOperation()->getOpOperand(range.first);
172 }
173
174 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
175 return {index, 1};
176 }
177
178 ::mlir::Operation::result_range getODSResults(unsigned index) {
179 auto valueRange = getODSResultIndexAndLength(index);
180 return {std::next(getOperation()->result_begin(), valueRange.first),
181 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
182 }
183
184 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
185 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
186 }
187
188 ::mlir::Region &getRegion() {
189 return (*this)->getRegion(0);
190 }
191
192 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value sort);
193 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value sort);
194 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value sort);
195 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
196 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
197 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
198 void print(::mlir::OpAsmPrinter &p);
199 ::llvm::LogicalResult verifyInvariantsImpl();
200 ::llvm::LogicalResult verifyInvariants();
201 ::llvm::LogicalResult verify();
202 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
203 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
204public:
205};
206} // namespace boolean
207} // namespace llzk
208MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::ExistsOp)
209
210namespace llzk {
211namespace boolean {
212
213//===----------------------------------------------------------------------===//
214// ::llzk::boolean::ForAllOp declarations
215//===----------------------------------------------------------------------===//
216
217namespace detail {
219public:
220protected:
221 ::mlir::DictionaryAttr odsAttrs;
222 ::std::optional<::mlir::OperationName> odsOpName;
223 ::mlir::RegionRange odsRegions;
224public:
225 ForAllOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
226 odsOpName.emplace("bool.forall", odsAttrs.getContext());
227 }
228
229 ForAllOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
230
231 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
232 return {index, 1};
233 }
234
235 ::mlir::DictionaryAttr getAttributes() {
236 return odsAttrs;
237 }
238
239 ::mlir::Region &getRegion() {
240 return *odsRegions[0];
241 }
242
243 ::mlir::RegionRange getRegions() {
244 return odsRegions;
245 }
246
247};
248} // namespace detail
249template <typename RangeT>
251 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
253public:
254 ForAllOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
255
256 ForAllOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ForAllOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
257
258 ForAllOpGenericAdaptor(RangeT values, const ForAllOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
259
260 template <typename LateInst = ForAllOp, typename = std::enable_if_t<std::is_same_v<LateInst, ForAllOp>>>
261 ForAllOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
262
263 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
264 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
265 }
266
267 RangeT getODSOperands(unsigned index) {
268 auto valueRange = getODSOperandIndexAndLength(index);
269 return {std::next(odsOperands.begin(), valueRange.first),
270 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
271 }
272
273 ValueT getSort() {
274 return (*getODSOperands(0).begin());
275 }
276
277 RangeT getOperands() {
278 return odsOperands;
279 }
280
281private:
282 RangeT odsOperands;
283};
284class ForAllOpAdaptor : public ForAllOpGenericAdaptor<::mlir::ValueRange> {
285public:
288
289 ::llvm::LogicalResult verify(::mlir::Location loc);
290};
291class ForAllOp : public ::mlir::Op<ForAllOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::NotFieldNative, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
292public:
293 using Op::Op;
294 using Op::print;
296 template <typename RangeT>
299 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
300 return {};
301 }
302
303 static constexpr ::llvm::StringLiteral getOperationName() {
304 return ::llvm::StringLiteral("bool.forall");
305 }
306
307 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
308 return {index, 1};
309 }
310
311 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
312 auto valueRange = getODSOperandIndexAndLength(index);
313 return {std::next(getOperation()->operand_begin(), valueRange.first),
314 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
315 }
316
317 ::mlir::TypedValue<::llzk::array::ArrayType> getSort() {
318 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
319 }
320
321 ::mlir::OpOperand &getSortMutable() {
322 auto range = getODSOperandIndexAndLength(0);
323 return getOperation()->getOpOperand(range.first);
324 }
325
326 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
327 return {index, 1};
328 }
329
330 ::mlir::Operation::result_range getODSResults(unsigned index) {
331 auto valueRange = getODSResultIndexAndLength(index);
332 return {std::next(getOperation()->result_begin(), valueRange.first),
333 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
334 }
335
336 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
337 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
338 }
339
340 ::mlir::Region &getRegion() {
341 return (*this)->getRegion(0);
342 }
343
344 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value sort);
345 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value sort);
346 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value sort);
347 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
348 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
349 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
350 void print(::mlir::OpAsmPrinter &p);
351 ::llvm::LogicalResult verifyInvariantsImpl();
352 ::llvm::LogicalResult verifyInvariants();
353 ::llvm::LogicalResult verify();
354 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
355 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
356public:
357};
358} // namespace boolean
359} // namespace llzk
360MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::ForAllOp)
361
362namespace llzk {
363namespace boolean {
364
365//===----------------------------------------------------------------------===//
366// ::llzk::boolean::AndBoolOp declarations
367//===----------------------------------------------------------------------===//
368
369namespace detail {
371public:
372protected:
373 ::mlir::DictionaryAttr odsAttrs;
374 ::std::optional<::mlir::OperationName> odsOpName;
375 ::mlir::RegionRange odsRegions;
376public:
377 AndBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
378 odsOpName.emplace("bool.and", odsAttrs.getContext());
379 }
380
381 AndBoolOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
382
383 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
384 return {index, 1};
385 }
386
387 ::mlir::DictionaryAttr getAttributes() {
388 return odsAttrs;
389 }
390
391};
392} // namespace detail
393template <typename RangeT>
395 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
397public:
398 AndBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
399
400 AndBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AndBoolOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
401
402 AndBoolOpGenericAdaptor(RangeT values, const AndBoolOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
403
404 template <typename LateInst = AndBoolOp, typename = std::enable_if_t<std::is_same_v<LateInst, AndBoolOp>>>
405 AndBoolOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
406
407 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
408 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
409 }
410
411 RangeT getODSOperands(unsigned index) {
412 auto valueRange = getODSOperandIndexAndLength(index);
413 return {std::next(odsOperands.begin(), valueRange.first),
414 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
415 }
416
417 ValueT getLhs() {
418 return (*getODSOperands(0).begin());
419 }
420
421 ValueT getRhs() {
422 return (*getODSOperands(1).begin());
423 }
424
425 RangeT getOperands() {
426 return odsOperands;
427 }
428
429private:
430 RangeT odsOperands;
431};
432class AndBoolOpAdaptor : public AndBoolOpGenericAdaptor<::mlir::ValueRange> {
433public:
436
437 ::llvm::LogicalResult verify(::mlir::Location loc);
438};
439class AndBoolOp : public ::mlir::Op<AndBoolOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::NotFieldNative, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
440public:
441 using Op::Op;
442 using Op::print;
444 template <typename RangeT>
447 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
448 return {};
449 }
450
451 static constexpr ::llvm::StringLiteral getOperationName() {
452 return ::llvm::StringLiteral("bool.and");
453 }
454
455 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
456 return {index, 1};
457 }
458
459 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
460 auto valueRange = getODSOperandIndexAndLength(index);
461 return {std::next(getOperation()->operand_begin(), valueRange.first),
462 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
463 }
464
465 ::mlir::TypedValue<::mlir::Type> getLhs() {
466 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
467 }
468
469 ::mlir::TypedValue<::mlir::Type> getRhs() {
470 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
471 }
472
473 ::mlir::OpOperand &getLhsMutable() {
474 auto range = getODSOperandIndexAndLength(0);
475 return getOperation()->getOpOperand(range.first);
476 }
477
478 ::mlir::OpOperand &getRhsMutable() {
479 auto range = getODSOperandIndexAndLength(1);
480 return getOperation()->getOpOperand(range.first);
481 }
482
483 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
484 return {index, 1};
485 }
486
487 ::mlir::Operation::result_range getODSResults(unsigned index) {
488 auto valueRange = getODSResultIndexAndLength(index);
489 return {std::next(getOperation()->result_begin(), valueRange.first),
490 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
491 }
492
493 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
494 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
495 }
496
497 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
498 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
499 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
500 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
501 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
502 ::llvm::LogicalResult verifyInvariantsImpl();
503 ::llvm::LogicalResult verifyInvariants();
504 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
505 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
506 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
507 void print(::mlir::OpAsmPrinter &_odsPrinter);
508 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
509public:
510 private:
511 static ::mlir::ParseResult parseInferredOrParsedType(
512 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
513 ) {
514 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
515 // If there is a comma, parse the `opType`
516 mlir::Type type;
517 if (parser.parseCustomTypeWithFallback(type)) {
518 return mlir::failure();
519 }
520 opType = type;
521 } else {
522 // Otherwise, build the default type
523 opType =
524 parser.getBuilder().getIntegerType(1);
525 }
526 return mlir::success();
527 }
528
529 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
530 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
531 ) {
532 printer << (isFirst ? " : " : ", ");
533 printer.printStrippedAttrOrType(opType);
534 }
535};
536} // namespace boolean
537} // namespace llzk
538MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::AndBoolOp)
539
540namespace llzk {
541namespace boolean {
542
543//===----------------------------------------------------------------------===//
544// ::llzk::boolean::AssertOp declarations
545//===----------------------------------------------------------------------===//
546
547namespace detail {
549public:
550 struct Properties {
551 using msgTy = ::mlir::StringAttr;
553
554 auto getMsg() {
555 auto &propStorage = this->msg;
556 return ::llvm::dyn_cast_or_null<::mlir::StringAttr>(propStorage);
557 }
558 void setMsg(const ::mlir::StringAttr &propValue) {
559 this->msg = propValue;
560 }
561 bool operator==(const Properties &rhs) const {
562 return
563 rhs.msg == this->msg &&
564 true;
565 }
566 bool operator!=(const Properties &rhs) const {
567 return !(*this == rhs);
568 }
569 };
570protected:
571 ::mlir::DictionaryAttr odsAttrs;
572 ::std::optional<::mlir::OperationName> odsOpName;
574 ::mlir::RegionRange odsRegions;
575public:
576 AssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
577 odsOpName.emplace("bool.assert", odsAttrs.getContext());
578 }
579
581
582 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
583 return {index, 1};
584 }
585
587 return properties;
588 }
589
590 ::mlir::DictionaryAttr getAttributes() {
591 return odsAttrs;
592 }
593
594 ::mlir::StringAttr getMsgAttr() {
595 auto attr = ::llvm::dyn_cast_or_null<::mlir::StringAttr>(getProperties().msg);
596 return attr;
597 }
598
599 ::std::optional< ::llvm::StringRef > getMsg();
600};
601} // namespace detail
602template <typename RangeT>
604 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
606public:
607 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
608
609 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AssertOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
610
611 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : AssertOpGenericAdaptor(values, attrs, Properties{}, {}) {}
612
613 AssertOpGenericAdaptor(RangeT values, const AssertOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
614
615 template <typename LateInst = AssertOp, typename = std::enable_if_t<std::is_same_v<LateInst, AssertOp>>>
616 AssertOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
617
618 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
619 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
620 }
621
622 RangeT getODSOperands(unsigned index) {
623 auto valueRange = getODSOperandIndexAndLength(index);
624 return {std::next(odsOperands.begin(), valueRange.first),
625 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
626 }
627
628 ValueT getCondition() {
629 return (*getODSOperands(0).begin());
630 }
631
632 RangeT getOperands() {
633 return odsOperands;
634 }
635
636private:
637 RangeT odsOperands;
638};
639class AssertOpAdaptor : public AssertOpGenericAdaptor<::mlir::ValueRange> {
640public:
643
644 ::llvm::LogicalResult verify(::mlir::Location loc);
645};
646class AssertOp : public ::mlir::Op<AssertOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::MemoryEffectOpInterface::Trait> {
647public:
648 using Op::Op;
649 using Op::print;
651 template <typename RangeT>
655 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
656 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("msg")};
657 return ::llvm::ArrayRef(attrNames);
658 }
659
660 ::mlir::StringAttr getMsgAttrName() {
661 return getAttributeNameForIndex(0);
662 }
663
664 static ::mlir::StringAttr getMsgAttrName(::mlir::OperationName name) {
665 return getAttributeNameForIndex(name, 0);
666 }
667
668 static constexpr ::llvm::StringLiteral getOperationName() {
669 return ::llvm::StringLiteral("bool.assert");
670 }
671
672 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
673 return {index, 1};
674 }
675
676 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
677 auto valueRange = getODSOperandIndexAndLength(index);
678 return {std::next(getOperation()->operand_begin(), valueRange.first),
679 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
680 }
681
682 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
683 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
684 }
685
686 ::mlir::OpOperand &getConditionMutable() {
687 auto range = getODSOperandIndexAndLength(0);
688 return getOperation()->getOpOperand(range.first);
689 }
690
691 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
692 return {index, 1};
693 }
694
695 ::mlir::Operation::result_range getODSResults(unsigned index) {
696 auto valueRange = getODSResultIndexAndLength(index);
697 return {std::next(getOperation()->result_begin(), valueRange.first),
698 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
699 }
700
701 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
702 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
703 static llvm::hash_code computePropertiesHash(const Properties &prop);
704 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
705 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
706 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
707 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
708 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
709 void writeProperties(::mlir::DialectBytecodeWriter &writer);
710 ::mlir::StringAttr getMsgAttr() {
711 return ::llvm::dyn_cast_or_null<::mlir::StringAttr>(getProperties().msg);
712 }
713
714 ::std::optional< ::llvm::StringRef > getMsg();
715 void setMsgAttr(::mlir::StringAttr attr) {
716 getProperties().msg = attr;
717 }
718
719 void setMsg(::std::optional<::llvm::StringRef> attrValue);
720 ::mlir::Attribute removeMsgAttr() {
721 auto &attr = getProperties().msg;
722 attr = {};
723 return attr;
724 }
725
726 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition, /*optional*/::mlir::StringAttr msg);
727 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition, /*optional*/::mlir::StringAttr msg);
728 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
729 ::llvm::LogicalResult verifyInvariantsImpl();
730 ::llvm::LogicalResult verifyInvariants();
731 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
732 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
733 void print(::mlir::OpAsmPrinter &_odsPrinter);
734private:
735 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
736 return getAttributeNameForIndex((*this)->getName(), index);
737 }
738
739 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
740 assert(index < 1 && "invalid attribute index");
741 assert(name.getStringRef() == getOperationName() && "invalid operation name");
742 assert(name.isRegistered() && "Operation isn't registered, missing a "
743 "dependent dialect loading?");
744 return name.getAttributeNames()[index];
745 }
746
747public:
748};
749} // namespace boolean
750} // namespace llzk
751MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::AssertOp)
752
753namespace llzk {
754namespace boolean {
755
756//===----------------------------------------------------------------------===//
757// ::llzk::boolean::CmpOp declarations
758//===----------------------------------------------------------------------===//
759
760namespace detail {
762public:
763 struct Properties {
764 using predicateTy = ::llzk::boolean::FeltCmpPredicateAttr;
766
768 auto &propStorage = this->predicate;
769 return ::llvm::cast<::llzk::boolean::FeltCmpPredicateAttr>(propStorage);
770 }
771 void setPredicate(const ::llzk::boolean::FeltCmpPredicateAttr &propValue) {
772 this->predicate = propValue;
773 }
774 bool operator==(const Properties &rhs) const {
775 return
776 rhs.predicate == this->predicate &&
777 true;
778 }
779 bool operator!=(const Properties &rhs) const {
780 return !(*this == rhs);
781 }
782 };
783protected:
784 ::mlir::DictionaryAttr odsAttrs;
785 ::std::optional<::mlir::OperationName> odsOpName;
787 ::mlir::RegionRange odsRegions;
788public:
789 CmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
790 odsOpName.emplace("bool.cmp", odsAttrs.getContext());
791 }
792
794
795 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
796 return {index, 1};
797 }
798
800 return properties;
801 }
802
803 ::mlir::DictionaryAttr getAttributes() {
804 return odsAttrs;
805 }
806
807 ::llzk::boolean::FeltCmpPredicateAttr getPredicateAttr() {
808 auto attr = ::llvm::cast<::llzk::boolean::FeltCmpPredicateAttr>(getProperties().predicate);
809 return attr;
810 }
811
813};
814} // namespace detail
815template <typename RangeT>
817 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
819public:
820 CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
821
822 CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : CmpOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
823
824 CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : CmpOpGenericAdaptor(values, attrs, Properties{}, {}) {}
825
826 CmpOpGenericAdaptor(RangeT values, const CmpOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
827
828 template <typename LateInst = CmpOp, typename = std::enable_if_t<std::is_same_v<LateInst, CmpOp>>>
829 CmpOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
830
831 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
832 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
833 }
834
835 RangeT getODSOperands(unsigned index) {
836 auto valueRange = getODSOperandIndexAndLength(index);
837 return {std::next(odsOperands.begin(), valueRange.first),
838 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
839 }
840
841 ValueT getLhs() {
842 return (*getODSOperands(0).begin());
843 }
844
845 ValueT getRhs() {
846 return (*getODSOperands(1).begin());
847 }
848
849 RangeT getOperands() {
850 return odsOperands;
851 }
852
853private:
854 RangeT odsOperands;
855};
856class CmpOpAdaptor : public CmpOpGenericAdaptor<::mlir::ValueRange> {
857public:
860
861 ::llvm::LogicalResult verify(::mlir::Location loc);
862};
863class CmpOp : public ::mlir::Op<CmpOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
864public:
865 using Op::Op;
866 using Op::print;
868 template <typename RangeT>
872 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
873 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("predicate")};
874 return ::llvm::ArrayRef(attrNames);
875 }
876
877 ::mlir::StringAttr getPredicateAttrName() {
878 return getAttributeNameForIndex(0);
879 }
880
881 static ::mlir::StringAttr getPredicateAttrName(::mlir::OperationName name) {
882 return getAttributeNameForIndex(name, 0);
883 }
884
885 static constexpr ::llvm::StringLiteral getOperationName() {
886 return ::llvm::StringLiteral("bool.cmp");
887 }
888
889 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
890 return {index, 1};
891 }
892
893 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
894 auto valueRange = getODSOperandIndexAndLength(index);
895 return {std::next(getOperation()->operand_begin(), valueRange.first),
896 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
897 }
898
899 ::mlir::TypedValue<::llzk::felt::FeltType> getLhs() {
900 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*getODSOperands(0).begin());
901 }
902
903 ::mlir::TypedValue<::llzk::felt::FeltType> getRhs() {
904 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*getODSOperands(1).begin());
905 }
906
907 ::mlir::OpOperand &getLhsMutable() {
908 auto range = getODSOperandIndexAndLength(0);
909 return getOperation()->getOpOperand(range.first);
910 }
911
912 ::mlir::OpOperand &getRhsMutable() {
913 auto range = getODSOperandIndexAndLength(1);
914 return getOperation()->getOpOperand(range.first);
915 }
916
917 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
918 return {index, 1};
919 }
920
921 ::mlir::Operation::result_range getODSResults(unsigned index) {
922 auto valueRange = getODSResultIndexAndLength(index);
923 return {std::next(getOperation()->result_begin(), valueRange.first),
924 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
925 }
926
927 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
928 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
929 }
930
931 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
932 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
933 static llvm::hash_code computePropertiesHash(const Properties &prop);
934 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
935 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
936 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
937 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
938 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
939 void writeProperties(::mlir::DialectBytecodeWriter &writer);
940 ::llzk::boolean::FeltCmpPredicateAttr getPredicateAttr() {
941 return ::llvm::cast<::llzk::boolean::FeltCmpPredicateAttr>(getProperties().predicate);
942 }
943
945 void setPredicateAttr(::llzk::boolean::FeltCmpPredicateAttr attr) {
946 getProperties().predicate = attr;
947 }
948
950 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::boolean::FeltCmpPredicateAttr predicate, ::mlir::Value lhs, ::mlir::Value rhs);
951 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::boolean::FeltCmpPredicateAttr predicate, ::mlir::Value lhs, ::mlir::Value rhs);
952 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::boolean::FeltCmpPredicateAttr predicate, ::mlir::Value lhs, ::mlir::Value rhs);
953 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::boolean::FeltCmpPredicate predicate, ::mlir::Value lhs, ::mlir::Value rhs);
954 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::boolean::FeltCmpPredicate predicate, ::mlir::Value lhs, ::mlir::Value rhs);
955 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::boolean::FeltCmpPredicate predicate, ::mlir::Value lhs, ::mlir::Value rhs);
956 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
957 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
958 ::llvm::LogicalResult verifyInvariantsImpl();
959 ::llvm::LogicalResult verifyInvariants();
960 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
961 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
962 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
963 void print(::mlir::OpAsmPrinter &_odsPrinter);
964 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
965private:
966 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
967 return getAttributeNameForIndex((*this)->getName(), index);
968 }
969
970 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
971 assert(index < 1 && "invalid attribute index");
972 assert(name.getStringRef() == getOperationName() && "invalid operation name");
973 assert(name.isRegistered() && "Operation isn't registered, missing a "
974 "dependent dialect loading?");
975 return name.getAttributeNames()[index];
976 }
977
978public:
979 private:
980 static ::mlir::ParseResult parseInferredOrParsedType(
981 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
982 ) {
983 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
984 // If there is a comma, parse the `opType`
985 mlir::Type type;
986 if (parser.parseCustomTypeWithFallback(type)) {
987 return mlir::failure();
988 }
989 opType = type;
990 } else {
991 // Otherwise, build the default type
992 opType =
993 ::llzk::felt::FeltType::get(parser.getBuilder().getContext());
994 }
995 return mlir::success();
996 }
997
998 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
999 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1000 ) {
1001 printer << (isFirst ? " : " : ", ");
1002 printer.printStrippedAttrOrType(opType);
1003 }
1004};
1005} // namespace boolean
1006} // namespace llzk
1007MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::CmpOp)
1008
1009namespace llzk {
1010namespace boolean {
1011
1012//===----------------------------------------------------------------------===//
1013// ::llzk::boolean::NotBoolOp declarations
1014//===----------------------------------------------------------------------===//
1015
1016namespace detail {
1018public:
1019protected:
1020 ::mlir::DictionaryAttr odsAttrs;
1021 ::std::optional<::mlir::OperationName> odsOpName;
1022 ::mlir::RegionRange odsRegions;
1023public:
1024 NotBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1025 odsOpName.emplace("bool.not", odsAttrs.getContext());
1026 }
1027
1028 NotBoolOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1029
1030 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1031 return {index, 1};
1032 }
1033
1034 ::mlir::DictionaryAttr getAttributes() {
1035 return odsAttrs;
1036 }
1037
1038};
1039} // namespace detail
1040template <typename RangeT>
1042 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1044public:
1045 NotBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1046
1047 NotBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NotBoolOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1048
1049 NotBoolOpGenericAdaptor(RangeT values, const NotBoolOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1050
1051 template <typename LateInst = NotBoolOp, typename = std::enable_if_t<std::is_same_v<LateInst, NotBoolOp>>>
1052 NotBoolOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1053
1054 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1055 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1056 }
1057
1058 RangeT getODSOperands(unsigned index) {
1059 auto valueRange = getODSOperandIndexAndLength(index);
1060 return {std::next(odsOperands.begin(), valueRange.first),
1061 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1062 }
1063
1064 ValueT getOperand() {
1065 return (*getODSOperands(0).begin());
1066 }
1067
1068 RangeT getOperands() {
1069 return odsOperands;
1070 }
1071
1072private:
1073 RangeT odsOperands;
1074};
1075class NotBoolOpAdaptor : public NotBoolOpGenericAdaptor<::mlir::ValueRange> {
1076public:
1079
1080 ::llvm::LogicalResult verify(::mlir::Location loc);
1081};
1082class NotBoolOp : public ::mlir::Op<NotBoolOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::NotFieldNative, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
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("bool.not");
1096 }
1097
1098 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1099 return {index, 1};
1100 }
1101
1102 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1103 auto valueRange = getODSOperandIndexAndLength(index);
1104 return {std::next(getOperation()->operand_begin(), valueRange.first),
1105 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1106 }
1107
1108 ::mlir::TypedValue<::mlir::Type> getOperand() {
1109 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1110 }
1111
1112 ::mlir::OpOperand &getOperandMutable() {
1113 auto range = getODSOperandIndexAndLength(0);
1114 return getOperation()->getOpOperand(range.first);
1115 }
1116
1117 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1118 return {index, 1};
1119 }
1120
1121 ::mlir::Operation::result_range getODSResults(unsigned index) {
1122 auto valueRange = getODSResultIndexAndLength(index);
1123 return {std::next(getOperation()->result_begin(), valueRange.first),
1124 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1125 }
1126
1127 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
1128 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
1129 }
1130
1131 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand);
1132 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value operand);
1133 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value operand);
1134 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1135 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1136 ::llvm::LogicalResult verifyInvariantsImpl();
1137 ::llvm::LogicalResult verifyInvariants();
1138 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1139 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
1140 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1141 void print(::mlir::OpAsmPrinter &_odsPrinter);
1142 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1143public:
1144 private:
1145 static ::mlir::ParseResult parseInferredOrParsedType(
1146 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1147 ) {
1148 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1149 // If there is a comma, parse the `opType`
1150 mlir::Type type;
1151 if (parser.parseCustomTypeWithFallback(type)) {
1152 return mlir::failure();
1153 }
1154 opType = type;
1155 } else {
1156 // Otherwise, build the default type
1157 opType =
1158 parser.getBuilder().getIntegerType(1);
1159 }
1160 return mlir::success();
1161 }
1162
1163 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1164 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1165 ) {
1166 printer << (isFirst ? " : " : ", ");
1167 printer.printStrippedAttrOrType(opType);
1168 }
1169};
1170} // namespace boolean
1171} // namespace llzk
1172MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::NotBoolOp)
1173
1174namespace llzk {
1175namespace boolean {
1176
1177//===----------------------------------------------------------------------===//
1178// ::llzk::boolean::OrBoolOp declarations
1179//===----------------------------------------------------------------------===//
1180
1181namespace detail {
1183public:
1184protected:
1185 ::mlir::DictionaryAttr odsAttrs;
1186 ::std::optional<::mlir::OperationName> odsOpName;
1187 ::mlir::RegionRange odsRegions;
1188public:
1189 OrBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1190 odsOpName.emplace("bool.or", odsAttrs.getContext());
1191 }
1192
1193 OrBoolOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1194
1195 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1196 return {index, 1};
1197 }
1198
1199 ::mlir::DictionaryAttr getAttributes() {
1200 return odsAttrs;
1201 }
1202
1203};
1204} // namespace detail
1205template <typename RangeT>
1207 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1209public:
1210 OrBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1211
1212 OrBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : OrBoolOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1213
1214 OrBoolOpGenericAdaptor(RangeT values, const OrBoolOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1215
1216 template <typename LateInst = OrBoolOp, typename = std::enable_if_t<std::is_same_v<LateInst, OrBoolOp>>>
1217 OrBoolOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1218
1219 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1220 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1221 }
1222
1223 RangeT getODSOperands(unsigned index) {
1224 auto valueRange = getODSOperandIndexAndLength(index);
1225 return {std::next(odsOperands.begin(), valueRange.first),
1226 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1227 }
1228
1229 ValueT getLhs() {
1230 return (*getODSOperands(0).begin());
1231 }
1232
1233 ValueT getRhs() {
1234 return (*getODSOperands(1).begin());
1235 }
1236
1237 RangeT getOperands() {
1238 return odsOperands;
1239 }
1240
1241private:
1242 RangeT odsOperands;
1243};
1244class OrBoolOpAdaptor : public OrBoolOpGenericAdaptor<::mlir::ValueRange> {
1245public:
1248
1249 ::llvm::LogicalResult verify(::mlir::Location loc);
1250};
1251class OrBoolOp : public ::mlir::Op<OrBoolOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::NotFieldNative, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1252public:
1253 using Op::Op;
1254 using Op::print;
1256 template <typename RangeT>
1259 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1260 return {};
1261 }
1262
1263 static constexpr ::llvm::StringLiteral getOperationName() {
1264 return ::llvm::StringLiteral("bool.or");
1265 }
1266
1267 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1268 return {index, 1};
1269 }
1270
1271 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1272 auto valueRange = getODSOperandIndexAndLength(index);
1273 return {std::next(getOperation()->operand_begin(), valueRange.first),
1274 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1275 }
1276
1277 ::mlir::TypedValue<::mlir::Type> getLhs() {
1278 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1279 }
1280
1281 ::mlir::TypedValue<::mlir::Type> getRhs() {
1282 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
1283 }
1284
1285 ::mlir::OpOperand &getLhsMutable() {
1286 auto range = getODSOperandIndexAndLength(0);
1287 return getOperation()->getOpOperand(range.first);
1288 }
1289
1290 ::mlir::OpOperand &getRhsMutable() {
1291 auto range = getODSOperandIndexAndLength(1);
1292 return getOperation()->getOpOperand(range.first);
1293 }
1294
1295 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1296 return {index, 1};
1297 }
1298
1299 ::mlir::Operation::result_range getODSResults(unsigned index) {
1300 auto valueRange = getODSResultIndexAndLength(index);
1301 return {std::next(getOperation()->result_begin(), valueRange.first),
1302 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1303 }
1304
1305 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
1306 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
1307 }
1308
1309 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1310 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1311 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1312 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1313 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1314 ::llvm::LogicalResult verifyInvariantsImpl();
1315 ::llvm::LogicalResult verifyInvariants();
1316 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1317 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
1318 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1319 void print(::mlir::OpAsmPrinter &_odsPrinter);
1320 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1321public:
1322 private:
1323 static ::mlir::ParseResult parseInferredOrParsedType(
1324 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1325 ) {
1326 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1327 // If there is a comma, parse the `opType`
1328 mlir::Type type;
1329 if (parser.parseCustomTypeWithFallback(type)) {
1330 return mlir::failure();
1331 }
1332 opType = type;
1333 } else {
1334 // Otherwise, build the default type
1335 opType =
1336 parser.getBuilder().getIntegerType(1);
1337 }
1338 return mlir::success();
1339 }
1340
1341 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1342 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1343 ) {
1344 printer << (isFirst ? " : " : ", ");
1345 printer.printStrippedAttrOrType(opType);
1346 }
1347};
1348} // namespace boolean
1349} // namespace llzk
1350MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::OrBoolOp)
1351
1352namespace llzk {
1353namespace boolean {
1354
1355//===----------------------------------------------------------------------===//
1356// ::llzk::boolean::XorBoolOp declarations
1357//===----------------------------------------------------------------------===//
1358
1359namespace detail {
1361public:
1362protected:
1363 ::mlir::DictionaryAttr odsAttrs;
1364 ::std::optional<::mlir::OperationName> odsOpName;
1365 ::mlir::RegionRange odsRegions;
1366public:
1367 XorBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1368 odsOpName.emplace("bool.xor", odsAttrs.getContext());
1369 }
1370
1371 XorBoolOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1372
1373 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1374 return {index, 1};
1375 }
1376
1377 ::mlir::DictionaryAttr getAttributes() {
1378 return odsAttrs;
1379 }
1380
1381};
1382} // namespace detail
1383template <typename RangeT>
1385 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1387public:
1388 XorBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1389
1390 XorBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : XorBoolOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1391
1392 XorBoolOpGenericAdaptor(RangeT values, const XorBoolOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1393
1394 template <typename LateInst = XorBoolOp, typename = std::enable_if_t<std::is_same_v<LateInst, XorBoolOp>>>
1395 XorBoolOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1396
1397 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1398 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1399 }
1400
1401 RangeT getODSOperands(unsigned index) {
1402 auto valueRange = getODSOperandIndexAndLength(index);
1403 return {std::next(odsOperands.begin(), valueRange.first),
1404 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1405 }
1406
1407 ValueT getLhs() {
1408 return (*getODSOperands(0).begin());
1409 }
1410
1411 ValueT getRhs() {
1412 return (*getODSOperands(1).begin());
1413 }
1414
1415 RangeT getOperands() {
1416 return odsOperands;
1417 }
1418
1419private:
1420 RangeT odsOperands;
1421};
1422class XorBoolOpAdaptor : public XorBoolOpGenericAdaptor<::mlir::ValueRange> {
1423public:
1426
1427 ::llvm::LogicalResult verify(::mlir::Location loc);
1428};
1429class XorBoolOp : public ::mlir::Op<XorBoolOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::NotFieldNative, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsCommutative, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1430public:
1431 using Op::Op;
1432 using Op::print;
1434 template <typename RangeT>
1437 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1438 return {};
1439 }
1440
1441 static constexpr ::llvm::StringLiteral getOperationName() {
1442 return ::llvm::StringLiteral("bool.xor");
1443 }
1444
1445 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1446 return {index, 1};
1447 }
1448
1449 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1450 auto valueRange = getODSOperandIndexAndLength(index);
1451 return {std::next(getOperation()->operand_begin(), valueRange.first),
1452 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1453 }
1454
1455 ::mlir::TypedValue<::mlir::Type> getLhs() {
1456 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
1457 }
1458
1459 ::mlir::TypedValue<::mlir::Type> getRhs() {
1460 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
1461 }
1462
1463 ::mlir::OpOperand &getLhsMutable() {
1464 auto range = getODSOperandIndexAndLength(0);
1465 return getOperation()->getOpOperand(range.first);
1466 }
1467
1468 ::mlir::OpOperand &getRhsMutable() {
1469 auto range = getODSOperandIndexAndLength(1);
1470 return getOperation()->getOpOperand(range.first);
1471 }
1472
1473 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1474 return {index, 1};
1475 }
1476
1477 ::mlir::Operation::result_range getODSResults(unsigned index) {
1478 auto valueRange = getODSResultIndexAndLength(index);
1479 return {std::next(getOperation()->result_begin(), valueRange.first),
1480 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1481 }
1482
1483 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
1484 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
1485 }
1486
1487 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1488 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1489 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1490 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1491 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1492 ::llvm::LogicalResult verifyInvariantsImpl();
1493 ::llvm::LogicalResult verifyInvariants();
1494 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
1495 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
1496 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1497 void print(::mlir::OpAsmPrinter &_odsPrinter);
1498 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1499public:
1500 private:
1501 static ::mlir::ParseResult parseInferredOrParsedType(
1502 ::mlir::OpAsmParser &parser, ::mlir::Type &opType, bool isFirst
1503 ) {
1504 if (mlir::succeeded(isFirst ? parser.parseOptionalColon() : parser.parseOptionalComma())) {
1505 // If there is a comma, parse the `opType`
1506 mlir::Type type;
1507 if (parser.parseCustomTypeWithFallback(type)) {
1508 return mlir::failure();
1509 }
1510 opType = type;
1511 } else {
1512 // Otherwise, build the default type
1513 opType =
1514 parser.getBuilder().getIntegerType(1);
1515 }
1516 return mlir::success();
1517 }
1518
1519 static void printInferredOrParsedType(::mlir::OpAsmPrinter &printer,
1520 ::mlir::Operation *op, ::mlir::Type opType, bool isFirst
1521 ) {
1522 printer << (isFirst ? " : " : ", ");
1523 printer.printStrippedAttrOrType(opType);
1524 }
1525};
1526} // namespace boolean
1527} // namespace llzk
1528MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::XorBoolOp)
1529
1530namespace llzk {
1531namespace boolean {
1532
1533//===----------------------------------------------------------------------===//
1534// ::llzk::boolean::YieldOp declarations
1535//===----------------------------------------------------------------------===//
1536
1537namespace detail {
1539public:
1540protected:
1541 ::mlir::DictionaryAttr odsAttrs;
1542 ::std::optional<::mlir::OperationName> odsOpName;
1543 ::mlir::RegionRange odsRegions;
1544public:
1545 YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1546 odsOpName.emplace("bool.yield", odsAttrs.getContext());
1547 }
1548
1549 YieldOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1550
1551 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1552 return {index, 1};
1553 }
1554
1555 ::mlir::DictionaryAttr getAttributes() {
1556 return odsAttrs;
1557 }
1558
1559};
1560} // namespace detail
1561template <typename RangeT>
1563 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1565public:
1566 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1567
1568 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : YieldOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1569
1570 YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1571
1572 template <typename LateInst = YieldOp, typename = std::enable_if_t<std::is_same_v<LateInst, YieldOp>>>
1573 YieldOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1574
1575 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1576 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1577 }
1578
1579 RangeT getODSOperands(unsigned index) {
1580 auto valueRange = getODSOperandIndexAndLength(index);
1581 return {std::next(odsOperands.begin(), valueRange.first),
1582 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1583 }
1584
1585 ValueT getValue() {
1586 return (*getODSOperands(0).begin());
1587 }
1588
1589 RangeT getOperands() {
1590 return odsOperands;
1591 }
1592
1593private:
1594 RangeT odsOperands;
1595};
1596class YieldOpAdaptor : public YieldOpGenericAdaptor<::mlir::ValueRange> {
1597public:
1600
1601 ::llvm::LogicalResult verify(::mlir::Location loc);
1602};
1603class YieldOp : public ::mlir::Op<YieldOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::NotFieldNative, ::mlir::OpTrait::HasParent<ForAllOp, ExistsOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsTerminator, ::mlir::RegionBranchTerminatorOpInterface::Trait, ::mlir::OpTrait::ReturnLike> {
1604public:
1605 using Op::Op;
1606 using Op::print;
1608 template <typename RangeT>
1611 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1612 return {};
1613 }
1614
1615 static constexpr ::llvm::StringLiteral getOperationName() {
1616 return ::llvm::StringLiteral("bool.yield");
1617 }
1618
1619 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1620 return {index, 1};
1621 }
1622
1623 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1624 auto valueRange = getODSOperandIndexAndLength(index);
1625 return {std::next(getOperation()->operand_begin(), valueRange.first),
1626 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1627 }
1628
1629 ::mlir::TypedValue<::mlir::IntegerType> getValue() {
1630 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
1631 }
1632
1633 ::mlir::OpOperand &getValueMutable() {
1634 auto range = getODSOperandIndexAndLength(0);
1635 return getOperation()->getOpOperand(range.first);
1636 }
1637
1638 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1639 return {index, 1};
1640 }
1641
1642 ::mlir::Operation::result_range getODSResults(unsigned index) {
1643 auto valueRange = getODSResultIndexAndLength(index);
1644 return {std::next(getOperation()->result_begin(), valueRange.first),
1645 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1646 }
1647
1648 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
1649 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
1650 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1651 ::llvm::LogicalResult verifyInvariantsImpl();
1652 ::llvm::LogicalResult verifyInvariants();
1653 ::mlir::MutableOperandRange getMutableSuccessorOperands(::mlir::RegionBranchPoint point);
1654 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1655 void print(::mlir::OpAsmPrinter &_odsPrinter);
1656public:
1657};
1658} // namespace boolean
1659} // namespace llzk
1660MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::boolean::YieldOp)
1661
1662
1663#endif // GET_OP_CLASSES
1664
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:374
AndBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:398
AndBoolOpGenericAdaptor(RangeT values, const AndBoolOpGenericAdaptorBase &base)
Definition Ops.h.inc:402
AndBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:398
AndBoolOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:405
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:411
AndBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:400
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:407
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:459
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:71
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.h.inc:487
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:532
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:465
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:446
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:520
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:465
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:473
AndBoolOpAdaptor Adaptor
Definition Ops.h.inc:443
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:477
AndBoolOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:445
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:469
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:469
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:455
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:493
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:478
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:433
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:483
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:451
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:447
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:607
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:557
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:607
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:622
AssertOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:616
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:618
AssertOpGenericAdaptor(RangeT values, const AssertOpGenericAdaptorBase &base)
Definition Ops.h.inc:613
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:611
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:609
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:682
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:716
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:672
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:615
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition, ::mlir::StringAttr msg)
Definition Ops.cpp.inc:661
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:588
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:655
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:691
::mlir::StringAttr getMsgAttrName(::mlir::OperationName name)
Definition Ops.h.inc:664
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:635
::std::optional< ::llvm::StringRef > getMsg()
Definition Ops.cpp.inc:648
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:653
AssertOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:652
::mlir::StringAttr getMsgAttr()
Definition Ops.h.inc:710
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:668
void setMsg(::std::optional<::llvm::StringRef > attrValue)
Definition Ops.cpp.inc:653
void setMsgAttr(::mlir::StringAttr attr)
Definition Ops.h.inc:715
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:604
AssertOpAdaptor Adaptor
Definition Ops.h.inc:650
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:676
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:642
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:747
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:622
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:695
FoldAdaptor::Properties Properties
Definition Ops.h.inc:654
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:626
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:686
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:712
::mlir::Attribute removeMsgAttr()
Definition Ops.h.inc:720
::mlir::StringAttr getMsgAttrName()
Definition Ops.h.inc:660
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:695
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:565
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp:37
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:609
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:782
CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:820
CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:824
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:835
CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:820
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:831
CmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:822
CmpOpGenericAdaptor(RangeT values, const CmpOpGenericAdaptorBase &base)
Definition Ops.h.inc:826
CmpOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:829
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1110
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::boolean::FeltCmpPredicateAttr predicate, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:882
::mlir::TypedValue<::llzk::felt::FeltType > getLhs()
Definition Ops.h.inc:899
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:917
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:848
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:927
::mlir::StringAttr getPredicateAttrName()
Definition Ops.h.inc:877
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:885
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:921
CmpOpAdaptor Adaptor
Definition Ops.h.inc:867
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1026
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1038
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:835
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:870
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:814
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:889
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:852
::llzk::boolean::FeltCmpPredicate getPredicate()
Definition Ops.cpp.inc:873
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:991
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:912
void setPredicate(::llzk::boolean::FeltCmpPredicate attrValue)
Definition Ops.cpp.inc:878
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:872
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:907
::llzk::boolean::FeltCmpPredicateAttr getPredicateAttr()
Definition Ops.h.inc:940
CmpOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:869
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1030
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:893
FoldAdaptor::Properties Properties
Definition Ops.h.inc:871
void setPredicateAttr(::llzk::boolean::FeltCmpPredicateAttr attr)
Definition Ops.h.inc:945
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1095
::mlir::TypedValue<::llzk::felt::FeltType > getRhs()
Definition Ops.h.inc:903
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:868
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:140
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:830
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:841
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:861
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:791
::mlir::StringAttr getPredicateAttrName(::mlir::OperationName name)
Definition Ops.h.inc:881
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:102
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:126
ExistsOpGenericAdaptor(RangeT values, const ExistsOpGenericAdaptorBase &base)
Definition Ops.h.inc:106
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:104
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:102
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:115
ExistsOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:109
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:111
ExistsOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:145
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:151
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:184
::llvm::LogicalResult verify()
Definition Ops.cpp:277
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:174
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:146
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:218
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:232
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:155
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:224
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:178
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:189
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:159
void print(::mlir::OpAsmPrinter &p)
::mlir::Region & getRegion()
Definition Ops.h.inc:188
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value sort)
Definition Ops.cpp.inc:130
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:147
::mlir::OpOperand & getSortMutable()
Definition Ops.h.inc:169
::mlir::TypedValue<::llzk::array::ArrayType > getSort()
Definition Ops.h.inc:165
ExistsOpAdaptor Adaptor
Definition Ops.h.inc:143
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:250
ForAllOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:254
ForAllOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:256
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:263
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:267
ForAllOpGenericAdaptor(RangeT values, const ForAllOpGenericAdaptorBase &base)
Definition Ops.h.inc:258
ForAllOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:254
ForAllOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:261
ForAllOpAdaptor Adaptor
Definition Ops.h.inc:295
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp:267
::mlir::Region & getRegion()
Definition Ops.h.inc:340
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:342
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:336
ForAllOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:297
::mlir::TypedValue<::llzk::array::ArrayType > getSort()
Definition Ops.h.inc:317
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:298
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:299
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:330
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value sort)
Definition Ops.cpp.inc:254
::mlir::OpOperand & getSortMutable()
Definition Ops.h.inc:321
::llvm::LogicalResult verify()
Definition Ops.cpp:265
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:313
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:303
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:307
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:348
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:311
void print(::mlir::OpAsmPrinter &p)
Definition Ops.cpp:271
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:326
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:356
NotBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1045
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1128
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1058
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1054
NotBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1045
NotBoolOpGenericAdaptor(RangeT values, const NotBoolOpGenericAdaptorBase &base)
Definition Ops.h.inc:1049
NotBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1047
NotBoolOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1052
NotBoolOpAdaptor Adaptor
Definition Ops.h.inc:1086
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1089
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1184
::mlir::TypedValue<::mlir::Type > getOperand()
Definition Ops.h.inc:1108
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1246
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1220
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1208
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1254
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value operand)
Definition Ops.cpp.inc:1132
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1090
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1094
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1117
NotBoolOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1088
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1212
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:110
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1102
::mlir::OpOperand & getOperandMutable()
Definition Ops.h.inc:1112
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:1127
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1098
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1121
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1272
OrBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1210
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1223
OrBoolOpGenericAdaptor(RangeT values, const OrBoolOpGenericAdaptorBase &base)
Definition Ops.h.inc:1214
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1219
OrBoolOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1217
OrBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1210
OrBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1212
OrBoolOpAdaptor Adaptor
Definition Ops.h.inc:1255
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1331
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1271
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1258
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1430
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1418
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:84
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1367
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1277
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1276
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1267
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:1285
OrBoolOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1257
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:1290
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1363
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1375
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1259
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1281
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1299
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1263
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:1305
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1295
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1448
XorBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1388
XorBoolOpGenericAdaptor(RangeT values, const XorBoolOpGenericAdaptorBase &base)
Definition Ops.h.inc:1392
XorBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1390
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1397
XorBoolOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1395
XorBoolOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1388
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1401
::mlir::OpOperand & getLhsMutable()
Definition Ops.h.inc:1463
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1436
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1437
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1507
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:1483
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1539
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1445
::mlir::OpOperand & getRhsMutable()
Definition Ops.h.inc:1468
XorBoolOpAdaptor Adaptor
Definition Ops.h.inc:1433
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1473
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:1543
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1449
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition Ops.cpp:97
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1477
::mlir::TypedValue<::mlir::Type > getLhs()
Definition Ops.h.inc:1455
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1594
::mlir::TypedValue<::mlir::Type > getRhs()
Definition Ops.h.inc:1459
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition Ops.cpp.inc:1452
XorBoolOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1435
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1441
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1606
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1551
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1624
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1566
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1575
YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base)
Definition Ops.h.inc:1570
YieldOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1573
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1579
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1568
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1566
::mlir::TypedValue<::mlir::IntegerType > getValue()
Definition Ops.h.inc:1629
YieldOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1609
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1619
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1610
::mlir::MutableOperandRange getMutableSuccessorOperands(::mlir::RegionBranchPoint point)
Definition Ops.cpp.inc:1689
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1663
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1623
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1646
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1615
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1638
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
Definition Ops.cpp.inc:1628
::mlir::OpOperand & getValueMutable()
Definition Ops.h.inc:1633
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1642
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1611
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1682
YieldOpAdaptor Adaptor
Definition Ops.h.inc:1607
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1659
AndBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:377
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:383
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:374
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:572
AssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:576
::std::optional< ::llvm::StringRef > getMsg()
Definition Ops.cpp.inc:549
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:582
::llzk::boolean::FeltCmpPredicateAttr getPredicateAttr()
Definition Ops.h.inc:807
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:785
CmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:789
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:795
::llzk::boolean::FeltCmpPredicate getPredicate()
Definition Ops.cpp.inc:774
ExistsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:73
ExistsOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:77
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:79
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:70
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:231
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:222
ForAllOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:225
ForAllOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:229
NotBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1024
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1021
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1030
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1195
OrBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1189
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1186
XorBoolOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1367
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1373
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1364
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1542
YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1545
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1551
static FeltType get(::mlir::MLIRContext *context, ::mlir::StringAttr fieldName)
Definition Types.cpp.inc:67
void setMsg(const ::mlir::StringAttr &propValue)
Definition Ops.h.inc:558
::llzk::boolean::FeltCmpPredicateAttr predicateTy
Definition Ops.h.inc:764
void setPredicate(const ::llzk::boolean::FeltCmpPredicateAttr &propValue)
Definition Ops.h.inc:771