LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
SMT.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: SMT.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10namespace llzk {
11namespace smt {
12class AndOp;
13} // namespace smt
14} // namespace llzk
15namespace llzk {
16namespace smt {
17class ApplyFuncOp;
18} // namespace smt
19} // namespace llzk
20namespace llzk {
21namespace smt {
23} // namespace smt
24} // namespace llzk
25namespace llzk {
26namespace smt {
27class ArraySelectOp;
28} // namespace smt
29} // namespace llzk
30namespace llzk {
31namespace smt {
32class ArrayStoreOp;
33} // namespace smt
34} // namespace llzk
35namespace llzk {
36namespace smt {
37class AssertOp;
38} // namespace smt
39} // namespace llzk
40namespace llzk {
41namespace smt {
42class BV2IntOp;
43} // namespace smt
44} // namespace llzk
45namespace llzk {
46namespace smt {
47class BVAShrOp;
48} // namespace smt
49} // namespace llzk
50namespace llzk {
51namespace smt {
52class BVAddOp;
53} // namespace smt
54} // namespace llzk
55namespace llzk {
56namespace smt {
57class BVAndOp;
58} // namespace smt
59} // namespace llzk
60namespace llzk {
61namespace smt {
62class BVCmpOp;
63} // namespace smt
64} // namespace llzk
65namespace llzk {
66namespace smt {
67class BVConstantOp;
68} // namespace smt
69} // namespace llzk
70namespace llzk {
71namespace smt {
72class BVLShrOp;
73} // namespace smt
74} // namespace llzk
75namespace llzk {
76namespace smt {
77class BVMulOp;
78} // namespace smt
79} // namespace llzk
80namespace llzk {
81namespace smt {
82class BVNegOp;
83} // namespace smt
84} // namespace llzk
85namespace llzk {
86namespace smt {
87class BVNotOp;
88} // namespace smt
89} // namespace llzk
90namespace llzk {
91namespace smt {
92class BVOrOp;
93} // namespace smt
94} // namespace llzk
95namespace llzk {
96namespace smt {
97class BVSDivOp;
98} // namespace smt
99} // namespace llzk
100namespace llzk {
101namespace smt {
102class BVSModOp;
103} // namespace smt
104} // namespace llzk
105namespace llzk {
106namespace smt {
107class BVSRemOp;
108} // namespace smt
109} // namespace llzk
110namespace llzk {
111namespace smt {
112class BVShlOp;
113} // namespace smt
114} // namespace llzk
115namespace llzk {
116namespace smt {
117class BVUDivOp;
118} // namespace smt
119} // namespace llzk
120namespace llzk {
121namespace smt {
122class BVURemOp;
123} // namespace smt
124} // namespace llzk
125namespace llzk {
126namespace smt {
127class BVXOrOp;
128} // namespace smt
129} // namespace llzk
130namespace llzk {
131namespace smt {
132class BoolConstantOp;
133} // namespace smt
134} // namespace llzk
135namespace llzk {
136namespace smt {
137class CheckOp;
138} // namespace smt
139} // namespace llzk
140namespace llzk {
141namespace smt {
142class ConcatOp;
143} // namespace smt
144} // namespace llzk
145namespace llzk {
146namespace smt {
147class DeclareFunOp;
148} // namespace smt
149} // namespace llzk
150namespace llzk {
151namespace smt {
152class DistinctOp;
153} // namespace smt
154} // namespace llzk
155namespace llzk {
156namespace smt {
157class EqOp;
158} // namespace smt
159} // namespace llzk
160namespace llzk {
161namespace smt {
162class ExistsOp;
163} // namespace smt
164} // namespace llzk
165namespace llzk {
166namespace smt {
167class ExtractOp;
168} // namespace smt
169} // namespace llzk
170namespace llzk {
171namespace smt {
172class ForallOp;
173} // namespace smt
174} // namespace llzk
175namespace llzk {
176namespace smt {
177class ImpliesOp;
178} // namespace smt
179} // namespace llzk
180namespace llzk {
181namespace smt {
182class Int2BVOp;
183} // namespace smt
184} // namespace llzk
185namespace llzk {
186namespace smt {
187class IntAbsOp;
188} // namespace smt
189} // namespace llzk
190namespace llzk {
191namespace smt {
192class IntAddOp;
193} // namespace smt
194} // namespace llzk
195namespace llzk {
196namespace smt {
197class IntCmpOp;
198} // namespace smt
199} // namespace llzk
200namespace llzk {
201namespace smt {
202class IntConstantOp;
203} // namespace smt
204} // namespace llzk
205namespace llzk {
206namespace smt {
207class IntDivOp;
208} // namespace smt
209} // namespace llzk
210namespace llzk {
211namespace smt {
212class IntModOp;
213} // namespace smt
214} // namespace llzk
215namespace llzk {
216namespace smt {
217class IntMulOp;
218} // namespace smt
219} // namespace llzk
220namespace llzk {
221namespace smt {
222class IntNegOp;
223} // namespace smt
224} // namespace llzk
225namespace llzk {
226namespace smt {
227class IntSubOp;
228} // namespace smt
229} // namespace llzk
230namespace llzk {
231namespace smt {
232class IteOp;
233} // namespace smt
234} // namespace llzk
235namespace llzk {
236namespace smt {
237class NotOp;
238} // namespace smt
239} // namespace llzk
240namespace llzk {
241namespace smt {
242class OrOp;
243} // namespace smt
244} // namespace llzk
245namespace llzk {
246namespace smt {
247class PopOp;
248} // namespace smt
249} // namespace llzk
250namespace llzk {
251namespace smt {
252class PushOp;
253} // namespace smt
254} // namespace llzk
255namespace llzk {
256namespace smt {
257class RepeatOp;
258} // namespace smt
259} // namespace llzk
260namespace llzk {
261namespace smt {
262class ResetOp;
263} // namespace smt
264} // namespace llzk
265namespace llzk {
266namespace smt {
267class SetLogicOp;
268} // namespace smt
269} // namespace llzk
270namespace llzk {
271namespace smt {
272class SolverOp;
273} // namespace smt
274} // namespace llzk
275namespace llzk {
276namespace smt {
277class XOrOp;
278} // namespace smt
279} // namespace llzk
280namespace llzk {
281namespace smt {
282class YieldOp;
283} // namespace smt
284} // namespace llzk
285#ifdef GET_OP_CLASSES
286#undef GET_OP_CLASSES
287
288namespace llzk {
289namespace smt {
290
291//===----------------------------------------------------------------------===//
292// ::llzk::smt::AndOp declarations
293//===----------------------------------------------------------------------===//
294
295namespace detail {
297public:
298protected:
299 ::mlir::DictionaryAttr odsAttrs;
300 ::std::optional<::mlir::OperationName> odsOpName;
301 ::mlir::RegionRange odsRegions;
302public:
303 AndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
304 odsOpName.emplace("smt.and", odsAttrs.getContext());
305 }
306
307 AndOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
308
309 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
310 ::mlir::DictionaryAttr getAttributes() {
311 return odsAttrs;
312 }
313
314};
315} // namespace detail
316template <typename RangeT>
318 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
320public:
321 AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
322
323 AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AndOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
324
325 AndOpGenericAdaptor(RangeT values, const AndOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
326
327 template <typename LateInst = AndOp, typename = std::enable_if_t<std::is_same_v<LateInst, AndOp>>>
328 AndOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
329
330 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
331 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
332 }
333
334 RangeT getODSOperands(unsigned index) {
335 auto valueRange = getODSOperandIndexAndLength(index);
336 return {std::next(odsOperands.begin(), valueRange.first),
337 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
338 }
339
340 RangeT getInputs() {
341 return getODSOperands(0);
342 }
343
344 RangeT getOperands() {
345 return odsOperands;
346 }
347
348private:
349 RangeT odsOperands;
350};
351class AndOpAdaptor : public AndOpGenericAdaptor<::mlir::ValueRange> {
352public:
355
356 ::llvm::LogicalResult verify(::mlir::Location loc);
357};
358class AndOp : public ::mlir::Op<AndOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
359public:
360 using Op::Op;
361 using Op::print;
363 template <typename RangeT>
366 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
367 return {};
368 }
369
370 static constexpr ::llvm::StringLiteral getOperationName() {
371 return ::llvm::StringLiteral("smt.and");
372 }
373
374 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
375 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
376 auto valueRange = getODSOperandIndexAndLength(index);
377 return {std::next(getOperation()->operand_begin(), valueRange.first),
378 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
379 }
380
381 ::mlir::Operation::operand_range getInputs() {
382 return getODSOperands(0);
383 }
384
385 ::mlir::MutableOperandRange getInputsMutable();
386 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
387 return {index, 1};
388 }
389
390 ::mlir::Operation::result_range getODSResults(unsigned index) {
391 auto valueRange = getODSResultIndexAndLength(index);
392 return {std::next(getOperation()->result_begin(), valueRange.first),
393 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
394 }
395
396 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
397 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
398 }
399
400 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
401 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
402 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
403 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
404 ::llvm::LogicalResult verifyInvariantsImpl();
405 ::llvm::LogicalResult verifyInvariants();
406 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);
407 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
408 void print(::mlir::OpAsmPrinter &_odsPrinter);
409 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
410public:
411};
412} // namespace smt
413} // namespace llzk
414MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::AndOp)
415
416namespace llzk {
417namespace smt {
418
419//===----------------------------------------------------------------------===//
420// ::llzk::smt::ApplyFuncOp declarations
421//===----------------------------------------------------------------------===//
422
423namespace detail {
425public:
426protected:
427 ::mlir::DictionaryAttr odsAttrs;
428 ::std::optional<::mlir::OperationName> odsOpName;
429 ::mlir::RegionRange odsRegions;
430public:
431 ApplyFuncOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
432 odsOpName.emplace("smt.apply_func", odsAttrs.getContext());
433 }
434
435 ApplyFuncOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
436
437 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
438 ::mlir::DictionaryAttr getAttributes() {
439 return odsAttrs;
440 }
441
442};
443} // namespace detail
444template <typename RangeT>
446 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
448public:
449 ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
450
451 ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ApplyFuncOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
452
453 ApplyFuncOpGenericAdaptor(RangeT values, const ApplyFuncOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
454
455 template <typename LateInst = ApplyFuncOp, typename = std::enable_if_t<std::is_same_v<LateInst, ApplyFuncOp>>>
456 ApplyFuncOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
457
458 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
459 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
460 }
461
462 RangeT getODSOperands(unsigned index) {
463 auto valueRange = getODSOperandIndexAndLength(index);
464 return {std::next(odsOperands.begin(), valueRange.first),
465 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
466 }
467
468 ValueT getFunc() {
469 return (*getODSOperands(0).begin());
470 }
471
472 RangeT getArgs() {
473 return getODSOperands(1);
474 }
475
476 RangeT getOperands() {
477 return odsOperands;
478 }
479
480private:
481 RangeT odsOperands;
482};
483class ApplyFuncOpAdaptor : public ApplyFuncOpGenericAdaptor<::mlir::ValueRange> {
484public:
487
488 ::llvm::LogicalResult verify(::mlir::Location loc);
489};
490class ApplyFuncOp : public ::mlir::Op<ApplyFuncOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<1>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
491public:
492 using Op::Op;
493 using Op::print;
495 template <typename RangeT>
498 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
499 return {};
500 }
501
502 static constexpr ::llvm::StringLiteral getOperationName() {
503 return ::llvm::StringLiteral("smt.apply_func");
504 }
505
506 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
507 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
508 auto valueRange = getODSOperandIndexAndLength(index);
509 return {std::next(getOperation()->operand_begin(), valueRange.first),
510 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
511 }
512
513 ::mlir::TypedValue<::llzk::smt::SMTFuncType> getFunc() {
514 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::SMTFuncType>>(*getODSOperands(0).begin());
515 }
516
517 ::mlir::Operation::operand_range getArgs() {
518 return getODSOperands(1);
519 }
520
521 ::mlir::OpOperand &getFuncMutable() {
522 auto range = getODSOperandIndexAndLength(0);
523 return getOperation()->getOpOperand(range.first);
524 }
525
526 ::mlir::MutableOperandRange getArgsMutable();
527 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
528 return {index, 1};
529 }
530
531 ::mlir::Operation::result_range getODSResults(unsigned index) {
532 auto valueRange = getODSResultIndexAndLength(index);
533 return {std::next(getOperation()->result_begin(), valueRange.first),
534 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
535 }
536
537 ::mlir::TypedValue<::mlir::Type> getResult() {
538 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
539 }
540
541 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value func, ::mlir::ValueRange args);
542 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value func, ::mlir::ValueRange args);
543 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value func, ::mlir::ValueRange args);
544 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
545 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
546 ::llvm::LogicalResult verifyInvariantsImpl();
547 ::llvm::LogicalResult verifyInvariants();
548 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);
549 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
550 void print(::mlir::OpAsmPrinter &_odsPrinter);
551 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
552public:
553};
554} // namespace smt
555} // namespace llzk
556MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ApplyFuncOp)
557
558namespace llzk {
559namespace smt {
560
561//===----------------------------------------------------------------------===//
562// ::llzk::smt::ArrayBroadcastOp declarations
563//===----------------------------------------------------------------------===//
564
565namespace detail {
567public:
568protected:
569 ::mlir::DictionaryAttr odsAttrs;
570 ::std::optional<::mlir::OperationName> odsOpName;
571 ::mlir::RegionRange odsRegions;
572public:
573 ArrayBroadcastOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
574 odsOpName.emplace("smt.array.broadcast", odsAttrs.getContext());
575 }
576
577 ArrayBroadcastOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
578
579 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
580 return {index, 1};
581 }
582
583 ::mlir::DictionaryAttr getAttributes() {
584 return odsAttrs;
585 }
586
587};
588} // namespace detail
589template <typename RangeT>
591 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
593public:
594 ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
595
596 ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArrayBroadcastOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
597
598 ArrayBroadcastOpGenericAdaptor(RangeT values, const ArrayBroadcastOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
599
600 template <typename LateInst = ArrayBroadcastOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArrayBroadcastOp>>>
601 ArrayBroadcastOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
602
603 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
604 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
605 }
606
607 RangeT getODSOperands(unsigned index) {
608 auto valueRange = getODSOperandIndexAndLength(index);
609 return {std::next(odsOperands.begin(), valueRange.first),
610 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
611 }
612
613 ValueT getValue() {
614 return (*getODSOperands(0).begin());
615 }
616
617 RangeT getOperands() {
618 return odsOperands;
619 }
620
621private:
622 RangeT odsOperands;
623};
624class ArrayBroadcastOpAdaptor : public ArrayBroadcastOpGenericAdaptor<::mlir::ValueRange> {
625public:
628
629 ::llvm::LogicalResult verify(::mlir::Location loc);
630};
631class ArrayBroadcastOp : public ::mlir::Op<ArrayBroadcastOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::ArrayType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait> {
632public:
633 using Op::Op;
634 using Op::print;
636 template <typename RangeT>
639 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
640 return {};
641 }
642
643 static constexpr ::llvm::StringLiteral getOperationName() {
644 return ::llvm::StringLiteral("smt.array.broadcast");
645 }
646
647 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
648 return {index, 1};
649 }
650
651 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
652 auto valueRange = getODSOperandIndexAndLength(index);
653 return {std::next(getOperation()->operand_begin(), valueRange.first),
654 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
655 }
656
657 ::mlir::TypedValue<::mlir::Type> getValue() {
658 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
659 }
660
661 ::mlir::OpOperand &getValueMutable() {
662 auto range = getODSOperandIndexAndLength(0);
663 return getOperation()->getOpOperand(range.first);
664 }
665
666 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
667 return {index, 1};
668 }
669
670 ::mlir::Operation::result_range getODSResults(unsigned index) {
671 auto valueRange = getODSResultIndexAndLength(index);
672 return {std::next(getOperation()->result_begin(), valueRange.first),
673 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
674 }
675
676 ::mlir::TypedValue<::llzk::smt::ArrayType> getResult() {
677 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSResults(0).begin());
678 }
679
680 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value);
681 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
682 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
683 ::llvm::LogicalResult verifyInvariantsImpl();
684 ::llvm::LogicalResult verifyInvariants();
685 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
686 void print(::mlir::OpAsmPrinter &_odsPrinter);
687 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
688public:
689};
690} // namespace smt
691} // namespace llzk
692MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ArrayBroadcastOp)
693
694namespace llzk {
695namespace smt {
696
697//===----------------------------------------------------------------------===//
698// ::llzk::smt::ArraySelectOp declarations
699//===----------------------------------------------------------------------===//
700
701namespace detail {
703public:
704protected:
705 ::mlir::DictionaryAttr odsAttrs;
706 ::std::optional<::mlir::OperationName> odsOpName;
707 ::mlir::RegionRange odsRegions;
708public:
709 ArraySelectOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
710 odsOpName.emplace("smt.array.select", odsAttrs.getContext());
711 }
712
713 ArraySelectOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
714
715 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
716 return {index, 1};
717 }
718
719 ::mlir::DictionaryAttr getAttributes() {
720 return odsAttrs;
721 }
722
723};
724} // namespace detail
725template <typename RangeT>
727 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
729public:
730 ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
731
732 ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArraySelectOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
733
734 ArraySelectOpGenericAdaptor(RangeT values, const ArraySelectOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
735
736 template <typename LateInst = ArraySelectOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArraySelectOp>>>
737 ArraySelectOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
738
739 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
740 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
741 }
742
743 RangeT getODSOperands(unsigned index) {
744 auto valueRange = getODSOperandIndexAndLength(index);
745 return {std::next(odsOperands.begin(), valueRange.first),
746 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
747 }
748
749 ValueT getArray() {
750 return (*getODSOperands(0).begin());
751 }
752
753 ValueT getIndex() {
754 return (*getODSOperands(1).begin());
755 }
756
757 RangeT getOperands() {
758 return odsOperands;
759 }
760
761private:
762 RangeT odsOperands;
763};
764class ArraySelectOpAdaptor : public ArraySelectOpGenericAdaptor<::mlir::ValueRange> {
765public:
768
769 ::llvm::LogicalResult verify(::mlir::Location loc);
770};
771class ArraySelectOp : public ::mlir::Op<ArraySelectOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
772public:
773 using Op::Op;
774 using Op::print;
776 template <typename RangeT>
779 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
780 return {};
781 }
782
783 static constexpr ::llvm::StringLiteral getOperationName() {
784 return ::llvm::StringLiteral("smt.array.select");
785 }
786
787 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
788 return {index, 1};
789 }
790
791 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
792 auto valueRange = getODSOperandIndexAndLength(index);
793 return {std::next(getOperation()->operand_begin(), valueRange.first),
794 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
795 }
796
797 ::mlir::TypedValue<::llzk::smt::ArrayType> getArray() {
798 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSOperands(0).begin());
799 }
800
801 ::mlir::TypedValue<::mlir::Type> getIndex() {
802 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
803 }
804
805 ::mlir::OpOperand &getArrayMutable() {
806 auto range = getODSOperandIndexAndLength(0);
807 return getOperation()->getOpOperand(range.first);
808 }
809
810 ::mlir::OpOperand &getIndexMutable() {
811 auto range = getODSOperandIndexAndLength(1);
812 return getOperation()->getOpOperand(range.first);
813 }
814
815 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
816 return {index, 1};
817 }
818
819 ::mlir::Operation::result_range getODSResults(unsigned index) {
820 auto valueRange = getODSResultIndexAndLength(index);
821 return {std::next(getOperation()->result_begin(), valueRange.first),
822 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
823 }
824
825 ::mlir::TypedValue<::mlir::Type> getResult() {
826 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
827 }
828
829 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index);
830 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value array, ::mlir::Value index);
831 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value array, ::mlir::Value index);
832 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
833 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
834 ::llvm::LogicalResult verifyInvariantsImpl();
835 ::llvm::LogicalResult verifyInvariants();
836 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);
837 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
838 void print(::mlir::OpAsmPrinter &_odsPrinter);
839 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
840public:
841};
842} // namespace smt
843} // namespace llzk
844MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ArraySelectOp)
845
846namespace llzk {
847namespace smt {
848
849//===----------------------------------------------------------------------===//
850// ::llzk::smt::ArrayStoreOp declarations
851//===----------------------------------------------------------------------===//
852
853namespace detail {
855public:
856protected:
857 ::mlir::DictionaryAttr odsAttrs;
858 ::std::optional<::mlir::OperationName> odsOpName;
859 ::mlir::RegionRange odsRegions;
860public:
861 ArrayStoreOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
862 odsOpName.emplace("smt.array.store", odsAttrs.getContext());
863 }
864
865 ArrayStoreOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
866
867 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
868 return {index, 1};
869 }
870
871 ::mlir::DictionaryAttr getAttributes() {
872 return odsAttrs;
873 }
874
875};
876} // namespace detail
877template <typename RangeT>
879 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
881public:
882 ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
883
884 ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArrayStoreOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
885
886 ArrayStoreOpGenericAdaptor(RangeT values, const ArrayStoreOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
887
888 template <typename LateInst = ArrayStoreOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArrayStoreOp>>>
889 ArrayStoreOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
890
891 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
892 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
893 }
894
895 RangeT getODSOperands(unsigned index) {
896 auto valueRange = getODSOperandIndexAndLength(index);
897 return {std::next(odsOperands.begin(), valueRange.first),
898 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
899 }
900
901 ValueT getArray() {
902 return (*getODSOperands(0).begin());
903 }
904
905 ValueT getIndex() {
906 return (*getODSOperands(1).begin());
907 }
908
909 ValueT getValue() {
910 return (*getODSOperands(2).begin());
911 }
912
913 RangeT getOperands() {
914 return odsOperands;
915 }
916
917private:
918 RangeT odsOperands;
919};
920class ArrayStoreOpAdaptor : public ArrayStoreOpGenericAdaptor<::mlir::ValueRange> {
921public:
924
925 ::llvm::LogicalResult verify(::mlir::Location loc);
926};
927class ArrayStoreOp : public ::mlir::Op<ArrayStoreOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::ArrayType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<3>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
928public:
929 using Op::Op;
930 using Op::print;
932 template <typename RangeT>
935 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
936 return {};
937 }
938
939 static constexpr ::llvm::StringLiteral getOperationName() {
940 return ::llvm::StringLiteral("smt.array.store");
941 }
942
943 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
944 return {index, 1};
945 }
946
947 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
948 auto valueRange = getODSOperandIndexAndLength(index);
949 return {std::next(getOperation()->operand_begin(), valueRange.first),
950 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
951 }
952
953 ::mlir::TypedValue<::llzk::smt::ArrayType> getArray() {
954 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSOperands(0).begin());
955 }
956
957 ::mlir::TypedValue<::mlir::Type> getIndex() {
958 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
959 }
960
961 ::mlir::TypedValue<::mlir::Type> getValue() {
962 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(2).begin());
963 }
964
965 ::mlir::OpOperand &getArrayMutable() {
966 auto range = getODSOperandIndexAndLength(0);
967 return getOperation()->getOpOperand(range.first);
968 }
969
970 ::mlir::OpOperand &getIndexMutable() {
971 auto range = getODSOperandIndexAndLength(1);
972 return getOperation()->getOpOperand(range.first);
973 }
974
975 ::mlir::OpOperand &getValueMutable() {
976 auto range = getODSOperandIndexAndLength(2);
977 return getOperation()->getOpOperand(range.first);
978 }
979
980 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
981 return {index, 1};
982 }
983
984 ::mlir::Operation::result_range getODSResults(unsigned index) {
985 auto valueRange = getODSResultIndexAndLength(index);
986 return {std::next(getOperation()->result_begin(), valueRange.first),
987 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
988 }
989
990 ::mlir::TypedValue<::llzk::smt::ArrayType> getResult() {
991 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSResults(0).begin());
992 }
993
994 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value);
995 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value);
996 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value);
997 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
998 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
999 ::llvm::LogicalResult verifyInvariantsImpl();
1000 ::llvm::LogicalResult verifyInvariants();
1001 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);
1002 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1003 void print(::mlir::OpAsmPrinter &_odsPrinter);
1004 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1005public:
1006};
1007} // namespace smt
1008} // namespace llzk
1009MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ArrayStoreOp)
1010
1011namespace llzk {
1012namespace smt {
1013
1014//===----------------------------------------------------------------------===//
1015// ::llzk::smt::AssertOp declarations
1016//===----------------------------------------------------------------------===//
1017
1018namespace detail {
1020public:
1021protected:
1022 ::mlir::DictionaryAttr odsAttrs;
1023 ::std::optional<::mlir::OperationName> odsOpName;
1024 ::mlir::RegionRange odsRegions;
1025public:
1026 AssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1027 odsOpName.emplace("smt.assert", odsAttrs.getContext());
1028 }
1029
1030 AssertOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1031
1032 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1033 return {index, 1};
1034 }
1035
1036 ::mlir::DictionaryAttr getAttributes() {
1037 return odsAttrs;
1038 }
1039
1040};
1041} // namespace detail
1042template <typename RangeT>
1044 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1046public:
1047 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1048
1049 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AssertOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1050
1051 AssertOpGenericAdaptor(RangeT values, const AssertOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1052
1053 template <typename LateInst = AssertOp, typename = std::enable_if_t<std::is_same_v<LateInst, AssertOp>>>
1054 AssertOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1055
1056 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1057 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1058 }
1059
1060 RangeT getODSOperands(unsigned index) {
1061 auto valueRange = getODSOperandIndexAndLength(index);
1062 return {std::next(odsOperands.begin(), valueRange.first),
1063 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1064 }
1065
1066 ValueT getInput() {
1067 return (*getODSOperands(0).begin());
1068 }
1069
1070 RangeT getOperands() {
1071 return odsOperands;
1072 }
1073
1074private:
1075 RangeT odsOperands;
1076};
1077class AssertOpAdaptor : public AssertOpGenericAdaptor<::mlir::ValueRange> {
1078public:
1081
1082 ::llvm::LogicalResult verify(::mlir::Location loc);
1083};
1084class AssertOp : public ::mlir::Op<AssertOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants> {
1085public:
1086 using Op::Op;
1087 using Op::print;
1089 template <typename RangeT>
1092 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1093 return {};
1094 }
1095
1096 static constexpr ::llvm::StringLiteral getOperationName() {
1097 return ::llvm::StringLiteral("smt.assert");
1098 }
1099
1100 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1101 return {index, 1};
1102 }
1103
1104 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1105 auto valueRange = getODSOperandIndexAndLength(index);
1106 return {std::next(getOperation()->operand_begin(), valueRange.first),
1107 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1108 }
1109
1110 ::mlir::TypedValue<::llzk::smt::BoolType> getInput() {
1111 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
1112 }
1113
1114 ::mlir::OpOperand &getInputMutable() {
1115 auto range = getODSOperandIndexAndLength(0);
1116 return getOperation()->getOpOperand(range.first);
1117 }
1118
1119 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1120 return {index, 1};
1121 }
1122
1123 ::mlir::Operation::result_range getODSResults(unsigned index) {
1124 auto valueRange = getODSResultIndexAndLength(index);
1125 return {std::next(getOperation()->result_begin(), valueRange.first),
1126 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1127 }
1128
1129 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
1130 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
1131 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1132 ::llvm::LogicalResult verifyInvariantsImpl();
1133 ::llvm::LogicalResult verifyInvariants();
1134 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1135 void print(::mlir::OpAsmPrinter &_odsPrinter);
1136public:
1137};
1138} // namespace smt
1139} // namespace llzk
1140MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::AssertOp)
1141
1142namespace llzk {
1143namespace smt {
1144
1145//===----------------------------------------------------------------------===//
1146// ::llzk::smt::BV2IntOp declarations
1147//===----------------------------------------------------------------------===//
1148
1149namespace detail {
1151public:
1152 struct Properties {
1153 using is_signedTy = ::mlir::UnitAttr;
1155
1157 auto &propStorage = this->is_signed;
1158 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
1159 }
1160 void setIsSigned(const ::mlir::UnitAttr &propValue) {
1161 this->is_signed = propValue;
1162 }
1163 bool operator==(const Properties &rhs) const {
1164 return
1165 rhs.is_signed == this->is_signed &&
1166 true;
1167 }
1168 bool operator!=(const Properties &rhs) const {
1169 return !(*this == rhs);
1170 }
1171 };
1172protected:
1173 ::mlir::DictionaryAttr odsAttrs;
1174 ::std::optional<::mlir::OperationName> odsOpName;
1176 ::mlir::RegionRange odsRegions;
1177public:
1178 BV2IntOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1179 odsOpName.emplace("smt.bv2int", odsAttrs.getContext());
1180 }
1181
1183
1184 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1185 return {index, 1};
1186 }
1187
1189 return properties;
1190 }
1191
1192 ::mlir::DictionaryAttr getAttributes() {
1193 return odsAttrs;
1194 }
1195
1196 ::mlir::UnitAttr getIsSignedAttr();
1197 bool getIsSigned();
1198};
1199} // namespace detail
1200template <typename RangeT>
1202 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1204public:
1205 BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1206
1207 BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BV2IntOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1208
1209 BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BV2IntOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1210
1211 BV2IntOpGenericAdaptor(RangeT values, const BV2IntOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1212
1213 template <typename LateInst = BV2IntOp, typename = std::enable_if_t<std::is_same_v<LateInst, BV2IntOp>>>
1214 BV2IntOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1215
1216 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1217 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1218 }
1219
1220 RangeT getODSOperands(unsigned index) {
1221 auto valueRange = getODSOperandIndexAndLength(index);
1222 return {std::next(odsOperands.begin(), valueRange.first),
1223 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1224 }
1225
1226 ValueT getInput() {
1227 return (*getODSOperands(0).begin());
1228 }
1229
1230 RangeT getOperands() {
1231 return odsOperands;
1232 }
1233
1234private:
1235 RangeT odsOperands;
1236};
1237class BV2IntOpAdaptor : public BV2IntOpGenericAdaptor<::mlir::ValueRange> {
1238public:
1241
1242 ::llvm::LogicalResult verify(::mlir::Location loc);
1243};
1244class BV2IntOp : public ::mlir::Op<BV2IntOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
1245public:
1246 using Op::Op;
1247 using Op::print;
1249 template <typename RangeT>
1253 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1254 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("is_signed")};
1255 return ::llvm::ArrayRef(attrNames);
1256 }
1257
1258 ::mlir::StringAttr getIsSignedAttrName() {
1259 return getAttributeNameForIndex(0);
1260 }
1261
1262 static ::mlir::StringAttr getIsSignedAttrName(::mlir::OperationName name) {
1263 return getAttributeNameForIndex(name, 0);
1264 }
1265
1266 static constexpr ::llvm::StringLiteral getOperationName() {
1267 return ::llvm::StringLiteral("smt.bv2int");
1268 }
1269
1270 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1271 return {index, 1};
1272 }
1273
1274 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1275 auto valueRange = getODSOperandIndexAndLength(index);
1276 return {std::next(getOperation()->operand_begin(), valueRange.first),
1277 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1278 }
1279
1280 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
1281 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1282 }
1283
1284 ::mlir::OpOperand &getInputMutable() {
1285 auto range = getODSOperandIndexAndLength(0);
1286 return getOperation()->getOpOperand(range.first);
1287 }
1288
1289 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1290 return {index, 1};
1291 }
1292
1293 ::mlir::Operation::result_range getODSResults(unsigned index) {
1294 auto valueRange = getODSResultIndexAndLength(index);
1295 return {std::next(getOperation()->result_begin(), valueRange.first),
1296 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1297 }
1298
1299 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
1300 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
1301 }
1302
1303 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1304 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1305 static llvm::hash_code computePropertiesHash(const Properties &prop);
1306 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1307 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1308 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1309 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1310 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1311 void writeProperties(::mlir::DialectBytecodeWriter &writer);
1312 ::mlir::UnitAttr getIsSignedAttr() {
1313 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().is_signed);
1314 }
1315
1316 bool getIsSigned();
1317 void setIsSignedAttr(::mlir::UnitAttr attr) {
1318 getProperties().is_signed = attr;
1319 }
1320
1321 void setIsSigned(bool attrValue);
1322 ::mlir::Attribute removeIsSignedAttr() {
1323 auto &attr = getProperties().is_signed;
1324 attr = {};
1325 return attr;
1326 }
1327
1328 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input, /*optional*/::mlir::UnitAttr is_signed);
1329 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input, /*optional*/::mlir::UnitAttr is_signed);
1330 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input, /*optional*/::mlir::UnitAttr is_signed);
1331 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input, /*optional*/bool is_signed = false);
1332 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input, /*optional*/bool is_signed = false);
1333 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input, /*optional*/bool is_signed = false);
1334 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1335 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1336 ::llvm::LogicalResult verifyInvariantsImpl();
1337 ::llvm::LogicalResult verifyInvariants();
1338 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);
1339 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1340 void print(::mlir::OpAsmPrinter &_odsPrinter);
1341 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1342private:
1343 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
1344 return getAttributeNameForIndex((*this)->getName(), index);
1345 }
1346
1347 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
1348 assert(index < 1 && "invalid attribute index");
1349 assert(name.getStringRef() == getOperationName() && "invalid operation name");
1350 assert(name.isRegistered() && "Operation isn't registered, missing a "
1351 "dependent dialect loading?");
1352 return name.getAttributeNames()[index];
1353 }
1354
1355public:
1356};
1357} // namespace smt
1358} // namespace llzk
1359MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BV2IntOp)
1360
1361namespace llzk {
1362namespace smt {
1363
1364//===----------------------------------------------------------------------===//
1365// ::llzk::smt::BVAShrOp declarations
1366//===----------------------------------------------------------------------===//
1367
1368namespace detail {
1370public:
1371protected:
1372 ::mlir::DictionaryAttr odsAttrs;
1373 ::std::optional<::mlir::OperationName> odsOpName;
1374 ::mlir::RegionRange odsRegions;
1375public:
1376 BVAShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1377 odsOpName.emplace("smt.bv.ashr", odsAttrs.getContext());
1378 }
1379
1380 BVAShrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1381
1382 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1383 return {index, 1};
1384 }
1385
1386 ::mlir::DictionaryAttr getAttributes() {
1387 return odsAttrs;
1388 }
1389
1390};
1391} // namespace detail
1392template <typename RangeT>
1394 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1396public:
1397 BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1398
1399 BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVAShrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1400
1401 BVAShrOpGenericAdaptor(RangeT values, const BVAShrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1402
1403 template <typename LateInst = BVAShrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVAShrOp>>>
1404 BVAShrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1405
1406 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1407 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1408 }
1409
1410 RangeT getODSOperands(unsigned index) {
1411 auto valueRange = getODSOperandIndexAndLength(index);
1412 return {std::next(odsOperands.begin(), valueRange.first),
1413 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1414 }
1415
1416 ValueT getLhs() {
1417 return (*getODSOperands(0).begin());
1418 }
1419
1420 ValueT getRhs() {
1421 return (*getODSOperands(1).begin());
1422 }
1423
1424 RangeT getOperands() {
1425 return odsOperands;
1426 }
1427
1428private:
1429 RangeT odsOperands;
1430};
1431class BVAShrOpAdaptor : public BVAShrOpGenericAdaptor<::mlir::ValueRange> {
1432public:
1435
1436 ::llvm::LogicalResult verify(::mlir::Location loc);
1437};
1438class BVAShrOp : public ::mlir::Op<BVAShrOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
1439public:
1440 using Op::Op;
1441 using Op::print;
1443 template <typename RangeT>
1446 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1447 return {};
1448 }
1449
1450 static constexpr ::llvm::StringLiteral getOperationName() {
1451 return ::llvm::StringLiteral("smt.bv.ashr");
1452 }
1453
1454 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1455 return {index, 1};
1456 }
1457
1458 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1459 auto valueRange = getODSOperandIndexAndLength(index);
1460 return {std::next(getOperation()->operand_begin(), valueRange.first),
1461 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1462 }
1463
1464 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1465 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1466 }
1467
1468 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1469 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1470 }
1471
1472 ::mlir::OpOperand &getLhsMutable() {
1473 auto range = getODSOperandIndexAndLength(0);
1474 return getOperation()->getOpOperand(range.first);
1475 }
1476
1477 ::mlir::OpOperand &getRhsMutable() {
1478 auto range = getODSOperandIndexAndLength(1);
1479 return getOperation()->getOpOperand(range.first);
1480 }
1481
1482 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1483 return {index, 1};
1484 }
1485
1486 ::mlir::Operation::result_range getODSResults(unsigned index) {
1487 auto valueRange = getODSResultIndexAndLength(index);
1488 return {std::next(getOperation()->result_begin(), valueRange.first),
1489 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1490 }
1491
1492 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
1493 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
1494 }
1495
1496 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1497 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1498 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1499 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1500 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1501 ::llvm::LogicalResult verifyInvariantsImpl();
1502 ::llvm::LogicalResult verifyInvariants();
1503 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);
1504 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1505 void print(::mlir::OpAsmPrinter &_odsPrinter);
1506 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1507public:
1508};
1509} // namespace smt
1510} // namespace llzk
1511MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVAShrOp)
1512
1513namespace llzk {
1514namespace smt {
1515
1516//===----------------------------------------------------------------------===//
1517// ::llzk::smt::BVAddOp declarations
1518//===----------------------------------------------------------------------===//
1519
1520namespace detail {
1522public:
1523protected:
1524 ::mlir::DictionaryAttr odsAttrs;
1525 ::std::optional<::mlir::OperationName> odsOpName;
1526 ::mlir::RegionRange odsRegions;
1527public:
1528 BVAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1529 odsOpName.emplace("smt.bv.add", odsAttrs.getContext());
1530 }
1531
1532 BVAddOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1533
1534 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1535 return {index, 1};
1536 }
1537
1538 ::mlir::DictionaryAttr getAttributes() {
1539 return odsAttrs;
1540 }
1541
1542};
1543} // namespace detail
1544template <typename RangeT>
1546 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1548public:
1549 BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1550
1551 BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVAddOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1552
1553 BVAddOpGenericAdaptor(RangeT values, const BVAddOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1554
1555 template <typename LateInst = BVAddOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVAddOp>>>
1556 BVAddOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1557
1558 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1559 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1560 }
1561
1562 RangeT getODSOperands(unsigned index) {
1563 auto valueRange = getODSOperandIndexAndLength(index);
1564 return {std::next(odsOperands.begin(), valueRange.first),
1565 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1566 }
1567
1568 ValueT getLhs() {
1569 return (*getODSOperands(0).begin());
1570 }
1571
1572 ValueT getRhs() {
1573 return (*getODSOperands(1).begin());
1574 }
1575
1576 RangeT getOperands() {
1577 return odsOperands;
1578 }
1579
1580private:
1581 RangeT odsOperands;
1582};
1583class BVAddOpAdaptor : public BVAddOpGenericAdaptor<::mlir::ValueRange> {
1584public:
1587
1588 ::llvm::LogicalResult verify(::mlir::Location loc);
1589};
1590class BVAddOp : public ::mlir::Op<BVAddOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
1591public:
1592 using Op::Op;
1593 using Op::print;
1595 template <typename RangeT>
1598 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1599 return {};
1600 }
1601
1602 static constexpr ::llvm::StringLiteral getOperationName() {
1603 return ::llvm::StringLiteral("smt.bv.add");
1604 }
1605
1606 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1607 return {index, 1};
1608 }
1609
1610 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1611 auto valueRange = getODSOperandIndexAndLength(index);
1612 return {std::next(getOperation()->operand_begin(), valueRange.first),
1613 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1614 }
1615
1616 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1617 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1618 }
1619
1620 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1621 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1622 }
1623
1624 ::mlir::OpOperand &getLhsMutable() {
1625 auto range = getODSOperandIndexAndLength(0);
1626 return getOperation()->getOpOperand(range.first);
1627 }
1628
1629 ::mlir::OpOperand &getRhsMutable() {
1630 auto range = getODSOperandIndexAndLength(1);
1631 return getOperation()->getOpOperand(range.first);
1632 }
1633
1634 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1635 return {index, 1};
1636 }
1637
1638 ::mlir::Operation::result_range getODSResults(unsigned index) {
1639 auto valueRange = getODSResultIndexAndLength(index);
1640 return {std::next(getOperation()->result_begin(), valueRange.first),
1641 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1642 }
1643
1644 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
1645 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
1646 }
1647
1648 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1649 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1650 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1651 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1652 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1653 ::llvm::LogicalResult verifyInvariantsImpl();
1654 ::llvm::LogicalResult verifyInvariants();
1655 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);
1656 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1657 void print(::mlir::OpAsmPrinter &_odsPrinter);
1658 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1659public:
1660};
1661} // namespace smt
1662} // namespace llzk
1663MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVAddOp)
1664
1665namespace llzk {
1666namespace smt {
1667
1668//===----------------------------------------------------------------------===//
1669// ::llzk::smt::BVAndOp declarations
1670//===----------------------------------------------------------------------===//
1671
1672namespace detail {
1674public:
1675protected:
1676 ::mlir::DictionaryAttr odsAttrs;
1677 ::std::optional<::mlir::OperationName> odsOpName;
1678 ::mlir::RegionRange odsRegions;
1679public:
1680 BVAndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1681 odsOpName.emplace("smt.bv.and", odsAttrs.getContext());
1682 }
1683
1684 BVAndOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1685
1686 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1687 return {index, 1};
1688 }
1689
1690 ::mlir::DictionaryAttr getAttributes() {
1691 return odsAttrs;
1692 }
1693
1694};
1695} // namespace detail
1696template <typename RangeT>
1698 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1700public:
1701 BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1702
1703 BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVAndOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1704
1705 BVAndOpGenericAdaptor(RangeT values, const BVAndOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1706
1707 template <typename LateInst = BVAndOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVAndOp>>>
1708 BVAndOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1709
1710 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1711 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1712 }
1713
1714 RangeT getODSOperands(unsigned index) {
1715 auto valueRange = getODSOperandIndexAndLength(index);
1716 return {std::next(odsOperands.begin(), valueRange.first),
1717 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1718 }
1719
1720 ValueT getLhs() {
1721 return (*getODSOperands(0).begin());
1722 }
1723
1724 ValueT getRhs() {
1725 return (*getODSOperands(1).begin());
1726 }
1727
1728 RangeT getOperands() {
1729 return odsOperands;
1730 }
1731
1732private:
1733 RangeT odsOperands;
1734};
1735class BVAndOpAdaptor : public BVAndOpGenericAdaptor<::mlir::ValueRange> {
1736public:
1739
1740 ::llvm::LogicalResult verify(::mlir::Location loc);
1741};
1742class BVAndOp : public ::mlir::Op<BVAndOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
1743public:
1744 using Op::Op;
1745 using Op::print;
1747 template <typename RangeT>
1750 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1751 return {};
1752 }
1753
1754 static constexpr ::llvm::StringLiteral getOperationName() {
1755 return ::llvm::StringLiteral("smt.bv.and");
1756 }
1757
1758 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1759 return {index, 1};
1760 }
1761
1762 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1763 auto valueRange = getODSOperandIndexAndLength(index);
1764 return {std::next(getOperation()->operand_begin(), valueRange.first),
1765 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1766 }
1767
1768 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1769 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1770 }
1771
1772 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1773 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1774 }
1775
1776 ::mlir::OpOperand &getLhsMutable() {
1777 auto range = getODSOperandIndexAndLength(0);
1778 return getOperation()->getOpOperand(range.first);
1779 }
1780
1781 ::mlir::OpOperand &getRhsMutable() {
1782 auto range = getODSOperandIndexAndLength(1);
1783 return getOperation()->getOpOperand(range.first);
1784 }
1785
1786 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1787 return {index, 1};
1788 }
1789
1790 ::mlir::Operation::result_range getODSResults(unsigned index) {
1791 auto valueRange = getODSResultIndexAndLength(index);
1792 return {std::next(getOperation()->result_begin(), valueRange.first),
1793 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1794 }
1795
1796 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
1797 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
1798 }
1799
1800 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1801 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1802 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1803 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1804 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1805 ::llvm::LogicalResult verifyInvariantsImpl();
1806 ::llvm::LogicalResult verifyInvariants();
1807 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);
1808 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1809 void print(::mlir::OpAsmPrinter &_odsPrinter);
1810 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1811public:
1812};
1813} // namespace smt
1814} // namespace llzk
1815MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVAndOp)
1816
1817namespace llzk {
1818namespace smt {
1819
1820//===----------------------------------------------------------------------===//
1821// ::llzk::smt::BVCmpOp declarations
1822//===----------------------------------------------------------------------===//
1823
1824namespace detail {
1826public:
1827 struct Properties {
1830
1831 auto getPred() {
1832 auto &propStorage = this->pred;
1833 return ::llvm::cast<::llzk::smt::BVCmpPredicateAttr>(propStorage);
1834 }
1835 void setPred(const ::llzk::smt::BVCmpPredicateAttr &propValue) {
1836 this->pred = propValue;
1837 }
1838 bool operator==(const Properties &rhs) const {
1839 return
1840 rhs.pred == this->pred &&
1841 true;
1842 }
1843 bool operator!=(const Properties &rhs) const {
1844 return !(*this == rhs);
1845 }
1846 };
1847protected:
1848 ::mlir::DictionaryAttr odsAttrs;
1849 ::std::optional<::mlir::OperationName> odsOpName;
1851 ::mlir::RegionRange odsRegions;
1852public:
1853 BVCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1854 odsOpName.emplace("smt.bv.cmp", odsAttrs.getContext());
1855 }
1856
1858
1859 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1860 return {index, 1};
1861 }
1862
1864 return properties;
1865 }
1866
1867 ::mlir::DictionaryAttr getAttributes() {
1868 return odsAttrs;
1869 }
1870
1872 auto attr = ::llvm::cast<::llzk::smt::BVCmpPredicateAttr>(getProperties().pred);
1873 return attr;
1874 }
1875
1877};
1878} // namespace detail
1879template <typename RangeT>
1881 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1883public:
1884 BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1885
1886 BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVCmpOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1887
1888 BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BVCmpOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1889
1890 BVCmpOpGenericAdaptor(RangeT values, const BVCmpOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1891
1892 template <typename LateInst = BVCmpOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVCmpOp>>>
1893 BVCmpOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1894
1895 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1896 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1897 }
1898
1899 RangeT getODSOperands(unsigned index) {
1900 auto valueRange = getODSOperandIndexAndLength(index);
1901 return {std::next(odsOperands.begin(), valueRange.first),
1902 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1903 }
1904
1905 ValueT getLhs() {
1906 return (*getODSOperands(0).begin());
1907 }
1908
1909 ValueT getRhs() {
1910 return (*getODSOperands(1).begin());
1911 }
1912
1913 RangeT getOperands() {
1914 return odsOperands;
1915 }
1916
1917private:
1918 RangeT odsOperands;
1919};
1920class BVCmpOpAdaptor : public BVCmpOpGenericAdaptor<::mlir::ValueRange> {
1921public:
1924
1925 ::llvm::LogicalResult verify(::mlir::Location loc);
1926};
1927class BVCmpOp : public ::mlir::Op<BVCmpOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::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::OpTrait::SameTypeOperands, ::mlir::InferTypeOpInterface::Trait> {
1928public:
1929 using Op::Op;
1930 using Op::print;
1932 template <typename RangeT>
1936 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1937 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("pred")};
1938 return ::llvm::ArrayRef(attrNames);
1939 }
1940
1941 ::mlir::StringAttr getPredAttrName() {
1942 return getAttributeNameForIndex(0);
1943 }
1944
1945 static ::mlir::StringAttr getPredAttrName(::mlir::OperationName name) {
1946 return getAttributeNameForIndex(name, 0);
1947 }
1948
1949 static constexpr ::llvm::StringLiteral getOperationName() {
1950 return ::llvm::StringLiteral("smt.bv.cmp");
1951 }
1952
1953 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1954 return {index, 1};
1955 }
1956
1957 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1958 auto valueRange = getODSOperandIndexAndLength(index);
1959 return {std::next(getOperation()->operand_begin(), valueRange.first),
1960 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1961 }
1962
1963 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1964 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1965 }
1966
1967 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1968 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1969 }
1970
1971 ::mlir::OpOperand &getLhsMutable() {
1972 auto range = getODSOperandIndexAndLength(0);
1973 return getOperation()->getOpOperand(range.first);
1974 }
1975
1976 ::mlir::OpOperand &getRhsMutable() {
1977 auto range = getODSOperandIndexAndLength(1);
1978 return getOperation()->getOpOperand(range.first);
1979 }
1980
1981 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1982 return {index, 1};
1983 }
1984
1985 ::mlir::Operation::result_range getODSResults(unsigned index) {
1986 auto valueRange = getODSResultIndexAndLength(index);
1987 return {std::next(getOperation()->result_begin(), valueRange.first),
1988 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1989 }
1990
1991 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
1992 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
1993 }
1994
1995 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1996 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1997 static llvm::hash_code computePropertiesHash(const Properties &prop);
1998 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1999 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2000 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2001 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2002 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
2003 void writeProperties(::mlir::DialectBytecodeWriter &writer);
2005 return ::llvm::cast<::llzk::smt::BVCmpPredicateAttr>(getProperties().pred);
2006 }
2007
2010 getProperties().pred = attr;
2011 }
2012
2013 void setPred(::llzk::smt::BVCmpPredicate attrValue);
2014 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
2015 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
2016 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
2017 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BVCmpPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
2018 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::BVCmpPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
2019 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::BVCmpPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
2020 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2021 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2022 ::llvm::LogicalResult verifyInvariantsImpl();
2023 ::llvm::LogicalResult verifyInvariants();
2024 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);
2025 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2026 void print(::mlir::OpAsmPrinter &_odsPrinter);
2027 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2028private:
2029 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
2030 return getAttributeNameForIndex((*this)->getName(), index);
2031 }
2032
2033 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
2034 assert(index < 1 && "invalid attribute index");
2035 assert(name.getStringRef() == getOperationName() && "invalid operation name");
2036 assert(name.isRegistered() && "Operation isn't registered, missing a "
2037 "dependent dialect loading?");
2038 return name.getAttributeNames()[index];
2039 }
2040
2041public:
2042};
2043} // namespace smt
2044} // namespace llzk
2045MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVCmpOp)
2046
2047namespace llzk {
2048namespace smt {
2049
2050//===----------------------------------------------------------------------===//
2051// ::llzk::smt::BVConstantOp declarations
2052//===----------------------------------------------------------------------===//
2053
2054namespace detail {
2056public:
2057 struct Properties {
2058 using valueTy = ::llzk::smt::BitVectorAttr;
2060
2061 auto getValue() {
2062 auto &propStorage = this->value;
2063 return ::llvm::cast<::llzk::smt::BitVectorAttr>(propStorage);
2064 }
2065 void setValue(const ::llzk::smt::BitVectorAttr &propValue) {
2066 this->value = propValue;
2067 }
2068 bool operator==(const Properties &rhs) const {
2069 return
2070 rhs.value == this->value &&
2071 true;
2072 }
2073 bool operator!=(const Properties &rhs) const {
2074 return !(*this == rhs);
2075 }
2076 };
2077protected:
2078 ::mlir::DictionaryAttr odsAttrs;
2079 ::std::optional<::mlir::OperationName> odsOpName;
2081 ::mlir::RegionRange odsRegions;
2082public:
2083 BVConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2084 odsOpName.emplace("smt.bv.constant", odsAttrs.getContext());
2085 }
2086
2088
2089 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2090 return {index, 1};
2091 }
2092
2094 return properties;
2095 }
2096
2097 ::mlir::DictionaryAttr getAttributes() {
2098 return odsAttrs;
2099 }
2100
2101 ::llzk::smt::BitVectorAttr getValueAttr() {
2102 auto attr = ::llvm::cast<::llzk::smt::BitVectorAttr>(getProperties().value);
2103 return attr;
2104 }
2105
2106 ::llzk::smt::BitVectorAttr getValue();
2107};
2108} // namespace detail
2109template <typename RangeT>
2111 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2113public:
2114 BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2115
2116 BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2117
2118 BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BVConstantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2119
2120 BVConstantOpGenericAdaptor(RangeT values, const BVConstantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2121
2122 template <typename LateInst = BVConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVConstantOp>>>
2123 BVConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2124
2125 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2126 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2127 }
2128
2129 RangeT getODSOperands(unsigned index) {
2130 auto valueRange = getODSOperandIndexAndLength(index);
2131 return {std::next(odsOperands.begin(), valueRange.first),
2132 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2133 }
2134
2135 RangeT getOperands() {
2136 return odsOperands;
2137 }
2138
2139private:
2140 RangeT odsOperands;
2141};
2142class BVConstantOpAdaptor : public BVConstantOpGenericAdaptor<::mlir::ValueRange> {
2143public:
2146
2147 ::llvm::LogicalResult verify(::mlir::Location loc);
2148};
2149class BVConstantOp : public ::mlir::Op<BVConstantOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::ConstantLike, ::mlir::InferTypeOpInterface::Trait, ::mlir::OpAsmOpInterface::Trait> {
2150public:
2151 using Op::Op;
2152 using Op::print;
2154 template <typename RangeT>
2158 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2159 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
2160 return ::llvm::ArrayRef(attrNames);
2161 }
2162
2163 ::mlir::StringAttr getValueAttrName() {
2164 return getAttributeNameForIndex(0);
2165 }
2166
2167 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
2168 return getAttributeNameForIndex(name, 0);
2169 }
2170
2171 static constexpr ::llvm::StringLiteral getOperationName() {
2172 return ::llvm::StringLiteral("smt.bv.constant");
2173 }
2174
2175 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2176 return {index, 1};
2177 }
2178
2179 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2180 auto valueRange = getODSOperandIndexAndLength(index);
2181 return {std::next(getOperation()->operand_begin(), valueRange.first),
2182 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2183 }
2184
2185 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2186 return {index, 1};
2187 }
2188
2189 ::mlir::Operation::result_range getODSResults(unsigned index) {
2190 auto valueRange = getODSResultIndexAndLength(index);
2191 return {std::next(getOperation()->result_begin(), valueRange.first),
2192 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2193 }
2194
2195 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2196 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2197 }
2198
2199 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2200 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2201 static llvm::hash_code computePropertiesHash(const Properties &prop);
2202 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2203 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2204 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2205 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2206 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
2207 void writeProperties(::mlir::DialectBytecodeWriter &writer);
2208 ::llzk::smt::BitVectorAttr getValueAttr() {
2209 return ::llvm::cast<::llzk::smt::BitVectorAttr>(getProperties().value);
2210 }
2211
2212 ::llzk::smt::BitVectorAttr getValue();
2213 void setValueAttr(::llzk::smt::BitVectorAttr attr) {
2214 getProperties().value = attr;
2215 }
2216
2217 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, const llvm::APInt &value);
2218 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, uint64_t value, unsigned width);
2219 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BitVectorAttr value);
2220 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::BitVectorAttr value);
2221 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::BitVectorAttr value);
2222 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2223 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2224 ::llvm::LogicalResult verifyInvariantsImpl();
2225 ::llvm::LogicalResult verifyInvariants();
2226 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2227 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);
2228 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
2229 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2230 void print(::mlir::OpAsmPrinter &_odsPrinter);
2231 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2232private:
2233 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
2234 return getAttributeNameForIndex((*this)->getName(), index);
2235 }
2236
2237 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
2238 assert(index < 1 && "invalid attribute index");
2239 assert(name.getStringRef() == getOperationName() && "invalid operation name");
2240 assert(name.isRegistered() && "Operation isn't registered, missing a "
2241 "dependent dialect loading?");
2242 return name.getAttributeNames()[index];
2243 }
2244
2245public:
2246};
2247} // namespace smt
2248} // namespace llzk
2249MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVConstantOp)
2250
2251namespace llzk {
2252namespace smt {
2253
2254//===----------------------------------------------------------------------===//
2255// ::llzk::smt::BVLShrOp declarations
2256//===----------------------------------------------------------------------===//
2257
2258namespace detail {
2260public:
2261protected:
2262 ::mlir::DictionaryAttr odsAttrs;
2263 ::std::optional<::mlir::OperationName> odsOpName;
2264 ::mlir::RegionRange odsRegions;
2265public:
2266 BVLShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2267 odsOpName.emplace("smt.bv.lshr", odsAttrs.getContext());
2268 }
2269
2270 BVLShrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2271
2272 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2273 return {index, 1};
2274 }
2275
2276 ::mlir::DictionaryAttr getAttributes() {
2277 return odsAttrs;
2278 }
2279
2280};
2281} // namespace detail
2282template <typename RangeT>
2284 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2286public:
2287 BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2288
2289 BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVLShrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2290
2291 BVLShrOpGenericAdaptor(RangeT values, const BVLShrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2292
2293 template <typename LateInst = BVLShrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVLShrOp>>>
2294 BVLShrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2295
2296 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2297 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2298 }
2299
2300 RangeT getODSOperands(unsigned index) {
2301 auto valueRange = getODSOperandIndexAndLength(index);
2302 return {std::next(odsOperands.begin(), valueRange.first),
2303 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2304 }
2305
2306 ValueT getLhs() {
2307 return (*getODSOperands(0).begin());
2308 }
2309
2310 ValueT getRhs() {
2311 return (*getODSOperands(1).begin());
2312 }
2313
2314 RangeT getOperands() {
2315 return odsOperands;
2316 }
2317
2318private:
2319 RangeT odsOperands;
2320};
2321class BVLShrOpAdaptor : public BVLShrOpGenericAdaptor<::mlir::ValueRange> {
2322public:
2325
2326 ::llvm::LogicalResult verify(::mlir::Location loc);
2327};
2328class BVLShrOp : public ::mlir::Op<BVLShrOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
2329public:
2330 using Op::Op;
2331 using Op::print;
2333 template <typename RangeT>
2336 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2337 return {};
2338 }
2339
2340 static constexpr ::llvm::StringLiteral getOperationName() {
2341 return ::llvm::StringLiteral("smt.bv.lshr");
2342 }
2343
2344 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2345 return {index, 1};
2346 }
2347
2348 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2349 auto valueRange = getODSOperandIndexAndLength(index);
2350 return {std::next(getOperation()->operand_begin(), valueRange.first),
2351 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2352 }
2353
2354 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
2355 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2356 }
2357
2358 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
2359 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
2360 }
2361
2362 ::mlir::OpOperand &getLhsMutable() {
2363 auto range = getODSOperandIndexAndLength(0);
2364 return getOperation()->getOpOperand(range.first);
2365 }
2366
2367 ::mlir::OpOperand &getRhsMutable() {
2368 auto range = getODSOperandIndexAndLength(1);
2369 return getOperation()->getOpOperand(range.first);
2370 }
2371
2372 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2373 return {index, 1};
2374 }
2375
2376 ::mlir::Operation::result_range getODSResults(unsigned index) {
2377 auto valueRange = getODSResultIndexAndLength(index);
2378 return {std::next(getOperation()->result_begin(), valueRange.first),
2379 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2380 }
2381
2382 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2383 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2384 }
2385
2386 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2387 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2388 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2389 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2390 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2391 ::llvm::LogicalResult verifyInvariantsImpl();
2392 ::llvm::LogicalResult verifyInvariants();
2393 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);
2394 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2395 void print(::mlir::OpAsmPrinter &_odsPrinter);
2396 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2397public:
2398};
2399} // namespace smt
2400} // namespace llzk
2401MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVLShrOp)
2402
2403namespace llzk {
2404namespace smt {
2405
2406//===----------------------------------------------------------------------===//
2407// ::llzk::smt::BVMulOp declarations
2408//===----------------------------------------------------------------------===//
2409
2410namespace detail {
2412public:
2413protected:
2414 ::mlir::DictionaryAttr odsAttrs;
2415 ::std::optional<::mlir::OperationName> odsOpName;
2416 ::mlir::RegionRange odsRegions;
2417public:
2418 BVMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2419 odsOpName.emplace("smt.bv.mul", odsAttrs.getContext());
2420 }
2421
2422 BVMulOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2423
2424 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2425 return {index, 1};
2426 }
2427
2428 ::mlir::DictionaryAttr getAttributes() {
2429 return odsAttrs;
2430 }
2431
2432};
2433} // namespace detail
2434template <typename RangeT>
2436 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2438public:
2439 BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2440
2441 BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVMulOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2442
2443 BVMulOpGenericAdaptor(RangeT values, const BVMulOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2444
2445 template <typename LateInst = BVMulOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVMulOp>>>
2446 BVMulOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2447
2448 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2449 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2450 }
2451
2452 RangeT getODSOperands(unsigned index) {
2453 auto valueRange = getODSOperandIndexAndLength(index);
2454 return {std::next(odsOperands.begin(), valueRange.first),
2455 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2456 }
2457
2458 ValueT getLhs() {
2459 return (*getODSOperands(0).begin());
2460 }
2461
2462 ValueT getRhs() {
2463 return (*getODSOperands(1).begin());
2464 }
2465
2466 RangeT getOperands() {
2467 return odsOperands;
2468 }
2469
2470private:
2471 RangeT odsOperands;
2472};
2473class BVMulOpAdaptor : public BVMulOpGenericAdaptor<::mlir::ValueRange> {
2474public:
2477
2478 ::llvm::LogicalResult verify(::mlir::Location loc);
2479};
2480class BVMulOp : public ::mlir::Op<BVMulOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
2481public:
2482 using Op::Op;
2483 using Op::print;
2485 template <typename RangeT>
2488 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2489 return {};
2490 }
2491
2492 static constexpr ::llvm::StringLiteral getOperationName() {
2493 return ::llvm::StringLiteral("smt.bv.mul");
2494 }
2495
2496 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2497 return {index, 1};
2498 }
2499
2500 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2501 auto valueRange = getODSOperandIndexAndLength(index);
2502 return {std::next(getOperation()->operand_begin(), valueRange.first),
2503 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2504 }
2505
2506 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
2507 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2508 }
2509
2510 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
2511 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
2512 }
2513
2514 ::mlir::OpOperand &getLhsMutable() {
2515 auto range = getODSOperandIndexAndLength(0);
2516 return getOperation()->getOpOperand(range.first);
2517 }
2518
2519 ::mlir::OpOperand &getRhsMutable() {
2520 auto range = getODSOperandIndexAndLength(1);
2521 return getOperation()->getOpOperand(range.first);
2522 }
2523
2524 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2525 return {index, 1};
2526 }
2527
2528 ::mlir::Operation::result_range getODSResults(unsigned index) {
2529 auto valueRange = getODSResultIndexAndLength(index);
2530 return {std::next(getOperation()->result_begin(), valueRange.first),
2531 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2532 }
2533
2534 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2535 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2536 }
2537
2538 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2539 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2540 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2541 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2542 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2543 ::llvm::LogicalResult verifyInvariantsImpl();
2544 ::llvm::LogicalResult verifyInvariants();
2545 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);
2546 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2547 void print(::mlir::OpAsmPrinter &_odsPrinter);
2548 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2549public:
2550};
2551} // namespace smt
2552} // namespace llzk
2553MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVMulOp)
2554
2555namespace llzk {
2556namespace smt {
2557
2558//===----------------------------------------------------------------------===//
2559// ::llzk::smt::BVNegOp declarations
2560//===----------------------------------------------------------------------===//
2561
2562namespace detail {
2564public:
2565protected:
2566 ::mlir::DictionaryAttr odsAttrs;
2567 ::std::optional<::mlir::OperationName> odsOpName;
2568 ::mlir::RegionRange odsRegions;
2569public:
2570 BVNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2571 odsOpName.emplace("smt.bv.neg", odsAttrs.getContext());
2572 }
2573
2574 BVNegOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2575
2576 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2577 return {index, 1};
2578 }
2579
2580 ::mlir::DictionaryAttr getAttributes() {
2581 return odsAttrs;
2582 }
2583
2584};
2585} // namespace detail
2586template <typename RangeT>
2588 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2590public:
2591 BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2592
2593 BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVNegOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2594
2595 BVNegOpGenericAdaptor(RangeT values, const BVNegOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2596
2597 template <typename LateInst = BVNegOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVNegOp>>>
2598 BVNegOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2599
2600 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2601 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2602 }
2603
2604 RangeT getODSOperands(unsigned index) {
2605 auto valueRange = getODSOperandIndexAndLength(index);
2606 return {std::next(odsOperands.begin(), valueRange.first),
2607 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2608 }
2609
2610 ValueT getInput() {
2611 return (*getODSOperands(0).begin());
2612 }
2613
2614 RangeT getOperands() {
2615 return odsOperands;
2616 }
2617
2618private:
2619 RangeT odsOperands;
2620};
2621class BVNegOpAdaptor : public BVNegOpGenericAdaptor<::mlir::ValueRange> {
2622public:
2625
2626 ::llvm::LogicalResult verify(::mlir::Location loc);
2627};
2628class BVNegOp : public ::mlir::Op<BVNegOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
2629public:
2630 using Op::Op;
2631 using Op::print;
2633 template <typename RangeT>
2636 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2637 return {};
2638 }
2639
2640 static constexpr ::llvm::StringLiteral getOperationName() {
2641 return ::llvm::StringLiteral("smt.bv.neg");
2642 }
2643
2644 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2645 return {index, 1};
2646 }
2647
2648 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2649 auto valueRange = getODSOperandIndexAndLength(index);
2650 return {std::next(getOperation()->operand_begin(), valueRange.first),
2651 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2652 }
2653
2654 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
2655 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2656 }
2657
2658 ::mlir::OpOperand &getInputMutable() {
2659 auto range = getODSOperandIndexAndLength(0);
2660 return getOperation()->getOpOperand(range.first);
2661 }
2662
2663 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2664 return {index, 1};
2665 }
2666
2667 ::mlir::Operation::result_range getODSResults(unsigned index) {
2668 auto valueRange = getODSResultIndexAndLength(index);
2669 return {std::next(getOperation()->result_begin(), valueRange.first),
2670 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2671 }
2672
2673 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2674 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2675 }
2676
2677 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
2678 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
2679 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
2680 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2681 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2682 ::llvm::LogicalResult verifyInvariantsImpl();
2683 ::llvm::LogicalResult verifyInvariants();
2684 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);
2685 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2686 void print(::mlir::OpAsmPrinter &_odsPrinter);
2687 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2688public:
2689};
2690} // namespace smt
2691} // namespace llzk
2692MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVNegOp)
2693
2694namespace llzk {
2695namespace smt {
2696
2697//===----------------------------------------------------------------------===//
2698// ::llzk::smt::BVNotOp declarations
2699//===----------------------------------------------------------------------===//
2700
2701namespace detail {
2703public:
2704protected:
2705 ::mlir::DictionaryAttr odsAttrs;
2706 ::std::optional<::mlir::OperationName> odsOpName;
2707 ::mlir::RegionRange odsRegions;
2708public:
2709 BVNotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2710 odsOpName.emplace("smt.bv.not", odsAttrs.getContext());
2711 }
2712
2713 BVNotOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2714
2715 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2716 return {index, 1};
2717 }
2718
2719 ::mlir::DictionaryAttr getAttributes() {
2720 return odsAttrs;
2721 }
2722
2723};
2724} // namespace detail
2725template <typename RangeT>
2727 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2729public:
2730 BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2731
2732 BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVNotOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2733
2734 BVNotOpGenericAdaptor(RangeT values, const BVNotOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2735
2736 template <typename LateInst = BVNotOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVNotOp>>>
2737 BVNotOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2738
2739 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2740 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2741 }
2742
2743 RangeT getODSOperands(unsigned index) {
2744 auto valueRange = getODSOperandIndexAndLength(index);
2745 return {std::next(odsOperands.begin(), valueRange.first),
2746 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2747 }
2748
2749 ValueT getInput() {
2750 return (*getODSOperands(0).begin());
2751 }
2752
2753 RangeT getOperands() {
2754 return odsOperands;
2755 }
2756
2757private:
2758 RangeT odsOperands;
2759};
2760class BVNotOpAdaptor : public BVNotOpGenericAdaptor<::mlir::ValueRange> {
2761public:
2764
2765 ::llvm::LogicalResult verify(::mlir::Location loc);
2766};
2767class BVNotOp : public ::mlir::Op<BVNotOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
2768public:
2769 using Op::Op;
2770 using Op::print;
2772 template <typename RangeT>
2775 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2776 return {};
2777 }
2778
2779 static constexpr ::llvm::StringLiteral getOperationName() {
2780 return ::llvm::StringLiteral("smt.bv.not");
2781 }
2782
2783 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2784 return {index, 1};
2785 }
2786
2787 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2788 auto valueRange = getODSOperandIndexAndLength(index);
2789 return {std::next(getOperation()->operand_begin(), valueRange.first),
2790 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2791 }
2792
2793 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
2794 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2795 }
2796
2797 ::mlir::OpOperand &getInputMutable() {
2798 auto range = getODSOperandIndexAndLength(0);
2799 return getOperation()->getOpOperand(range.first);
2800 }
2801
2802 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2803 return {index, 1};
2804 }
2805
2806 ::mlir::Operation::result_range getODSResults(unsigned index) {
2807 auto valueRange = getODSResultIndexAndLength(index);
2808 return {std::next(getOperation()->result_begin(), valueRange.first),
2809 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2810 }
2811
2812 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2813 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2814 }
2815
2816 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
2817 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
2818 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
2819 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2820 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2821 ::llvm::LogicalResult verifyInvariantsImpl();
2822 ::llvm::LogicalResult verifyInvariants();
2823 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);
2824 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2825 void print(::mlir::OpAsmPrinter &_odsPrinter);
2826 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2827public:
2828};
2829} // namespace smt
2830} // namespace llzk
2831MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVNotOp)
2832
2833namespace llzk {
2834namespace smt {
2835
2836//===----------------------------------------------------------------------===//
2837// ::llzk::smt::BVOrOp declarations
2838//===----------------------------------------------------------------------===//
2839
2840namespace detail {
2842public:
2843protected:
2844 ::mlir::DictionaryAttr odsAttrs;
2845 ::std::optional<::mlir::OperationName> odsOpName;
2846 ::mlir::RegionRange odsRegions;
2847public:
2848 BVOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2849 odsOpName.emplace("smt.bv.or", odsAttrs.getContext());
2850 }
2851
2852 BVOrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2853
2854 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2855 return {index, 1};
2856 }
2857
2858 ::mlir::DictionaryAttr getAttributes() {
2859 return odsAttrs;
2860 }
2861
2862};
2863} // namespace detail
2864template <typename RangeT>
2866 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2868public:
2869 BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2870
2871 BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVOrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2872
2873 BVOrOpGenericAdaptor(RangeT values, const BVOrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2874
2875 template <typename LateInst = BVOrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVOrOp>>>
2876 BVOrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2877
2878 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2879 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2880 }
2881
2882 RangeT getODSOperands(unsigned index) {
2883 auto valueRange = getODSOperandIndexAndLength(index);
2884 return {std::next(odsOperands.begin(), valueRange.first),
2885 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2886 }
2887
2888 ValueT getLhs() {
2889 return (*getODSOperands(0).begin());
2890 }
2891
2892 ValueT getRhs() {
2893 return (*getODSOperands(1).begin());
2894 }
2895
2896 RangeT getOperands() {
2897 return odsOperands;
2898 }
2899
2900private:
2901 RangeT odsOperands;
2902};
2903class BVOrOpAdaptor : public BVOrOpGenericAdaptor<::mlir::ValueRange> {
2904public:
2907
2908 ::llvm::LogicalResult verify(::mlir::Location loc);
2909};
2910class BVOrOp : public ::mlir::Op<BVOrOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
2911public:
2912 using Op::Op;
2913 using Op::print;
2915 template <typename RangeT>
2918 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2919 return {};
2920 }
2921
2922 static constexpr ::llvm::StringLiteral getOperationName() {
2923 return ::llvm::StringLiteral("smt.bv.or");
2924 }
2925
2926 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2927 return {index, 1};
2928 }
2929
2930 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2931 auto valueRange = getODSOperandIndexAndLength(index);
2932 return {std::next(getOperation()->operand_begin(), valueRange.first),
2933 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2934 }
2935
2936 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
2937 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2938 }
2939
2940 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
2941 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
2942 }
2943
2944 ::mlir::OpOperand &getLhsMutable() {
2945 auto range = getODSOperandIndexAndLength(0);
2946 return getOperation()->getOpOperand(range.first);
2947 }
2948
2949 ::mlir::OpOperand &getRhsMutable() {
2950 auto range = getODSOperandIndexAndLength(1);
2951 return getOperation()->getOpOperand(range.first);
2952 }
2953
2954 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2955 return {index, 1};
2956 }
2957
2958 ::mlir::Operation::result_range getODSResults(unsigned index) {
2959 auto valueRange = getODSResultIndexAndLength(index);
2960 return {std::next(getOperation()->result_begin(), valueRange.first),
2961 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2962 }
2963
2964 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2965 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2966 }
2967
2968 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2969 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2970 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2971 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2972 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2973 ::llvm::LogicalResult verifyInvariantsImpl();
2974 ::llvm::LogicalResult verifyInvariants();
2975 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);
2976 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2977 void print(::mlir::OpAsmPrinter &_odsPrinter);
2978 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2979public:
2980};
2981} // namespace smt
2982} // namespace llzk
2983MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVOrOp)
2984
2985namespace llzk {
2986namespace smt {
2987
2988//===----------------------------------------------------------------------===//
2989// ::llzk::smt::BVSDivOp declarations
2990//===----------------------------------------------------------------------===//
2991
2992namespace detail {
2994public:
2995protected:
2996 ::mlir::DictionaryAttr odsAttrs;
2997 ::std::optional<::mlir::OperationName> odsOpName;
2998 ::mlir::RegionRange odsRegions;
2999public:
3000 BVSDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3001 odsOpName.emplace("smt.bv.sdiv", odsAttrs.getContext());
3002 }
3003
3004 BVSDivOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3005
3006 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3007 return {index, 1};
3008 }
3009
3010 ::mlir::DictionaryAttr getAttributes() {
3011 return odsAttrs;
3012 }
3013
3014};
3015} // namespace detail
3016template <typename RangeT>
3018 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3020public:
3021 BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3022
3023 BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVSDivOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3024
3025 BVSDivOpGenericAdaptor(RangeT values, const BVSDivOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3026
3027 template <typename LateInst = BVSDivOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVSDivOp>>>
3028 BVSDivOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3029
3030 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3031 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3032 }
3033
3034 RangeT getODSOperands(unsigned index) {
3035 auto valueRange = getODSOperandIndexAndLength(index);
3036 return {std::next(odsOperands.begin(), valueRange.first),
3037 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3038 }
3039
3040 ValueT getLhs() {
3041 return (*getODSOperands(0).begin());
3042 }
3043
3044 ValueT getRhs() {
3045 return (*getODSOperands(1).begin());
3046 }
3047
3048 RangeT getOperands() {
3049 return odsOperands;
3050 }
3051
3052private:
3053 RangeT odsOperands;
3054};
3055class BVSDivOpAdaptor : public BVSDivOpGenericAdaptor<::mlir::ValueRange> {
3056public:
3059
3060 ::llvm::LogicalResult verify(::mlir::Location loc);
3061};
3062class BVSDivOp : public ::mlir::Op<BVSDivOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3063public:
3064 using Op::Op;
3065 using Op::print;
3067 template <typename RangeT>
3070 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3071 return {};
3072 }
3073
3074 static constexpr ::llvm::StringLiteral getOperationName() {
3075 return ::llvm::StringLiteral("smt.bv.sdiv");
3076 }
3077
3078 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3079 return {index, 1};
3080 }
3081
3082 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3083 auto valueRange = getODSOperandIndexAndLength(index);
3084 return {std::next(getOperation()->operand_begin(), valueRange.first),
3085 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3086 }
3087
3088 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3089 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3090 }
3091
3092 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3093 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3094 }
3095
3096 ::mlir::OpOperand &getLhsMutable() {
3097 auto range = getODSOperandIndexAndLength(0);
3098 return getOperation()->getOpOperand(range.first);
3099 }
3100
3101 ::mlir::OpOperand &getRhsMutable() {
3102 auto range = getODSOperandIndexAndLength(1);
3103 return getOperation()->getOpOperand(range.first);
3104 }
3105
3106 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3107 return {index, 1};
3108 }
3109
3110 ::mlir::Operation::result_range getODSResults(unsigned index) {
3111 auto valueRange = getODSResultIndexAndLength(index);
3112 return {std::next(getOperation()->result_begin(), valueRange.first),
3113 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3114 }
3115
3116 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3117 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3118 }
3119
3120 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3121 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3122 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3123 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3124 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3125 ::llvm::LogicalResult verifyInvariantsImpl();
3126 ::llvm::LogicalResult verifyInvariants();
3127 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);
3128 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3129 void print(::mlir::OpAsmPrinter &_odsPrinter);
3130 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3131public:
3132};
3133} // namespace smt
3134} // namespace llzk
3135MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVSDivOp)
3136
3137namespace llzk {
3138namespace smt {
3139
3140//===----------------------------------------------------------------------===//
3141// ::llzk::smt::BVSModOp declarations
3142//===----------------------------------------------------------------------===//
3143
3144namespace detail {
3146public:
3147protected:
3148 ::mlir::DictionaryAttr odsAttrs;
3149 ::std::optional<::mlir::OperationName> odsOpName;
3150 ::mlir::RegionRange odsRegions;
3151public:
3152 BVSModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3153 odsOpName.emplace("smt.bv.smod", odsAttrs.getContext());
3154 }
3155
3156 BVSModOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3157
3158 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3159 return {index, 1};
3160 }
3161
3162 ::mlir::DictionaryAttr getAttributes() {
3163 return odsAttrs;
3164 }
3165
3166};
3167} // namespace detail
3168template <typename RangeT>
3170 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3172public:
3173 BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3174
3175 BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVSModOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3176
3177 BVSModOpGenericAdaptor(RangeT values, const BVSModOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3178
3179 template <typename LateInst = BVSModOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVSModOp>>>
3180 BVSModOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3181
3182 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3183 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3184 }
3185
3186 RangeT getODSOperands(unsigned index) {
3187 auto valueRange = getODSOperandIndexAndLength(index);
3188 return {std::next(odsOperands.begin(), valueRange.first),
3189 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3190 }
3191
3192 ValueT getLhs() {
3193 return (*getODSOperands(0).begin());
3194 }
3195
3196 ValueT getRhs() {
3197 return (*getODSOperands(1).begin());
3198 }
3199
3200 RangeT getOperands() {
3201 return odsOperands;
3202 }
3203
3204private:
3205 RangeT odsOperands;
3206};
3207class BVSModOpAdaptor : public BVSModOpGenericAdaptor<::mlir::ValueRange> {
3208public:
3211
3212 ::llvm::LogicalResult verify(::mlir::Location loc);
3213};
3214class BVSModOp : public ::mlir::Op<BVSModOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3215public:
3216 using Op::Op;
3217 using Op::print;
3219 template <typename RangeT>
3222 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3223 return {};
3224 }
3225
3226 static constexpr ::llvm::StringLiteral getOperationName() {
3227 return ::llvm::StringLiteral("smt.bv.smod");
3228 }
3229
3230 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3231 return {index, 1};
3232 }
3233
3234 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3235 auto valueRange = getODSOperandIndexAndLength(index);
3236 return {std::next(getOperation()->operand_begin(), valueRange.first),
3237 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3238 }
3239
3240 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3241 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3242 }
3243
3244 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3245 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3246 }
3247
3248 ::mlir::OpOperand &getLhsMutable() {
3249 auto range = getODSOperandIndexAndLength(0);
3250 return getOperation()->getOpOperand(range.first);
3251 }
3252
3253 ::mlir::OpOperand &getRhsMutable() {
3254 auto range = getODSOperandIndexAndLength(1);
3255 return getOperation()->getOpOperand(range.first);
3256 }
3257
3258 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3259 return {index, 1};
3260 }
3261
3262 ::mlir::Operation::result_range getODSResults(unsigned index) {
3263 auto valueRange = getODSResultIndexAndLength(index);
3264 return {std::next(getOperation()->result_begin(), valueRange.first),
3265 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3266 }
3267
3268 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3269 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3270 }
3271
3272 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3273 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3274 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3275 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3276 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3277 ::llvm::LogicalResult verifyInvariantsImpl();
3278 ::llvm::LogicalResult verifyInvariants();
3279 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);
3280 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3281 void print(::mlir::OpAsmPrinter &_odsPrinter);
3282 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3283public:
3284};
3285} // namespace smt
3286} // namespace llzk
3287MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVSModOp)
3288
3289namespace llzk {
3290namespace smt {
3291
3292//===----------------------------------------------------------------------===//
3293// ::llzk::smt::BVSRemOp declarations
3294//===----------------------------------------------------------------------===//
3295
3296namespace detail {
3298public:
3299protected:
3300 ::mlir::DictionaryAttr odsAttrs;
3301 ::std::optional<::mlir::OperationName> odsOpName;
3302 ::mlir::RegionRange odsRegions;
3303public:
3304 BVSRemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3305 odsOpName.emplace("smt.bv.srem", odsAttrs.getContext());
3306 }
3307
3308 BVSRemOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3309
3310 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3311 return {index, 1};
3312 }
3313
3314 ::mlir::DictionaryAttr getAttributes() {
3315 return odsAttrs;
3316 }
3317
3318};
3319} // namespace detail
3320template <typename RangeT>
3322 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3324public:
3325 BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3326
3327 BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVSRemOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3328
3329 BVSRemOpGenericAdaptor(RangeT values, const BVSRemOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3330
3331 template <typename LateInst = BVSRemOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVSRemOp>>>
3332 BVSRemOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3333
3334 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3335 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3336 }
3337
3338 RangeT getODSOperands(unsigned index) {
3339 auto valueRange = getODSOperandIndexAndLength(index);
3340 return {std::next(odsOperands.begin(), valueRange.first),
3341 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3342 }
3343
3344 ValueT getLhs() {
3345 return (*getODSOperands(0).begin());
3346 }
3347
3348 ValueT getRhs() {
3349 return (*getODSOperands(1).begin());
3350 }
3351
3352 RangeT getOperands() {
3353 return odsOperands;
3354 }
3355
3356private:
3357 RangeT odsOperands;
3358};
3359class BVSRemOpAdaptor : public BVSRemOpGenericAdaptor<::mlir::ValueRange> {
3360public:
3363
3364 ::llvm::LogicalResult verify(::mlir::Location loc);
3365};
3366class BVSRemOp : public ::mlir::Op<BVSRemOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3367public:
3368 using Op::Op;
3369 using Op::print;
3371 template <typename RangeT>
3374 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3375 return {};
3376 }
3377
3378 static constexpr ::llvm::StringLiteral getOperationName() {
3379 return ::llvm::StringLiteral("smt.bv.srem");
3380 }
3381
3382 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3383 return {index, 1};
3384 }
3385
3386 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3387 auto valueRange = getODSOperandIndexAndLength(index);
3388 return {std::next(getOperation()->operand_begin(), valueRange.first),
3389 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3390 }
3391
3392 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3393 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3394 }
3395
3396 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3397 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3398 }
3399
3400 ::mlir::OpOperand &getLhsMutable() {
3401 auto range = getODSOperandIndexAndLength(0);
3402 return getOperation()->getOpOperand(range.first);
3403 }
3404
3405 ::mlir::OpOperand &getRhsMutable() {
3406 auto range = getODSOperandIndexAndLength(1);
3407 return getOperation()->getOpOperand(range.first);
3408 }
3409
3410 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3411 return {index, 1};
3412 }
3413
3414 ::mlir::Operation::result_range getODSResults(unsigned index) {
3415 auto valueRange = getODSResultIndexAndLength(index);
3416 return {std::next(getOperation()->result_begin(), valueRange.first),
3417 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3418 }
3419
3420 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3421 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3422 }
3423
3424 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3425 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3426 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3427 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3428 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3429 ::llvm::LogicalResult verifyInvariantsImpl();
3430 ::llvm::LogicalResult verifyInvariants();
3431 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);
3432 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3433 void print(::mlir::OpAsmPrinter &_odsPrinter);
3434 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3435public:
3436};
3437} // namespace smt
3438} // namespace llzk
3439MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVSRemOp)
3440
3441namespace llzk {
3442namespace smt {
3443
3444//===----------------------------------------------------------------------===//
3445// ::llzk::smt::BVShlOp declarations
3446//===----------------------------------------------------------------------===//
3447
3448namespace detail {
3450public:
3451protected:
3452 ::mlir::DictionaryAttr odsAttrs;
3453 ::std::optional<::mlir::OperationName> odsOpName;
3454 ::mlir::RegionRange odsRegions;
3455public:
3456 BVShlOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3457 odsOpName.emplace("smt.bv.shl", odsAttrs.getContext());
3458 }
3459
3460 BVShlOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3461
3462 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3463 return {index, 1};
3464 }
3465
3466 ::mlir::DictionaryAttr getAttributes() {
3467 return odsAttrs;
3468 }
3469
3470};
3471} // namespace detail
3472template <typename RangeT>
3474 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3476public:
3477 BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3478
3479 BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVShlOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3480
3481 BVShlOpGenericAdaptor(RangeT values, const BVShlOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3482
3483 template <typename LateInst = BVShlOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVShlOp>>>
3484 BVShlOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3485
3486 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3487 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3488 }
3489
3490 RangeT getODSOperands(unsigned index) {
3491 auto valueRange = getODSOperandIndexAndLength(index);
3492 return {std::next(odsOperands.begin(), valueRange.first),
3493 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3494 }
3495
3496 ValueT getLhs() {
3497 return (*getODSOperands(0).begin());
3498 }
3499
3500 ValueT getRhs() {
3501 return (*getODSOperands(1).begin());
3502 }
3503
3504 RangeT getOperands() {
3505 return odsOperands;
3506 }
3507
3508private:
3509 RangeT odsOperands;
3510};
3511class BVShlOpAdaptor : public BVShlOpGenericAdaptor<::mlir::ValueRange> {
3512public:
3515
3516 ::llvm::LogicalResult verify(::mlir::Location loc);
3517};
3518class BVShlOp : public ::mlir::Op<BVShlOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3519public:
3520 using Op::Op;
3521 using Op::print;
3523 template <typename RangeT>
3526 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3527 return {};
3528 }
3529
3530 static constexpr ::llvm::StringLiteral getOperationName() {
3531 return ::llvm::StringLiteral("smt.bv.shl");
3532 }
3533
3534 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3535 return {index, 1};
3536 }
3537
3538 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3539 auto valueRange = getODSOperandIndexAndLength(index);
3540 return {std::next(getOperation()->operand_begin(), valueRange.first),
3541 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3542 }
3543
3544 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3545 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3546 }
3547
3548 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3549 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3550 }
3551
3552 ::mlir::OpOperand &getLhsMutable() {
3553 auto range = getODSOperandIndexAndLength(0);
3554 return getOperation()->getOpOperand(range.first);
3555 }
3556
3557 ::mlir::OpOperand &getRhsMutable() {
3558 auto range = getODSOperandIndexAndLength(1);
3559 return getOperation()->getOpOperand(range.first);
3560 }
3561
3562 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3563 return {index, 1};
3564 }
3565
3566 ::mlir::Operation::result_range getODSResults(unsigned index) {
3567 auto valueRange = getODSResultIndexAndLength(index);
3568 return {std::next(getOperation()->result_begin(), valueRange.first),
3569 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3570 }
3571
3572 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3573 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3574 }
3575
3576 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3577 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3578 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3579 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3580 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3581 ::llvm::LogicalResult verifyInvariantsImpl();
3582 ::llvm::LogicalResult verifyInvariants();
3583 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);
3584 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3585 void print(::mlir::OpAsmPrinter &_odsPrinter);
3586 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3587public:
3588};
3589} // namespace smt
3590} // namespace llzk
3591MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVShlOp)
3592
3593namespace llzk {
3594namespace smt {
3595
3596//===----------------------------------------------------------------------===//
3597// ::llzk::smt::BVUDivOp declarations
3598//===----------------------------------------------------------------------===//
3599
3600namespace detail {
3602public:
3603protected:
3604 ::mlir::DictionaryAttr odsAttrs;
3605 ::std::optional<::mlir::OperationName> odsOpName;
3606 ::mlir::RegionRange odsRegions;
3607public:
3608 BVUDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3609 odsOpName.emplace("smt.bv.udiv", odsAttrs.getContext());
3610 }
3611
3612 BVUDivOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3613
3614 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3615 return {index, 1};
3616 }
3617
3618 ::mlir::DictionaryAttr getAttributes() {
3619 return odsAttrs;
3620 }
3621
3622};
3623} // namespace detail
3624template <typename RangeT>
3626 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3628public:
3629 BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3630
3631 BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVUDivOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3632
3633 BVUDivOpGenericAdaptor(RangeT values, const BVUDivOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3634
3635 template <typename LateInst = BVUDivOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVUDivOp>>>
3636 BVUDivOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3637
3638 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3639 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3640 }
3641
3642 RangeT getODSOperands(unsigned index) {
3643 auto valueRange = getODSOperandIndexAndLength(index);
3644 return {std::next(odsOperands.begin(), valueRange.first),
3645 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3646 }
3647
3648 ValueT getLhs() {
3649 return (*getODSOperands(0).begin());
3650 }
3651
3652 ValueT getRhs() {
3653 return (*getODSOperands(1).begin());
3654 }
3655
3656 RangeT getOperands() {
3657 return odsOperands;
3658 }
3659
3660private:
3661 RangeT odsOperands;
3662};
3663class BVUDivOpAdaptor : public BVUDivOpGenericAdaptor<::mlir::ValueRange> {
3664public:
3667
3668 ::llvm::LogicalResult verify(::mlir::Location loc);
3669};
3670class BVUDivOp : public ::mlir::Op<BVUDivOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3671public:
3672 using Op::Op;
3673 using Op::print;
3675 template <typename RangeT>
3678 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3679 return {};
3680 }
3681
3682 static constexpr ::llvm::StringLiteral getOperationName() {
3683 return ::llvm::StringLiteral("smt.bv.udiv");
3684 }
3685
3686 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3687 return {index, 1};
3688 }
3689
3690 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3691 auto valueRange = getODSOperandIndexAndLength(index);
3692 return {std::next(getOperation()->operand_begin(), valueRange.first),
3693 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3694 }
3695
3696 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3697 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3698 }
3699
3700 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3701 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3702 }
3703
3704 ::mlir::OpOperand &getLhsMutable() {
3705 auto range = getODSOperandIndexAndLength(0);
3706 return getOperation()->getOpOperand(range.first);
3707 }
3708
3709 ::mlir::OpOperand &getRhsMutable() {
3710 auto range = getODSOperandIndexAndLength(1);
3711 return getOperation()->getOpOperand(range.first);
3712 }
3713
3714 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3715 return {index, 1};
3716 }
3717
3718 ::mlir::Operation::result_range getODSResults(unsigned index) {
3719 auto valueRange = getODSResultIndexAndLength(index);
3720 return {std::next(getOperation()->result_begin(), valueRange.first),
3721 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3722 }
3723
3724 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3725 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3726 }
3727
3728 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3729 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3730 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3731 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3732 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3733 ::llvm::LogicalResult verifyInvariantsImpl();
3734 ::llvm::LogicalResult verifyInvariants();
3735 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);
3736 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3737 void print(::mlir::OpAsmPrinter &_odsPrinter);
3738 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3739public:
3740};
3741} // namespace smt
3742} // namespace llzk
3743MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVUDivOp)
3744
3745namespace llzk {
3746namespace smt {
3747
3748//===----------------------------------------------------------------------===//
3749// ::llzk::smt::BVURemOp declarations
3750//===----------------------------------------------------------------------===//
3751
3752namespace detail {
3754public:
3755protected:
3756 ::mlir::DictionaryAttr odsAttrs;
3757 ::std::optional<::mlir::OperationName> odsOpName;
3758 ::mlir::RegionRange odsRegions;
3759public:
3760 BVURemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3761 odsOpName.emplace("smt.bv.urem", odsAttrs.getContext());
3762 }
3763
3764 BVURemOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3765
3766 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3767 return {index, 1};
3768 }
3769
3770 ::mlir::DictionaryAttr getAttributes() {
3771 return odsAttrs;
3772 }
3773
3774};
3775} // namespace detail
3776template <typename RangeT>
3778 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3780public:
3781 BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3782
3783 BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVURemOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3784
3785 BVURemOpGenericAdaptor(RangeT values, const BVURemOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3786
3787 template <typename LateInst = BVURemOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVURemOp>>>
3788 BVURemOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3789
3790 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3791 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3792 }
3793
3794 RangeT getODSOperands(unsigned index) {
3795 auto valueRange = getODSOperandIndexAndLength(index);
3796 return {std::next(odsOperands.begin(), valueRange.first),
3797 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3798 }
3799
3800 ValueT getLhs() {
3801 return (*getODSOperands(0).begin());
3802 }
3803
3804 ValueT getRhs() {
3805 return (*getODSOperands(1).begin());
3806 }
3807
3808 RangeT getOperands() {
3809 return odsOperands;
3810 }
3811
3812private:
3813 RangeT odsOperands;
3814};
3815class BVURemOpAdaptor : public BVURemOpGenericAdaptor<::mlir::ValueRange> {
3816public:
3819
3820 ::llvm::LogicalResult verify(::mlir::Location loc);
3821};
3822class BVURemOp : public ::mlir::Op<BVURemOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3823public:
3824 using Op::Op;
3825 using Op::print;
3827 template <typename RangeT>
3830 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3831 return {};
3832 }
3833
3834 static constexpr ::llvm::StringLiteral getOperationName() {
3835 return ::llvm::StringLiteral("smt.bv.urem");
3836 }
3837
3838 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3839 return {index, 1};
3840 }
3841
3842 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3843 auto valueRange = getODSOperandIndexAndLength(index);
3844 return {std::next(getOperation()->operand_begin(), valueRange.first),
3845 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3846 }
3847
3848 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3849 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3850 }
3851
3852 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3853 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3854 }
3855
3856 ::mlir::OpOperand &getLhsMutable() {
3857 auto range = getODSOperandIndexAndLength(0);
3858 return getOperation()->getOpOperand(range.first);
3859 }
3860
3861 ::mlir::OpOperand &getRhsMutable() {
3862 auto range = getODSOperandIndexAndLength(1);
3863 return getOperation()->getOpOperand(range.first);
3864 }
3865
3866 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3867 return {index, 1};
3868 }
3869
3870 ::mlir::Operation::result_range getODSResults(unsigned index) {
3871 auto valueRange = getODSResultIndexAndLength(index);
3872 return {std::next(getOperation()->result_begin(), valueRange.first),
3873 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3874 }
3875
3876 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3877 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3878 }
3879
3880 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3881 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3882 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3883 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3884 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3885 ::llvm::LogicalResult verifyInvariantsImpl();
3886 ::llvm::LogicalResult verifyInvariants();
3887 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);
3888 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3889 void print(::mlir::OpAsmPrinter &_odsPrinter);
3890 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3891public:
3892};
3893} // namespace smt
3894} // namespace llzk
3895MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVURemOp)
3896
3897namespace llzk {
3898namespace smt {
3899
3900//===----------------------------------------------------------------------===//
3901// ::llzk::smt::BVXOrOp declarations
3902//===----------------------------------------------------------------------===//
3903
3904namespace detail {
3906public:
3907protected:
3908 ::mlir::DictionaryAttr odsAttrs;
3909 ::std::optional<::mlir::OperationName> odsOpName;
3910 ::mlir::RegionRange odsRegions;
3911public:
3912 BVXOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3913 odsOpName.emplace("smt.bv.xor", odsAttrs.getContext());
3914 }
3915
3916 BVXOrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3917
3918 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3919 return {index, 1};
3920 }
3921
3922 ::mlir::DictionaryAttr getAttributes() {
3923 return odsAttrs;
3924 }
3925
3926};
3927} // namespace detail
3928template <typename RangeT>
3930 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3932public:
3933 BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3934
3935 BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVXOrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3936
3937 BVXOrOpGenericAdaptor(RangeT values, const BVXOrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3938
3939 template <typename LateInst = BVXOrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVXOrOp>>>
3940 BVXOrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3941
3942 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3943 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3944 }
3945
3946 RangeT getODSOperands(unsigned index) {
3947 auto valueRange = getODSOperandIndexAndLength(index);
3948 return {std::next(odsOperands.begin(), valueRange.first),
3949 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3950 }
3951
3952 ValueT getLhs() {
3953 return (*getODSOperands(0).begin());
3954 }
3955
3956 ValueT getRhs() {
3957 return (*getODSOperands(1).begin());
3958 }
3959
3960 RangeT getOperands() {
3961 return odsOperands;
3962 }
3963
3964private:
3965 RangeT odsOperands;
3966};
3967class BVXOrOpAdaptor : public BVXOrOpGenericAdaptor<::mlir::ValueRange> {
3968public:
3971
3972 ::llvm::LogicalResult verify(::mlir::Location loc);
3973};
3974class BVXOrOp : public ::mlir::Op<BVXOrOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameOperandsAndResultType, ::mlir::InferTypeOpInterface::Trait> {
3975public:
3976 using Op::Op;
3977 using Op::print;
3979 template <typename RangeT>
3982 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3983 return {};
3984 }
3985
3986 static constexpr ::llvm::StringLiteral getOperationName() {
3987 return ::llvm::StringLiteral("smt.bv.xor");
3988 }
3989
3990 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3991 return {index, 1};
3992 }
3993
3994 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3995 auto valueRange = getODSOperandIndexAndLength(index);
3996 return {std::next(getOperation()->operand_begin(), valueRange.first),
3997 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3998 }
3999
4000 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
4001 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
4002 }
4003
4004 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
4005 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
4006 }
4007
4008 ::mlir::OpOperand &getLhsMutable() {
4009 auto range = getODSOperandIndexAndLength(0);
4010 return getOperation()->getOpOperand(range.first);
4011 }
4012
4013 ::mlir::OpOperand &getRhsMutable() {
4014 auto range = getODSOperandIndexAndLength(1);
4015 return getOperation()->getOpOperand(range.first);
4016 }
4017
4018 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4019 return {index, 1};
4020 }
4021
4022 ::mlir::Operation::result_range getODSResults(unsigned index) {
4023 auto valueRange = getODSResultIndexAndLength(index);
4024 return {std::next(getOperation()->result_begin(), valueRange.first),
4025 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4026 }
4027
4028 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
4029 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
4030 }
4031
4032 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
4033 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
4034 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
4035 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4036 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4037 ::llvm::LogicalResult verifyInvariantsImpl();
4038 ::llvm::LogicalResult verifyInvariants();
4039 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);
4040 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4041 void print(::mlir::OpAsmPrinter &_odsPrinter);
4042 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4043public:
4044};
4045} // namespace smt
4046} // namespace llzk
4047MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVXOrOp)
4048
4049namespace llzk {
4050namespace smt {
4051
4052//===----------------------------------------------------------------------===//
4053// ::llzk::smt::BoolConstantOp declarations
4054//===----------------------------------------------------------------------===//
4055
4056namespace detail {
4058public:
4059 struct Properties {
4060 using valueTy = ::mlir::BoolAttr;
4062
4063 auto getValue() {
4064 auto &propStorage = this->value;
4065 return ::llvm::cast<::mlir::BoolAttr>(propStorage);
4066 }
4067 void setValue(const ::mlir::BoolAttr &propValue) {
4068 this->value = propValue;
4069 }
4070 bool operator==(const Properties &rhs) const {
4071 return
4072 rhs.value == this->value &&
4073 true;
4074 }
4075 bool operator!=(const Properties &rhs) const {
4076 return !(*this == rhs);
4077 }
4078 };
4079protected:
4080 ::mlir::DictionaryAttr odsAttrs;
4081 ::std::optional<::mlir::OperationName> odsOpName;
4083 ::mlir::RegionRange odsRegions;
4084public:
4085 BoolConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
4086 odsOpName.emplace("smt.constant", odsAttrs.getContext());
4087 }
4088
4090
4091 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4092 return {index, 1};
4093 }
4094
4096 return properties;
4097 }
4098
4099 ::mlir::DictionaryAttr getAttributes() {
4100 return odsAttrs;
4101 }
4102
4103 ::mlir::BoolAttr getValueAttr() {
4104 auto attr = ::llvm::cast<::mlir::BoolAttr>(getProperties().value);
4105 return attr;
4106 }
4107
4108 bool getValue();
4109};
4110} // namespace detail
4111template <typename RangeT>
4113 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4115public:
4116 BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4117
4118 BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BoolConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
4119
4120 BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BoolConstantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
4121
4122 BoolConstantOpGenericAdaptor(RangeT values, const BoolConstantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4123
4124 template <typename LateInst = BoolConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, BoolConstantOp>>>
4125 BoolConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4126
4127 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4128 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4129 }
4130
4131 RangeT getODSOperands(unsigned index) {
4132 auto valueRange = getODSOperandIndexAndLength(index);
4133 return {std::next(odsOperands.begin(), valueRange.first),
4134 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4135 }
4136
4137 RangeT getOperands() {
4138 return odsOperands;
4139 }
4140
4141private:
4142 RangeT odsOperands;
4143};
4144class BoolConstantOpAdaptor : public BoolConstantOpGenericAdaptor<::mlir::ValueRange> {
4145public:
4148
4149 ::llvm::LogicalResult verify(::mlir::Location loc);
4150};
4151class BoolConstantOp : public ::mlir::Op<BoolConstantOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::ConstantLike, ::mlir::OpAsmOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
4152public:
4153 using Op::Op;
4154 using Op::print;
4156 template <typename RangeT>
4160 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4161 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
4162 return ::llvm::ArrayRef(attrNames);
4163 }
4164
4165 ::mlir::StringAttr getValueAttrName() {
4166 return getAttributeNameForIndex(0);
4167 }
4168
4169 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
4170 return getAttributeNameForIndex(name, 0);
4171 }
4172
4173 static constexpr ::llvm::StringLiteral getOperationName() {
4174 return ::llvm::StringLiteral("smt.constant");
4175 }
4176
4177 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4178 return {index, 1};
4179 }
4180
4181 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4182 auto valueRange = getODSOperandIndexAndLength(index);
4183 return {std::next(getOperation()->operand_begin(), valueRange.first),
4184 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4185 }
4186
4187 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4188 return {index, 1};
4189 }
4190
4191 ::mlir::Operation::result_range getODSResults(unsigned index) {
4192 auto valueRange = getODSResultIndexAndLength(index);
4193 return {std::next(getOperation()->result_begin(), valueRange.first),
4194 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4195 }
4196
4197 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
4198 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
4199 }
4200
4201 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4202 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
4203 static llvm::hash_code computePropertiesHash(const Properties &prop);
4204 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
4205 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
4206 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
4207 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4208 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
4209 void writeProperties(::mlir::DialectBytecodeWriter &writer);
4210 ::mlir::BoolAttr getValueAttr() {
4211 return ::llvm::cast<::mlir::BoolAttr>(getProperties().value);
4212 }
4213
4214 bool getValue();
4215 void setValueAttr(::mlir::BoolAttr attr) {
4216 getProperties().value = attr;
4217 }
4218
4219 void setValue(bool attrValue);
4220 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::BoolAttr value);
4221 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::BoolAttr value);
4222 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::BoolAttr value);
4223 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, bool value);
4224 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, bool value);
4225 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, bool value);
4226 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4227 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4228 ::llvm::LogicalResult verifyInvariantsImpl();
4229 ::llvm::LogicalResult verifyInvariants();
4230 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
4231 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);
4232 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
4233 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4234 void print(::mlir::OpAsmPrinter &_odsPrinter);
4235 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4236private:
4237 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
4238 return getAttributeNameForIndex((*this)->getName(), index);
4239 }
4240
4241 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
4242 assert(index < 1 && "invalid attribute index");
4243 assert(name.getStringRef() == getOperationName() && "invalid operation name");
4244 assert(name.isRegistered() && "Operation isn't registered, missing a "
4245 "dependent dialect loading?");
4246 return name.getAttributeNames()[index];
4247 }
4248
4249public:
4250};
4251} // namespace smt
4252} // namespace llzk
4253MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BoolConstantOp)
4254
4255namespace llzk {
4256namespace smt {
4257
4258//===----------------------------------------------------------------------===//
4259// ::llzk::smt::CheckOp declarations
4260//===----------------------------------------------------------------------===//
4261
4262namespace detail {
4264public:
4265protected:
4266 ::mlir::DictionaryAttr odsAttrs;
4267 ::std::optional<::mlir::OperationName> odsOpName;
4268 ::mlir::RegionRange odsRegions;
4269public:
4270 CheckOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4271 odsOpName.emplace("smt.check", odsAttrs.getContext());
4272 }
4273
4274 CheckOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4275
4276 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4277 return {index, 1};
4278 }
4279
4280 ::mlir::DictionaryAttr getAttributes() {
4281 return odsAttrs;
4282 }
4283
4284 ::mlir::Region &getSatRegion() {
4285 return *odsRegions[0];
4286 }
4287
4288 ::mlir::Region &getUnknownRegion() {
4289 return *odsRegions[1];
4290 }
4291
4292 ::mlir::Region &getUnsatRegion() {
4293 return *odsRegions[2];
4294 }
4295
4296 ::mlir::RegionRange getRegions() {
4297 return odsRegions;
4298 }
4299
4300};
4301} // namespace detail
4302template <typename RangeT>
4304 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4306public:
4307 CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4308
4309 CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : CheckOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4310
4311 CheckOpGenericAdaptor(RangeT values, const CheckOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4312
4313 template <typename LateInst = CheckOp, typename = std::enable_if_t<std::is_same_v<LateInst, CheckOp>>>
4314 CheckOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4315
4316 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4317 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4318 }
4319
4320 RangeT getODSOperands(unsigned index) {
4321 auto valueRange = getODSOperandIndexAndLength(index);
4322 return {std::next(odsOperands.begin(), valueRange.first),
4323 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4324 }
4325
4326 RangeT getOperands() {
4327 return odsOperands;
4328 }
4329
4330private:
4331 RangeT odsOperands;
4332};
4333class CheckOpAdaptor : public CheckOpGenericAdaptor<::mlir::ValueRange> {
4334public:
4337
4338 ::llvm::LogicalResult verify(::mlir::Location loc);
4339};
4340class CheckOp : public ::mlir::Op<CheckOp, ::mlir::OpTrait::NRegions<3>::Impl, ::mlir::OpTrait::VariadicResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::SingleBlockImplicitTerminator<smt::YieldOp>::Impl, ::mlir::OpTrait::OpInvariants> {
4341public:
4342 using Op::Op;
4343 using Op::print;
4345 template <typename RangeT>
4348 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4349 return {};
4350 }
4351
4352 static constexpr ::llvm::StringLiteral getOperationName() {
4353 return ::llvm::StringLiteral("smt.check");
4354 }
4355
4356 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4357 return {index, 1};
4358 }
4359
4360 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4361 auto valueRange = getODSOperandIndexAndLength(index);
4362 return {std::next(getOperation()->operand_begin(), valueRange.first),
4363 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4364 }
4365
4366 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
4367 ::mlir::Operation::result_range getODSResults(unsigned index) {
4368 auto valueRange = getODSResultIndexAndLength(index);
4369 return {std::next(getOperation()->result_begin(), valueRange.first),
4370 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4371 }
4372
4373 ::mlir::Operation::result_range getResults() {
4374 return getODSResults(0);
4375 }
4376
4377 ::mlir::Region &getSatRegion() {
4378 return (*this)->getRegion(0);
4379 }
4380
4381 ::mlir::Region &getUnknownRegion() {
4382 return (*this)->getRegion(1);
4383 }
4384
4385 ::mlir::Region &getUnsatRegion() {
4386 return (*this)->getRegion(2);
4387 }
4388
4389 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange results);
4390 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4391 ::llvm::LogicalResult verifyInvariantsImpl();
4392 ::llvm::LogicalResult verifyInvariants();
4393 ::llvm::LogicalResult verifyRegions();
4394 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4395 void print(::mlir::OpAsmPrinter &_odsPrinter);
4396public:
4397};
4398} // namespace smt
4399} // namespace llzk
4400MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::CheckOp)
4401
4402namespace llzk {
4403namespace smt {
4404
4405//===----------------------------------------------------------------------===//
4406// ::llzk::smt::ConcatOp declarations
4407//===----------------------------------------------------------------------===//
4408
4409namespace detail {
4411public:
4412protected:
4413 ::mlir::DictionaryAttr odsAttrs;
4414 ::std::optional<::mlir::OperationName> odsOpName;
4415 ::mlir::RegionRange odsRegions;
4416public:
4417 ConcatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4418 odsOpName.emplace("smt.bv.concat", odsAttrs.getContext());
4419 }
4420
4421 ConcatOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4422
4423 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4424 return {index, 1};
4425 }
4426
4427 ::mlir::DictionaryAttr getAttributes() {
4428 return odsAttrs;
4429 }
4430
4431};
4432} // namespace detail
4433template <typename RangeT>
4435 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4437public:
4438 ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4439
4440 ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ConcatOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4441
4442 ConcatOpGenericAdaptor(RangeT values, const ConcatOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4443
4444 template <typename LateInst = ConcatOp, typename = std::enable_if_t<std::is_same_v<LateInst, ConcatOp>>>
4445 ConcatOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4446
4447 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4448 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4449 }
4450
4451 RangeT getODSOperands(unsigned index) {
4452 auto valueRange = getODSOperandIndexAndLength(index);
4453 return {std::next(odsOperands.begin(), valueRange.first),
4454 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4455 }
4456
4457 ValueT getLhs() {
4458 return (*getODSOperands(0).begin());
4459 }
4460
4461 ValueT getRhs() {
4462 return (*getODSOperands(1).begin());
4463 }
4464
4465 RangeT getOperands() {
4466 return odsOperands;
4467 }
4468
4469private:
4470 RangeT odsOperands;
4471};
4472class ConcatOpAdaptor : public ConcatOpGenericAdaptor<::mlir::ValueRange> {
4473public:
4476
4477 ::llvm::LogicalResult verify(::mlir::Location loc);
4478};
4479class ConcatOp : public ::mlir::Op<ConcatOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
4480public:
4481 using Op::Op;
4482 using Op::print;
4484 template <typename RangeT>
4487 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4488 return {};
4489 }
4490
4491 static constexpr ::llvm::StringLiteral getOperationName() {
4492 return ::llvm::StringLiteral("smt.bv.concat");
4493 }
4494
4495 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4496 return {index, 1};
4497 }
4498
4499 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4500 auto valueRange = getODSOperandIndexAndLength(index);
4501 return {std::next(getOperation()->operand_begin(), valueRange.first),
4502 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4503 }
4504
4505 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
4506 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
4507 }
4508
4509 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
4510 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
4511 }
4512
4513 ::mlir::OpOperand &getLhsMutable() {
4514 auto range = getODSOperandIndexAndLength(0);
4515 return getOperation()->getOpOperand(range.first);
4516 }
4517
4518 ::mlir::OpOperand &getRhsMutable() {
4519 auto range = getODSOperandIndexAndLength(1);
4520 return getOperation()->getOpOperand(range.first);
4521 }
4522
4523 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4524 return {index, 1};
4525 }
4526
4527 ::mlir::Operation::result_range getODSResults(unsigned index) {
4528 auto valueRange = getODSResultIndexAndLength(index);
4529 return {std::next(getOperation()->result_begin(), valueRange.first),
4530 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4531 }
4532
4533 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
4534 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
4535 }
4536
4537 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
4538 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
4539 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
4540 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4541 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4542 ::llvm::LogicalResult verifyInvariantsImpl();
4543 ::llvm::LogicalResult verifyInvariants();
4544 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);
4545 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4546 void print(::mlir::OpAsmPrinter &_odsPrinter);
4547 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4548public:
4549};
4550} // namespace smt
4551} // namespace llzk
4552MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ConcatOp)
4553
4554namespace llzk {
4555namespace smt {
4556
4557//===----------------------------------------------------------------------===//
4558// ::llzk::smt::DeclareFunOp declarations
4559//===----------------------------------------------------------------------===//
4560
4561namespace detail {
4563public:
4564 struct Properties {
4565 using namePrefixTy = ::mlir::StringAttr;
4567
4569 auto &propStorage = this->namePrefix;
4570 return ::llvm::dyn_cast_or_null<::mlir::StringAttr>(propStorage);
4571 }
4572 void setNamePrefix(const ::mlir::StringAttr &propValue) {
4573 this->namePrefix = propValue;
4574 }
4575 bool operator==(const Properties &rhs) const {
4576 return
4577 rhs.namePrefix == this->namePrefix &&
4578 true;
4579 }
4580 bool operator!=(const Properties &rhs) const {
4581 return !(*this == rhs);
4582 }
4583 };
4584protected:
4585 ::mlir::DictionaryAttr odsAttrs;
4586 ::std::optional<::mlir::OperationName> odsOpName;
4588 ::mlir::RegionRange odsRegions;
4589public:
4590 DeclareFunOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
4591 odsOpName.emplace("smt.declare_fun", odsAttrs.getContext());
4592 }
4593
4595
4596 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4597 return {index, 1};
4598 }
4599
4601 return properties;
4602 }
4603
4604 ::mlir::DictionaryAttr getAttributes() {
4605 return odsAttrs;
4606 }
4607
4608 ::mlir::StringAttr getNamePrefixAttr() {
4609 auto attr = ::llvm::dyn_cast_or_null<::mlir::StringAttr>(getProperties().namePrefix);
4610 return attr;
4611 }
4612
4613 ::std::optional< ::llvm::StringRef > getNamePrefix();
4614};
4615} // namespace detail
4616template <typename RangeT>
4618 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4620public:
4621 DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4622
4623 DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : DeclareFunOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
4624
4625 DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : DeclareFunOpGenericAdaptor(values, attrs, Properties{}, {}) {}
4626
4627 DeclareFunOpGenericAdaptor(RangeT values, const DeclareFunOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4628
4629 template <typename LateInst = DeclareFunOp, typename = std::enable_if_t<std::is_same_v<LateInst, DeclareFunOp>>>
4630 DeclareFunOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4631
4632 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4633 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4634 }
4635
4636 RangeT getODSOperands(unsigned index) {
4637 auto valueRange = getODSOperandIndexAndLength(index);
4638 return {std::next(odsOperands.begin(), valueRange.first),
4639 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4640 }
4641
4642 RangeT getOperands() {
4643 return odsOperands;
4644 }
4645
4646private:
4647 RangeT odsOperands;
4648};
4649class DeclareFunOpAdaptor : public DeclareFunOpGenericAdaptor<::mlir::ValueRange> {
4650public:
4653
4654 ::llvm::LogicalResult verify(::mlir::Location loc);
4655};
4656class DeclareFunOp : public ::mlir::Op<DeclareFunOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::OpAsmOpInterface::Trait, ::mlir::MemoryEffectOpInterface::Trait> {
4657public:
4658 using Op::Op;
4659 using Op::print;
4661 template <typename RangeT>
4665 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4666 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("namePrefix")};
4667 return ::llvm::ArrayRef(attrNames);
4668 }
4669
4670 ::mlir::StringAttr getNamePrefixAttrName() {
4671 return getAttributeNameForIndex(0);
4672 }
4673
4674 static ::mlir::StringAttr getNamePrefixAttrName(::mlir::OperationName name) {
4675 return getAttributeNameForIndex(name, 0);
4676 }
4677
4678 static constexpr ::llvm::StringLiteral getOperationName() {
4679 return ::llvm::StringLiteral("smt.declare_fun");
4680 }
4681
4682 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4683 return {index, 1};
4684 }
4685
4686 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4687 auto valueRange = getODSOperandIndexAndLength(index);
4688 return {std::next(getOperation()->operand_begin(), valueRange.first),
4689 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4690 }
4691
4692 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4693 return {index, 1};
4694 }
4695
4696 ::mlir::Operation::result_range getODSResults(unsigned index) {
4697 auto valueRange = getODSResultIndexAndLength(index);
4698 return {std::next(getOperation()->result_begin(), valueRange.first),
4699 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4700 }
4701
4702 ::mlir::TypedValue<::mlir::Type> getResult() {
4703 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
4704 }
4705
4706 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4707 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
4708 static llvm::hash_code computePropertiesHash(const Properties &prop);
4709 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
4710 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
4711 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
4712 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4713 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
4714 void writeProperties(::mlir::DialectBytecodeWriter &writer);
4715 ::mlir::StringAttr getNamePrefixAttr() {
4716 return ::llvm::dyn_cast_or_null<::mlir::StringAttr>(getProperties().namePrefix);
4717 }
4718
4719 ::std::optional< ::llvm::StringRef > getNamePrefix();
4720 void setNamePrefixAttr(::mlir::StringAttr attr) {
4721 getProperties().namePrefix = attr;
4722 }
4723
4724 void setNamePrefix(::std::optional<::llvm::StringRef> attrValue);
4725 ::mlir::Attribute removeNamePrefixAttr() {
4726 auto &attr = getProperties().namePrefix;
4727 attr = {};
4728 return attr;
4729 }
4730
4731 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Type type);
4732 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, /*optional*/::mlir::StringAttr namePrefix);
4733 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, /*optional*/::mlir::StringAttr namePrefix);
4734 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4735 ::llvm::LogicalResult verifyInvariantsImpl();
4736 ::llvm::LogicalResult verifyInvariants();
4737 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
4738 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4739 void print(::mlir::OpAsmPrinter &_odsPrinter);
4740 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4741private:
4742 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
4743 return getAttributeNameForIndex((*this)->getName(), index);
4744 }
4745
4746 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
4747 assert(index < 1 && "invalid attribute index");
4748 assert(name.getStringRef() == getOperationName() && "invalid operation name");
4749 assert(name.isRegistered() && "Operation isn't registered, missing a "
4750 "dependent dialect loading?");
4751 return name.getAttributeNames()[index];
4752 }
4753
4754public:
4755};
4756} // namespace smt
4757} // namespace llzk
4758MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::DeclareFunOp)
4759
4760namespace llzk {
4761namespace smt {
4762
4763//===----------------------------------------------------------------------===//
4764// ::llzk::smt::DistinctOp declarations
4765//===----------------------------------------------------------------------===//
4766
4767namespace detail {
4769public:
4770protected:
4771 ::mlir::DictionaryAttr odsAttrs;
4772 ::std::optional<::mlir::OperationName> odsOpName;
4773 ::mlir::RegionRange odsRegions;
4774public:
4775 DistinctOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4776 odsOpName.emplace("smt.distinct", odsAttrs.getContext());
4777 }
4778
4779 DistinctOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4780
4781 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
4782 ::mlir::DictionaryAttr getAttributes() {
4783 return odsAttrs;
4784 }
4785
4786};
4787} // namespace detail
4788template <typename RangeT>
4790 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4792public:
4793 DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4794
4795 DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : DistinctOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4796
4797 DistinctOpGenericAdaptor(RangeT values, const DistinctOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4798
4799 template <typename LateInst = DistinctOp, typename = std::enable_if_t<std::is_same_v<LateInst, DistinctOp>>>
4800 DistinctOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4801
4802 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4803 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4804 }
4805
4806 RangeT getODSOperands(unsigned index) {
4807 auto valueRange = getODSOperandIndexAndLength(index);
4808 return {std::next(odsOperands.begin(), valueRange.first),
4809 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4810 }
4811
4812 RangeT getInputs() {
4813 return getODSOperands(0);
4814 }
4815
4816 RangeT getOperands() {
4817 return odsOperands;
4818 }
4819
4820private:
4821 RangeT odsOperands;
4822};
4823class DistinctOpAdaptor : public DistinctOpGenericAdaptor<::mlir::ValueRange> {
4824public:
4827
4828 ::llvm::LogicalResult verify(::mlir::Location loc);
4829};
4830class DistinctOp : public ::mlir::Op<DistinctOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameTypeOperands, ::mlir::InferTypeOpInterface::Trait> {
4831public:
4832 using Op::Op;
4833 using Op::print;
4835 template <typename RangeT>
4838 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4839 return {};
4840 }
4841
4842 static constexpr ::llvm::StringLiteral getOperationName() {
4843 return ::llvm::StringLiteral("smt.distinct");
4844 }
4845
4846 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
4847 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4848 auto valueRange = getODSOperandIndexAndLength(index);
4849 return {std::next(getOperation()->operand_begin(), valueRange.first),
4850 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4851 }
4852
4853 ::mlir::Operation::operand_range getInputs() {
4854 return getODSOperands(0);
4855 }
4856
4857 ::mlir::MutableOperandRange getInputsMutable();
4858 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4859 return {index, 1};
4860 }
4861
4862 ::mlir::Operation::result_range getODSResults(unsigned index) {
4863 auto valueRange = getODSResultIndexAndLength(index);
4864 return {std::next(getOperation()->result_begin(), valueRange.first),
4865 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4866 }
4867
4868 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
4869 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
4870 }
4871
4872 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
4873 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
4874 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4875 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4876 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4877 void print(::mlir::OpAsmPrinter &p);
4878 ::llvm::LogicalResult verifyInvariantsImpl();
4879 ::llvm::LogicalResult verifyInvariants();
4880 ::llvm::LogicalResult verify();
4881 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);
4882 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4883public:
4884};
4885} // namespace smt
4886} // namespace llzk
4887MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::DistinctOp)
4888
4889namespace llzk {
4890namespace smt {
4891
4892//===----------------------------------------------------------------------===//
4893// ::llzk::smt::EqOp declarations
4894//===----------------------------------------------------------------------===//
4895
4896namespace detail {
4898public:
4899protected:
4900 ::mlir::DictionaryAttr odsAttrs;
4901 ::std::optional<::mlir::OperationName> odsOpName;
4902 ::mlir::RegionRange odsRegions;
4903public:
4904 EqOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4905 odsOpName.emplace("smt.eq", odsAttrs.getContext());
4906 }
4907
4908 EqOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4909
4910 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
4911 ::mlir::DictionaryAttr getAttributes() {
4912 return odsAttrs;
4913 }
4914
4915};
4916} // namespace detail
4917template <typename RangeT>
4919 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4920 using Base = detail::EqOpGenericAdaptorBase;
4921public:
4922 EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4923
4924 EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : EqOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4925
4926 EqOpGenericAdaptor(RangeT values, const EqOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4927
4928 template <typename LateInst = EqOp, typename = std::enable_if_t<std::is_same_v<LateInst, EqOp>>>
4929 EqOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4930
4931 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4932 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4933 }
4934
4935 RangeT getODSOperands(unsigned index) {
4936 auto valueRange = getODSOperandIndexAndLength(index);
4937 return {std::next(odsOperands.begin(), valueRange.first),
4938 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4939 }
4940
4941 RangeT getInputs() {
4942 return getODSOperands(0);
4943 }
4944
4945 RangeT getOperands() {
4946 return odsOperands;
4947 }
4948
4949private:
4950 RangeT odsOperands;
4951};
4952class EqOpAdaptor : public EqOpGenericAdaptor<::mlir::ValueRange> {
4953public:
4955 EqOpAdaptor(EqOp op);
4956
4957 ::llvm::LogicalResult verify(::mlir::Location loc);
4958};
4959class EqOp : public ::mlir::Op<EqOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::SameTypeOperands, ::mlir::InferTypeOpInterface::Trait> {
4960public:
4961 using Op::Op;
4962 using Op::print;
4964 template <typename RangeT>
4967 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4968 return {};
4969 }
4970
4971 static constexpr ::llvm::StringLiteral getOperationName() {
4972 return ::llvm::StringLiteral("smt.eq");
4973 }
4974
4975 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
4976 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4977 auto valueRange = getODSOperandIndexAndLength(index);
4978 return {std::next(getOperation()->operand_begin(), valueRange.first),
4979 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4980 }
4981
4982 ::mlir::Operation::operand_range getInputs() {
4983 return getODSOperands(0);
4984 }
4985
4986 ::mlir::MutableOperandRange getInputsMutable();
4987 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4988 return {index, 1};
4989 }
4990
4991 ::mlir::Operation::result_range getODSResults(unsigned index) {
4992 auto valueRange = getODSResultIndexAndLength(index);
4993 return {std::next(getOperation()->result_begin(), valueRange.first),
4994 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4995 }
4996
4997 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
4998 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
4999 }
5000
5001 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
5002 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
5003 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5004 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5005 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5006 void print(::mlir::OpAsmPrinter &p);
5007 ::llvm::LogicalResult verifyInvariantsImpl();
5008 ::llvm::LogicalResult verifyInvariants();
5009 ::llvm::LogicalResult verify();
5010 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);
5011 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
5012public:
5013};
5014} // namespace smt
5015} // namespace llzk
5016MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::EqOp)
5017
5018namespace llzk {
5019namespace smt {
5020
5021//===----------------------------------------------------------------------===//
5022// ::llzk::smt::ExistsOp declarations
5023//===----------------------------------------------------------------------===//
5024
5025namespace detail {
5027public:
5028 struct Properties {
5029 using boundVarNamesTy = ::mlir::ArrayAttr;
5031
5033 auto &propStorage = this->boundVarNames;
5034 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
5035 }
5036 void setBoundVarNames(const ::mlir::ArrayAttr &propValue) {
5037 this->boundVarNames = propValue;
5038 }
5039 using noPatternTy = ::mlir::UnitAttr;
5041
5043 auto &propStorage = this->noPattern;
5044 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
5045 }
5046 void setNoPattern(const ::mlir::UnitAttr &propValue) {
5047 this->noPattern = propValue;
5048 }
5049 using weightTy = ::mlir::IntegerAttr;
5051
5052 auto getWeight() {
5053 auto &propStorage = this->weight;
5054 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(propStorage);
5055 }
5056 void setWeight(const ::mlir::IntegerAttr &propValue) {
5057 this->weight = propValue;
5058 }
5059 bool operator==(const Properties &rhs) const {
5060 return
5061 rhs.boundVarNames == this->boundVarNames &&
5062 rhs.noPattern == this->noPattern &&
5063 rhs.weight == this->weight &&
5064 true;
5065 }
5066 bool operator!=(const Properties &rhs) const {
5067 return !(*this == rhs);
5068 }
5069 };
5070protected:
5071 ::mlir::DictionaryAttr odsAttrs;
5072 ::std::optional<::mlir::OperationName> odsOpName;
5074 ::mlir::RegionRange odsRegions;
5075public:
5076 ExistsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
5077 odsOpName.emplace("smt.exists", odsAttrs.getContext());
5078 }
5079
5081
5082 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5083 return {index, 1};
5084 }
5085
5087 return properties;
5088 }
5089
5090 ::mlir::DictionaryAttr getAttributes() {
5091 return odsAttrs;
5092 }
5093
5094 ::mlir::IntegerAttr getWeightAttr();
5095 uint32_t getWeight();
5096 ::mlir::UnitAttr getNoPatternAttr();
5097 bool getNoPattern();
5098 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5099 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5100 return attr;
5101 }
5102
5103 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5104 ::mlir::Region &getBody() {
5105 return *odsRegions[0];
5106 }
5107
5108 ::mlir::RegionRange getPatterns() {
5109 return odsRegions.drop_front(1);
5110 }
5111
5112 ::mlir::RegionRange getRegions() {
5113 return odsRegions;
5114 }
5115
5116};
5117} // namespace detail
5118template <typename RangeT>
5120 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5122public:
5123 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5124
5125 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ExistsOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
5126
5127 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ExistsOpGenericAdaptor(values, attrs, Properties{}, {}) {}
5128
5129 ExistsOpGenericAdaptor(RangeT values, const ExistsOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5130
5131 template <typename LateInst = ExistsOp, typename = std::enable_if_t<std::is_same_v<LateInst, ExistsOp>>>
5132 ExistsOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5133
5134 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5135 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5136 }
5137
5138 RangeT getODSOperands(unsigned index) {
5139 auto valueRange = getODSOperandIndexAndLength(index);
5140 return {std::next(odsOperands.begin(), valueRange.first),
5141 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5142 }
5143
5144 RangeT getOperands() {
5145 return odsOperands;
5146 }
5147
5148private:
5149 RangeT odsOperands;
5150};
5151class ExistsOpAdaptor : public ExistsOpGenericAdaptor<::mlir::ValueRange> {
5152public:
5155
5156 ::llvm::LogicalResult verify(::mlir::Location loc);
5157};
5158class ExistsOp : public ::mlir::Op<ExistsOp, ::mlir::OpTrait::AtLeastNRegions<1>::Impl, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::SingleBlockImplicitTerminator<smt::YieldOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::RecursivelySpeculatableImplTrait, ::mlir::OpTrait::HasRecursiveMemoryEffects, ::mlir::InferTypeOpInterface::Trait> {
5159public:
5160 using Op::Op;
5161 using Op::print;
5163 template <typename RangeT>
5167 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5168 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("boundVarNames"), ::llvm::StringRef("noPattern"), ::llvm::StringRef("weight")};
5169 return ::llvm::ArrayRef(attrNames);
5170 }
5171
5172 ::mlir::StringAttr getBoundVarNamesAttrName() {
5173 return getAttributeNameForIndex(0);
5174 }
5175
5176 static ::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name) {
5177 return getAttributeNameForIndex(name, 0);
5178 }
5179
5180 ::mlir::StringAttr getNoPatternAttrName() {
5181 return getAttributeNameForIndex(1);
5182 }
5183
5184 static ::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name) {
5185 return getAttributeNameForIndex(name, 1);
5186 }
5187
5188 ::mlir::StringAttr getWeightAttrName() {
5189 return getAttributeNameForIndex(2);
5190 }
5191
5192 static ::mlir::StringAttr getWeightAttrName(::mlir::OperationName name) {
5193 return getAttributeNameForIndex(name, 2);
5194 }
5195
5196 static constexpr ::llvm::StringLiteral getOperationName() {
5197 return ::llvm::StringLiteral("smt.exists");
5198 }
5199
5200 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5201 return {index, 1};
5202 }
5203
5204 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5205 auto valueRange = getODSOperandIndexAndLength(index);
5206 return {std::next(getOperation()->operand_begin(), valueRange.first),
5207 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5208 }
5209
5210 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5211 return {index, 1};
5212 }
5213
5214 ::mlir::Operation::result_range getODSResults(unsigned index) {
5215 auto valueRange = getODSResultIndexAndLength(index);
5216 return {std::next(getOperation()->result_begin(), valueRange.first),
5217 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5218 }
5219
5220 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5221 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5222 }
5223
5224 ::mlir::Region &getBody() {
5225 return (*this)->getRegion(0);
5226 }
5227
5228 ::mlir::MutableArrayRef<::mlir::Region> getPatterns() {
5229 return (*this)->getRegions().drop_front(1);
5230 }
5231
5232 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5233 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
5234 static llvm::hash_code computePropertiesHash(const Properties &prop);
5235 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
5236 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
5237 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
5238 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5239 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
5240 void writeProperties(::mlir::DialectBytecodeWriter &writer);
5241 ::mlir::IntegerAttr getWeightAttr() {
5242 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(getProperties().weight);
5243 }
5244
5245 uint32_t getWeight();
5246 ::mlir::UnitAttr getNoPatternAttr() {
5247 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().noPattern);
5248 }
5249
5250 bool getNoPattern();
5251 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5252 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5253 }
5254
5255 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5256 void setWeightAttr(::mlir::IntegerAttr attr) {
5257 getProperties().weight = attr;
5258 }
5259
5260 void setWeight(uint32_t attrValue);
5261 void setNoPatternAttr(::mlir::UnitAttr attr) {
5262 getProperties().noPattern = attr;
5263 }
5264
5265 void setNoPattern(bool attrValue);
5266 void setBoundVarNamesAttr(::mlir::ArrayAttr attr) {
5267 getProperties().boundVarNames = attr;
5268 }
5269
5270 ::mlir::Attribute removeNoPatternAttr() {
5271 auto &attr = getProperties().noPattern;
5272 attr = {};
5273 return attr;
5274 }
5275
5276 ::mlir::Attribute removeBoundVarNamesAttr() {
5277 auto &attr = getProperties().boundVarNames;
5278 attr = {};
5279 return attr;
5280 }
5281
5282 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::TypeRange boundVarTypes, llvm::function_ref<mlir::Value(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> bodyBuilder, std::optional<llvm::ArrayRef<mlir::StringRef>> boundVarNames = std::nullopt, llvm::function_ref<mlir::ValueRange(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> patternBuilder = {}, uint32_t weight = 0, bool noPattern = false);
5283 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
5284 ::llvm::LogicalResult verifyInvariantsImpl();
5285 ::llvm::LogicalResult verifyInvariants();
5286 ::llvm::LogicalResult verify();
5287 ::llvm::LogicalResult verifyRegions();
5288 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);
5289 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5290 void print(::mlir::OpAsmPrinter &_odsPrinter);
5291private:
5292 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
5293 return getAttributeNameForIndex((*this)->getName(), index);
5294 }
5295
5296 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
5297 assert(index < 3 && "invalid attribute index");
5298 assert(name.getStringRef() == getOperationName() && "invalid operation name");
5299 assert(name.isRegistered() && "Operation isn't registered, missing a "
5300 "dependent dialect loading?");
5301 return name.getAttributeNames()[index];
5302 }
5303
5304public:
5305};
5306} // namespace smt
5307} // namespace llzk
5308MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ExistsOp)
5309
5310namespace llzk {
5311namespace smt {
5312
5313//===----------------------------------------------------------------------===//
5314// ::llzk::smt::ExtractOp declarations
5315//===----------------------------------------------------------------------===//
5316
5317namespace detail {
5319public:
5320 struct Properties {
5321 using lowBitTy = ::mlir::IntegerAttr;
5323
5324 auto getLowBit() {
5325 auto &propStorage = this->lowBit;
5326 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
5327 }
5328 void setLowBit(const ::mlir::IntegerAttr &propValue) {
5329 this->lowBit = propValue;
5330 }
5331 bool operator==(const Properties &rhs) const {
5332 return
5333 rhs.lowBit == this->lowBit &&
5334 true;
5335 }
5336 bool operator!=(const Properties &rhs) const {
5337 return !(*this == rhs);
5338 }
5339 };
5340protected:
5341 ::mlir::DictionaryAttr odsAttrs;
5342 ::std::optional<::mlir::OperationName> odsOpName;
5344 ::mlir::RegionRange odsRegions;
5345public:
5346 ExtractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
5347 odsOpName.emplace("smt.bv.extract", odsAttrs.getContext());
5348 }
5349
5351
5352 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5353 return {index, 1};
5354 }
5355
5357 return properties;
5358 }
5359
5360 ::mlir::DictionaryAttr getAttributes() {
5361 return odsAttrs;
5362 }
5363
5364 ::mlir::IntegerAttr getLowBitAttr() {
5365 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().lowBit);
5366 return attr;
5367 }
5368
5369 uint32_t getLowBit();
5370};
5371} // namespace detail
5372template <typename RangeT>
5374 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5376public:
5377 ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5378
5379 ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ExtractOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
5380
5381 ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ExtractOpGenericAdaptor(values, attrs, Properties{}, {}) {}
5382
5383 ExtractOpGenericAdaptor(RangeT values, const ExtractOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5384
5385 template <typename LateInst = ExtractOp, typename = std::enable_if_t<std::is_same_v<LateInst, ExtractOp>>>
5386 ExtractOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5387
5388 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5389 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5390 }
5391
5392 RangeT getODSOperands(unsigned index) {
5393 auto valueRange = getODSOperandIndexAndLength(index);
5394 return {std::next(odsOperands.begin(), valueRange.first),
5395 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5396 }
5397
5398 ValueT getInput() {
5399 return (*getODSOperands(0).begin());
5400 }
5401
5402 RangeT getOperands() {
5403 return odsOperands;
5404 }
5405
5406private:
5407 RangeT odsOperands;
5408};
5409class ExtractOpAdaptor : public ExtractOpGenericAdaptor<::mlir::ValueRange> {
5410public:
5413
5414 ::llvm::LogicalResult verify(::mlir::Location loc);
5415};
5416class ExtractOp : public ::mlir::Op<ExtractOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait> {
5417public:
5418 using Op::Op;
5419 using Op::print;
5421 template <typename RangeT>
5425 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5426 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("lowBit")};
5427 return ::llvm::ArrayRef(attrNames);
5428 }
5429
5430 ::mlir::StringAttr getLowBitAttrName() {
5431 return getAttributeNameForIndex(0);
5432 }
5433
5434 static ::mlir::StringAttr getLowBitAttrName(::mlir::OperationName name) {
5435 return getAttributeNameForIndex(name, 0);
5436 }
5437
5438 static constexpr ::llvm::StringLiteral getOperationName() {
5439 return ::llvm::StringLiteral("smt.bv.extract");
5440 }
5441
5442 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5443 return {index, 1};
5444 }
5445
5446 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5447 auto valueRange = getODSOperandIndexAndLength(index);
5448 return {std::next(getOperation()->operand_begin(), valueRange.first),
5449 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5450 }
5451
5452 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
5453 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
5454 }
5455
5456 ::mlir::OpOperand &getInputMutable() {
5457 auto range = getODSOperandIndexAndLength(0);
5458 return getOperation()->getOpOperand(range.first);
5459 }
5460
5461 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5462 return {index, 1};
5463 }
5464
5465 ::mlir::Operation::result_range getODSResults(unsigned index) {
5466 auto valueRange = getODSResultIndexAndLength(index);
5467 return {std::next(getOperation()->result_begin(), valueRange.first),
5468 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5469 }
5470
5471 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
5472 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
5473 }
5474
5475 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5476 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
5477 static llvm::hash_code computePropertiesHash(const Properties &prop);
5478 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
5479 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
5480 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
5481 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5482 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
5483 void writeProperties(::mlir::DialectBytecodeWriter &writer);
5484 ::mlir::IntegerAttr getLowBitAttr() {
5485 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().lowBit);
5486 }
5487
5488 uint32_t getLowBit();
5489 void setLowBitAttr(::mlir::IntegerAttr attr) {
5490 getProperties().lowBit = attr;
5491 }
5492
5493 void setLowBit(uint32_t attrValue);
5494 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr lowBit, ::mlir::Value input);
5495 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr lowBit, ::mlir::Value input);
5496 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, uint32_t lowBit, ::mlir::Value input);
5497 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, uint32_t lowBit, ::mlir::Value input);
5498 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5499 ::llvm::LogicalResult verifyInvariantsImpl();
5500 ::llvm::LogicalResult verifyInvariants();
5501 ::llvm::LogicalResult verify();
5502 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5503 void print(::mlir::OpAsmPrinter &_odsPrinter);
5504 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
5505private:
5506 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
5507 return getAttributeNameForIndex((*this)->getName(), index);
5508 }
5509
5510 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
5511 assert(index < 1 && "invalid attribute index");
5512 assert(name.getStringRef() == getOperationName() && "invalid operation name");
5513 assert(name.isRegistered() && "Operation isn't registered, missing a "
5514 "dependent dialect loading?");
5515 return name.getAttributeNames()[index];
5516 }
5517
5518public:
5519};
5520} // namespace smt
5521} // namespace llzk
5522MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ExtractOp)
5523
5524namespace llzk {
5525namespace smt {
5526
5527//===----------------------------------------------------------------------===//
5528// ::llzk::smt::ForallOp declarations
5529//===----------------------------------------------------------------------===//
5530
5531namespace detail {
5533public:
5534 struct Properties {
5535 using boundVarNamesTy = ::mlir::ArrayAttr;
5537
5539 auto &propStorage = this->boundVarNames;
5540 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
5541 }
5542 void setBoundVarNames(const ::mlir::ArrayAttr &propValue) {
5543 this->boundVarNames = propValue;
5544 }
5545 using noPatternTy = ::mlir::UnitAttr;
5547
5549 auto &propStorage = this->noPattern;
5550 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
5551 }
5552 void setNoPattern(const ::mlir::UnitAttr &propValue) {
5553 this->noPattern = propValue;
5554 }
5555 using weightTy = ::mlir::IntegerAttr;
5557
5558 auto getWeight() {
5559 auto &propStorage = this->weight;
5560 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(propStorage);
5561 }
5562 void setWeight(const ::mlir::IntegerAttr &propValue) {
5563 this->weight = propValue;
5564 }
5565 bool operator==(const Properties &rhs) const {
5566 return
5567 rhs.boundVarNames == this->boundVarNames &&
5568 rhs.noPattern == this->noPattern &&
5569 rhs.weight == this->weight &&
5570 true;
5571 }
5572 bool operator!=(const Properties &rhs) const {
5573 return !(*this == rhs);
5574 }
5575 };
5576protected:
5577 ::mlir::DictionaryAttr odsAttrs;
5578 ::std::optional<::mlir::OperationName> odsOpName;
5580 ::mlir::RegionRange odsRegions;
5581public:
5582 ForallOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
5583 odsOpName.emplace("smt.forall", odsAttrs.getContext());
5584 }
5585
5587
5588 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5589 return {index, 1};
5590 }
5591
5593 return properties;
5594 }
5595
5596 ::mlir::DictionaryAttr getAttributes() {
5597 return odsAttrs;
5598 }
5599
5600 ::mlir::IntegerAttr getWeightAttr();
5601 uint32_t getWeight();
5602 ::mlir::UnitAttr getNoPatternAttr();
5603 bool getNoPattern();
5604 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5605 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5606 return attr;
5607 }
5608
5609 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5610 ::mlir::Region &getBody() {
5611 return *odsRegions[0];
5612 }
5613
5614 ::mlir::RegionRange getPatterns() {
5615 return odsRegions.drop_front(1);
5616 }
5617
5618 ::mlir::RegionRange getRegions() {
5619 return odsRegions;
5620 }
5621
5622};
5623} // namespace detail
5624template <typename RangeT>
5626 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5628public:
5629 ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5630
5631 ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ForallOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
5632
5633 ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ForallOpGenericAdaptor(values, attrs, Properties{}, {}) {}
5634
5635 ForallOpGenericAdaptor(RangeT values, const ForallOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5636
5637 template <typename LateInst = ForallOp, typename = std::enable_if_t<std::is_same_v<LateInst, ForallOp>>>
5638 ForallOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5639
5640 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5641 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5642 }
5643
5644 RangeT getODSOperands(unsigned index) {
5645 auto valueRange = getODSOperandIndexAndLength(index);
5646 return {std::next(odsOperands.begin(), valueRange.first),
5647 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5648 }
5649
5650 RangeT getOperands() {
5651 return odsOperands;
5652 }
5653
5654private:
5655 RangeT odsOperands;
5656};
5657class ForallOpAdaptor : public ForallOpGenericAdaptor<::mlir::ValueRange> {
5658public:
5661
5662 ::llvm::LogicalResult verify(::mlir::Location loc);
5663};
5664class ForallOp : public ::mlir::Op<ForallOp, ::mlir::OpTrait::AtLeastNRegions<1>::Impl, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::SingleBlockImplicitTerminator<smt::YieldOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::RecursivelySpeculatableImplTrait, ::mlir::OpTrait::HasRecursiveMemoryEffects, ::mlir::InferTypeOpInterface::Trait> {
5665public:
5666 using Op::Op;
5667 using Op::print;
5669 template <typename RangeT>
5673 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5674 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("boundVarNames"), ::llvm::StringRef("noPattern"), ::llvm::StringRef("weight")};
5675 return ::llvm::ArrayRef(attrNames);
5676 }
5677
5678 ::mlir::StringAttr getBoundVarNamesAttrName() {
5679 return getAttributeNameForIndex(0);
5680 }
5681
5682 static ::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name) {
5683 return getAttributeNameForIndex(name, 0);
5684 }
5685
5686 ::mlir::StringAttr getNoPatternAttrName() {
5687 return getAttributeNameForIndex(1);
5688 }
5689
5690 static ::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name) {
5691 return getAttributeNameForIndex(name, 1);
5692 }
5693
5694 ::mlir::StringAttr getWeightAttrName() {
5695 return getAttributeNameForIndex(2);
5696 }
5697
5698 static ::mlir::StringAttr getWeightAttrName(::mlir::OperationName name) {
5699 return getAttributeNameForIndex(name, 2);
5700 }
5701
5702 static constexpr ::llvm::StringLiteral getOperationName() {
5703 return ::llvm::StringLiteral("smt.forall");
5704 }
5705
5706 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5707 return {index, 1};
5708 }
5709
5710 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5711 auto valueRange = getODSOperandIndexAndLength(index);
5712 return {std::next(getOperation()->operand_begin(), valueRange.first),
5713 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5714 }
5715
5716 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5717 return {index, 1};
5718 }
5719
5720 ::mlir::Operation::result_range getODSResults(unsigned index) {
5721 auto valueRange = getODSResultIndexAndLength(index);
5722 return {std::next(getOperation()->result_begin(), valueRange.first),
5723 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5724 }
5725
5726 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5727 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5728 }
5729
5730 ::mlir::Region &getBody() {
5731 return (*this)->getRegion(0);
5732 }
5733
5734 ::mlir::MutableArrayRef<::mlir::Region> getPatterns() {
5735 return (*this)->getRegions().drop_front(1);
5736 }
5737
5738 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5739 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
5740 static llvm::hash_code computePropertiesHash(const Properties &prop);
5741 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
5742 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
5743 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
5744 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5745 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
5746 void writeProperties(::mlir::DialectBytecodeWriter &writer);
5747 ::mlir::IntegerAttr getWeightAttr() {
5748 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(getProperties().weight);
5749 }
5750
5751 uint32_t getWeight();
5752 ::mlir::UnitAttr getNoPatternAttr() {
5753 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().noPattern);
5754 }
5755
5756 bool getNoPattern();
5757 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5758 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5759 }
5760
5761 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5762 void setWeightAttr(::mlir::IntegerAttr attr) {
5763 getProperties().weight = attr;
5764 }
5765
5766 void setWeight(uint32_t attrValue);
5767 void setNoPatternAttr(::mlir::UnitAttr attr) {
5768 getProperties().noPattern = attr;
5769 }
5770
5771 void setNoPattern(bool attrValue);
5772 void setBoundVarNamesAttr(::mlir::ArrayAttr attr) {
5773 getProperties().boundVarNames = attr;
5774 }
5775
5776 ::mlir::Attribute removeNoPatternAttr() {
5777 auto &attr = getProperties().noPattern;
5778 attr = {};
5779 return attr;
5780 }
5781
5782 ::mlir::Attribute removeBoundVarNamesAttr() {
5783 auto &attr = getProperties().boundVarNames;
5784 attr = {};
5785 return attr;
5786 }
5787
5788 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::TypeRange boundVarTypes, llvm::function_ref<mlir::Value(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> bodyBuilder, std::optional<llvm::ArrayRef<mlir::StringRef>> boundVarNames = std::nullopt, llvm::function_ref<mlir::ValueRange(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> patternBuilder = {}, uint32_t weight = 0, bool noPattern = false);
5789 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
5790 ::llvm::LogicalResult verifyInvariantsImpl();
5791 ::llvm::LogicalResult verifyInvariants();
5792 ::llvm::LogicalResult verify();
5793 ::llvm::LogicalResult verifyRegions();
5794 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);
5795 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5796 void print(::mlir::OpAsmPrinter &_odsPrinter);
5797private:
5798 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
5799 return getAttributeNameForIndex((*this)->getName(), index);
5800 }
5801
5802 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
5803 assert(index < 3 && "invalid attribute index");
5804 assert(name.getStringRef() == getOperationName() && "invalid operation name");
5805 assert(name.isRegistered() && "Operation isn't registered, missing a "
5806 "dependent dialect loading?");
5807 return name.getAttributeNames()[index];
5808 }
5809
5810public:
5811};
5812} // namespace smt
5813} // namespace llzk
5814MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ForallOp)
5815
5816namespace llzk {
5817namespace smt {
5818
5819//===----------------------------------------------------------------------===//
5820// ::llzk::smt::ImpliesOp declarations
5821//===----------------------------------------------------------------------===//
5822
5823namespace detail {
5825public:
5826protected:
5827 ::mlir::DictionaryAttr odsAttrs;
5828 ::std::optional<::mlir::OperationName> odsOpName;
5829 ::mlir::RegionRange odsRegions;
5830public:
5831 ImpliesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
5832 odsOpName.emplace("smt.implies", odsAttrs.getContext());
5833 }
5834
5835 ImpliesOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
5836
5837 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5838 return {index, 1};
5839 }
5840
5841 ::mlir::DictionaryAttr getAttributes() {
5842 return odsAttrs;
5843 }
5844
5845};
5846} // namespace detail
5847template <typename RangeT>
5849 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5851public:
5852 ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5853
5854 ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ImpliesOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
5855
5856 ImpliesOpGenericAdaptor(RangeT values, const ImpliesOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5857
5858 template <typename LateInst = ImpliesOp, typename = std::enable_if_t<std::is_same_v<LateInst, ImpliesOp>>>
5859 ImpliesOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5860
5861 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5862 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5863 }
5864
5865 RangeT getODSOperands(unsigned index) {
5866 auto valueRange = getODSOperandIndexAndLength(index);
5867 return {std::next(odsOperands.begin(), valueRange.first),
5868 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5869 }
5870
5871 ValueT getLhs() {
5872 return (*getODSOperands(0).begin());
5873 }
5874
5875 ValueT getRhs() {
5876 return (*getODSOperands(1).begin());
5877 }
5878
5879 RangeT getOperands() {
5880 return odsOperands;
5881 }
5882
5883private:
5884 RangeT odsOperands;
5885};
5886class ImpliesOpAdaptor : public ImpliesOpGenericAdaptor<::mlir::ValueRange> {
5887public:
5890
5891 ::llvm::LogicalResult verify(::mlir::Location loc);
5892};
5893class ImpliesOp : public ::mlir::Op<ImpliesOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
5894public:
5895 using Op::Op;
5896 using Op::print;
5898 template <typename RangeT>
5901 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5902 return {};
5903 }
5904
5905 static constexpr ::llvm::StringLiteral getOperationName() {
5906 return ::llvm::StringLiteral("smt.implies");
5907 }
5908
5909 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5910 return {index, 1};
5911 }
5912
5913 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5914 auto valueRange = getODSOperandIndexAndLength(index);
5915 return {std::next(getOperation()->operand_begin(), valueRange.first),
5916 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5917 }
5918
5919 ::mlir::TypedValue<::llzk::smt::BoolType> getLhs() {
5920 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
5921 }
5922
5923 ::mlir::TypedValue<::llzk::smt::BoolType> getRhs() {
5924 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(1).begin());
5925 }
5926
5927 ::mlir::OpOperand &getLhsMutable() {
5928 auto range = getODSOperandIndexAndLength(0);
5929 return getOperation()->getOpOperand(range.first);
5930 }
5931
5932 ::mlir::OpOperand &getRhsMutable() {
5933 auto range = getODSOperandIndexAndLength(1);
5934 return getOperation()->getOpOperand(range.first);
5935 }
5936
5937 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5938 return {index, 1};
5939 }
5940
5941 ::mlir::Operation::result_range getODSResults(unsigned index) {
5942 auto valueRange = getODSResultIndexAndLength(index);
5943 return {std::next(getOperation()->result_begin(), valueRange.first),
5944 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5945 }
5946
5947 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5948 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5949 }
5950
5951 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
5952 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
5953 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
5954 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5955 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5956 ::llvm::LogicalResult verifyInvariantsImpl();
5957 ::llvm::LogicalResult verifyInvariants();
5958 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);
5959 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5960 void print(::mlir::OpAsmPrinter &_odsPrinter);
5961 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
5962public:
5963};
5964} // namespace smt
5965} // namespace llzk
5966MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ImpliesOp)
5967
5968namespace llzk {
5969namespace smt {
5970
5971//===----------------------------------------------------------------------===//
5972// ::llzk::smt::Int2BVOp declarations
5973//===----------------------------------------------------------------------===//
5974
5975namespace detail {
5977public:
5978protected:
5979 ::mlir::DictionaryAttr odsAttrs;
5980 ::std::optional<::mlir::OperationName> odsOpName;
5981 ::mlir::RegionRange odsRegions;
5982public:
5983 Int2BVOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
5984 odsOpName.emplace("smt.int2bv", odsAttrs.getContext());
5985 }
5986
5987 Int2BVOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
5988
5989 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5990 return {index, 1};
5991 }
5992
5993 ::mlir::DictionaryAttr getAttributes() {
5994 return odsAttrs;
5995 }
5996
5997};
5998} // namespace detail
5999template <typename RangeT>
6001 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6003public:
6004 Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6005
6006 Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : Int2BVOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6007
6008 Int2BVOpGenericAdaptor(RangeT values, const Int2BVOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6009
6010 template <typename LateInst = Int2BVOp, typename = std::enable_if_t<std::is_same_v<LateInst, Int2BVOp>>>
6011 Int2BVOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6012
6013 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6014 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6015 }
6016
6017 RangeT getODSOperands(unsigned index) {
6018 auto valueRange = getODSOperandIndexAndLength(index);
6019 return {std::next(odsOperands.begin(), valueRange.first),
6020 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6021 }
6022
6023 ValueT getInput() {
6024 return (*getODSOperands(0).begin());
6025 }
6026
6027 RangeT getOperands() {
6028 return odsOperands;
6029 }
6030
6031private:
6032 RangeT odsOperands;
6033};
6034class Int2BVOpAdaptor : public Int2BVOpGenericAdaptor<::mlir::ValueRange> {
6035public:
6038
6039 ::llvm::LogicalResult verify(::mlir::Location loc);
6040};
6041class Int2BVOp : public ::mlir::Op<Int2BVOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait> {
6042public:
6043 using Op::Op;
6044 using Op::print;
6046 template <typename RangeT>
6049 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6050 return {};
6051 }
6052
6053 static constexpr ::llvm::StringLiteral getOperationName() {
6054 return ::llvm::StringLiteral("smt.int2bv");
6055 }
6056
6057 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6058 return {index, 1};
6059 }
6060
6061 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6062 auto valueRange = getODSOperandIndexAndLength(index);
6063 return {std::next(getOperation()->operand_begin(), valueRange.first),
6064 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6065 }
6066
6067 ::mlir::TypedValue<::llzk::smt::IntType> getInput() {
6068 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6069 }
6070
6071 ::mlir::OpOperand &getInputMutable() {
6072 auto range = getODSOperandIndexAndLength(0);
6073 return getOperation()->getOpOperand(range.first);
6074 }
6075
6076 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6077 return {index, 1};
6078 }
6079
6080 ::mlir::Operation::result_range getODSResults(unsigned index) {
6081 auto valueRange = getODSResultIndexAndLength(index);
6082 return {std::next(getOperation()->result_begin(), valueRange.first),
6083 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6084 }
6085
6086 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
6087 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
6088 }
6089
6090 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
6091 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
6092 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6093 ::llvm::LogicalResult verifyInvariantsImpl();
6094 ::llvm::LogicalResult verifyInvariants();
6095 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6096 void print(::mlir::OpAsmPrinter &_odsPrinter);
6097 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6098public:
6099};
6100} // namespace smt
6101} // namespace llzk
6102MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::Int2BVOp)
6103
6104namespace llzk {
6105namespace smt {
6106
6107//===----------------------------------------------------------------------===//
6108// ::llzk::smt::IntAbsOp declarations
6109//===----------------------------------------------------------------------===//
6110
6111namespace detail {
6113public:
6114protected:
6115 ::mlir::DictionaryAttr odsAttrs;
6116 ::std::optional<::mlir::OperationName> odsOpName;
6117 ::mlir::RegionRange odsRegions;
6118public:
6119 IntAbsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6120 odsOpName.emplace("smt.int.abs", odsAttrs.getContext());
6121 }
6122
6123 IntAbsOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6124
6125 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6126 return {index, 1};
6127 }
6128
6129 ::mlir::DictionaryAttr getAttributes() {
6130 return odsAttrs;
6131 }
6132
6133};
6134} // namespace detail
6135template <typename RangeT>
6137 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6139public:
6140 IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6141
6142 IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntAbsOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6143
6144 IntAbsOpGenericAdaptor(RangeT values, const IntAbsOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6145
6146 template <typename LateInst = IntAbsOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntAbsOp>>>
6147 IntAbsOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6148
6149 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6150 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6151 }
6152
6153 RangeT getODSOperands(unsigned index) {
6154 auto valueRange = getODSOperandIndexAndLength(index);
6155 return {std::next(odsOperands.begin(), valueRange.first),
6156 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6157 }
6158
6159 ValueT getInput() {
6160 return (*getODSOperands(0).begin());
6161 }
6162
6163 RangeT getOperands() {
6164 return odsOperands;
6165 }
6166
6167private:
6168 RangeT odsOperands;
6169};
6170class IntAbsOpAdaptor : public IntAbsOpGenericAdaptor<::mlir::ValueRange> {
6171public:
6174
6175 ::llvm::LogicalResult verify(::mlir::Location loc);
6176};
6177class IntAbsOp : public ::mlir::Op<IntAbsOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
6178public:
6179 using Op::Op;
6180 using Op::print;
6182 template <typename RangeT>
6185 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6186 return {};
6187 }
6188
6189 static constexpr ::llvm::StringLiteral getOperationName() {
6190 return ::llvm::StringLiteral("smt.int.abs");
6191 }
6192
6193 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6194 return {index, 1};
6195 }
6196
6197 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6198 auto valueRange = getODSOperandIndexAndLength(index);
6199 return {std::next(getOperation()->operand_begin(), valueRange.first),
6200 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6201 }
6202
6203 ::mlir::TypedValue<::llzk::smt::IntType> getInput() {
6204 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6205 }
6206
6207 ::mlir::OpOperand &getInputMutable() {
6208 auto range = getODSOperandIndexAndLength(0);
6209 return getOperation()->getOpOperand(range.first);
6210 }
6211
6212 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6213 return {index, 1};
6214 }
6215
6216 ::mlir::Operation::result_range getODSResults(unsigned index) {
6217 auto valueRange = getODSResultIndexAndLength(index);
6218 return {std::next(getOperation()->result_begin(), valueRange.first),
6219 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6220 }
6221
6222 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6223 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6224 }
6225
6226 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
6227 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
6228 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
6229 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6230 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6231 ::llvm::LogicalResult verifyInvariantsImpl();
6232 ::llvm::LogicalResult verifyInvariants();
6233 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);
6234 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6235 void print(::mlir::OpAsmPrinter &_odsPrinter);
6236 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6237public:
6238};
6239} // namespace smt
6240} // namespace llzk
6241MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntAbsOp)
6242
6243namespace llzk {
6244namespace smt {
6245
6246//===----------------------------------------------------------------------===//
6247// ::llzk::smt::IntAddOp declarations
6248//===----------------------------------------------------------------------===//
6249
6250namespace detail {
6252public:
6253protected:
6254 ::mlir::DictionaryAttr odsAttrs;
6255 ::std::optional<::mlir::OperationName> odsOpName;
6256 ::mlir::RegionRange odsRegions;
6257public:
6258 IntAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6259 odsOpName.emplace("smt.int.add", odsAttrs.getContext());
6260 }
6261
6262 IntAddOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6263
6264 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
6265 ::mlir::DictionaryAttr getAttributes() {
6266 return odsAttrs;
6267 }
6268
6269};
6270} // namespace detail
6271template <typename RangeT>
6273 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6275public:
6276 IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6277
6278 IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntAddOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6279
6280 IntAddOpGenericAdaptor(RangeT values, const IntAddOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6281
6282 template <typename LateInst = IntAddOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntAddOp>>>
6283 IntAddOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6284
6285 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6286 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6287 }
6288
6289 RangeT getODSOperands(unsigned index) {
6290 auto valueRange = getODSOperandIndexAndLength(index);
6291 return {std::next(odsOperands.begin(), valueRange.first),
6292 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6293 }
6294
6295 RangeT getInputs() {
6296 return getODSOperands(0);
6297 }
6298
6299 RangeT getOperands() {
6300 return odsOperands;
6301 }
6302
6303private:
6304 RangeT odsOperands;
6305};
6306class IntAddOpAdaptor : public IntAddOpGenericAdaptor<::mlir::ValueRange> {
6307public:
6310
6311 ::llvm::LogicalResult verify(::mlir::Location loc);
6312};
6313class IntAddOp : public ::mlir::Op<IntAddOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::IsCommutative, ::mlir::InferTypeOpInterface::Trait> {
6314public:
6315 using Op::Op;
6316 using Op::print;
6318 template <typename RangeT>
6321 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6322 return {};
6323 }
6324
6325 static constexpr ::llvm::StringLiteral getOperationName() {
6326 return ::llvm::StringLiteral("smt.int.add");
6327 }
6328
6329 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
6330 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6331 auto valueRange = getODSOperandIndexAndLength(index);
6332 return {std::next(getOperation()->operand_begin(), valueRange.first),
6333 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6334 }
6335
6336 ::mlir::Operation::operand_range getInputs() {
6337 return getODSOperands(0);
6338 }
6339
6340 ::mlir::MutableOperandRange getInputsMutable();
6341 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6342 return {index, 1};
6343 }
6344
6345 ::mlir::Operation::result_range getODSResults(unsigned index) {
6346 auto valueRange = getODSResultIndexAndLength(index);
6347 return {std::next(getOperation()->result_begin(), valueRange.first),
6348 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6349 }
6350
6351 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6352 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6353 }
6354
6355 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
6356 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6357 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6358 ::llvm::LogicalResult verifyInvariantsImpl();
6359 ::llvm::LogicalResult verifyInvariants();
6360 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);
6361 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6362 void print(::mlir::OpAsmPrinter &_odsPrinter);
6363 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6364public:
6365};
6366} // namespace smt
6367} // namespace llzk
6368MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntAddOp)
6369
6370namespace llzk {
6371namespace smt {
6372
6373//===----------------------------------------------------------------------===//
6374// ::llzk::smt::IntCmpOp declarations
6375//===----------------------------------------------------------------------===//
6376
6377namespace detail {
6379public:
6380 struct Properties {
6383
6384 auto getPred() {
6385 auto &propStorage = this->pred;
6386 return ::llvm::cast<::llzk::smt::IntPredicateAttr>(propStorage);
6387 }
6388 void setPred(const ::llzk::smt::IntPredicateAttr &propValue) {
6389 this->pred = propValue;
6390 }
6391 bool operator==(const Properties &rhs) const {
6392 return
6393 rhs.pred == this->pred &&
6394 true;
6395 }
6396 bool operator!=(const Properties &rhs) const {
6397 return !(*this == rhs);
6398 }
6399 };
6400protected:
6401 ::mlir::DictionaryAttr odsAttrs;
6402 ::std::optional<::mlir::OperationName> odsOpName;
6404 ::mlir::RegionRange odsRegions;
6405public:
6406 IntCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
6407 odsOpName.emplace("smt.int.cmp", odsAttrs.getContext());
6408 }
6409
6411
6412 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6413 return {index, 1};
6414 }
6415
6417 return properties;
6418 }
6419
6420 ::mlir::DictionaryAttr getAttributes() {
6421 return odsAttrs;
6422 }
6423
6425 auto attr = ::llvm::cast<::llzk::smt::IntPredicateAttr>(getProperties().pred);
6426 return attr;
6427 }
6428
6430};
6431} // namespace detail
6432template <typename RangeT>
6434 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6436public:
6437 IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6438
6439 IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntCmpOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
6440
6441 IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : IntCmpOpGenericAdaptor(values, attrs, Properties{}, {}) {}
6442
6443 IntCmpOpGenericAdaptor(RangeT values, const IntCmpOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6444
6445 template <typename LateInst = IntCmpOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntCmpOp>>>
6446 IntCmpOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6447
6448 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6449 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6450 }
6451
6452 RangeT getODSOperands(unsigned index) {
6453 auto valueRange = getODSOperandIndexAndLength(index);
6454 return {std::next(odsOperands.begin(), valueRange.first),
6455 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6456 }
6457
6458 ValueT getLhs() {
6459 return (*getODSOperands(0).begin());
6460 }
6461
6462 ValueT getRhs() {
6463 return (*getODSOperands(1).begin());
6464 }
6465
6466 RangeT getOperands() {
6467 return odsOperands;
6468 }
6469
6470private:
6471 RangeT odsOperands;
6472};
6473class IntCmpOpAdaptor : public IntCmpOpGenericAdaptor<::mlir::ValueRange> {
6474public:
6477
6478 ::llvm::LogicalResult verify(::mlir::Location loc);
6479};
6480class IntCmpOp : public ::mlir::Op<IntCmpOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::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> {
6481public:
6482 using Op::Op;
6483 using Op::print;
6485 template <typename RangeT>
6489 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6490 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("pred")};
6491 return ::llvm::ArrayRef(attrNames);
6492 }
6493
6494 ::mlir::StringAttr getPredAttrName() {
6495 return getAttributeNameForIndex(0);
6496 }
6497
6498 static ::mlir::StringAttr getPredAttrName(::mlir::OperationName name) {
6499 return getAttributeNameForIndex(name, 0);
6500 }
6501
6502 static constexpr ::llvm::StringLiteral getOperationName() {
6503 return ::llvm::StringLiteral("smt.int.cmp");
6504 }
6505
6506 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6507 return {index, 1};
6508 }
6509
6510 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6511 auto valueRange = getODSOperandIndexAndLength(index);
6512 return {std::next(getOperation()->operand_begin(), valueRange.first),
6513 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6514 }
6515
6516 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
6517 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6518 }
6519
6520 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
6521 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
6522 }
6523
6524 ::mlir::OpOperand &getLhsMutable() {
6525 auto range = getODSOperandIndexAndLength(0);
6526 return getOperation()->getOpOperand(range.first);
6527 }
6528
6529 ::mlir::OpOperand &getRhsMutable() {
6530 auto range = getODSOperandIndexAndLength(1);
6531 return getOperation()->getOpOperand(range.first);
6532 }
6533
6534 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6535 return {index, 1};
6536 }
6537
6538 ::mlir::Operation::result_range getODSResults(unsigned index) {
6539 auto valueRange = getODSResultIndexAndLength(index);
6540 return {std::next(getOperation()->result_begin(), valueRange.first),
6541 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6542 }
6543
6544 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
6545 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
6546 }
6547
6548 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6549 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
6550 static llvm::hash_code computePropertiesHash(const Properties &prop);
6551 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
6552 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
6553 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
6554 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6555 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
6556 void writeProperties(::mlir::DialectBytecodeWriter &writer);
6558 return ::llvm::cast<::llzk::smt::IntPredicateAttr>(getProperties().pred);
6559 }
6560
6563 getProperties().pred = attr;
6564 }
6565
6566 void setPred(::llzk::smt::IntPredicate attrValue);
6567 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
6568 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
6569 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
6570 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::IntPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
6571 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::IntPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
6572 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::IntPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
6573 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6574 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6575 ::llvm::LogicalResult verifyInvariantsImpl();
6576 ::llvm::LogicalResult verifyInvariants();
6577 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);
6578 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6579 void print(::mlir::OpAsmPrinter &_odsPrinter);
6580 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6581private:
6582 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
6583 return getAttributeNameForIndex((*this)->getName(), index);
6584 }
6585
6586 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
6587 assert(index < 1 && "invalid attribute index");
6588 assert(name.getStringRef() == getOperationName() && "invalid operation name");
6589 assert(name.isRegistered() && "Operation isn't registered, missing a "
6590 "dependent dialect loading?");
6591 return name.getAttributeNames()[index];
6592 }
6593
6594public:
6595};
6596} // namespace smt
6597} // namespace llzk
6598MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntCmpOp)
6599
6600namespace llzk {
6601namespace smt {
6602
6603//===----------------------------------------------------------------------===//
6604// ::llzk::smt::IntConstantOp declarations
6605//===----------------------------------------------------------------------===//
6606
6607namespace detail {
6609public:
6610 struct Properties {
6611 using valueTy = ::mlir::IntegerAttr;
6613
6614 auto getValue() {
6615 auto &propStorage = this->value;
6616 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
6617 }
6618 void setValue(const ::mlir::IntegerAttr &propValue) {
6619 this->value = propValue;
6620 }
6621 bool operator==(const Properties &rhs) const {
6622 return
6623 rhs.value == this->value &&
6624 true;
6625 }
6626 bool operator!=(const Properties &rhs) const {
6627 return !(*this == rhs);
6628 }
6629 };
6630protected:
6631 ::mlir::DictionaryAttr odsAttrs;
6632 ::std::optional<::mlir::OperationName> odsOpName;
6634 ::mlir::RegionRange odsRegions;
6635public:
6636 IntConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
6637 odsOpName.emplace("smt.int.constant", odsAttrs.getContext());
6638 }
6639
6641
6642 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6643 return {index, 1};
6644 }
6645
6647 return properties;
6648 }
6649
6650 ::mlir::DictionaryAttr getAttributes() {
6651 return odsAttrs;
6652 }
6653
6654 ::mlir::IntegerAttr getValueAttr() {
6655 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().value);
6656 return attr;
6657 }
6658
6659 ::mlir::APInt getValue();
6660};
6661} // namespace detail
6662template <typename RangeT>
6664 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6666public:
6667 IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6668
6669 IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
6670
6671 IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : IntConstantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
6672
6673 IntConstantOpGenericAdaptor(RangeT values, const IntConstantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6674
6675 template <typename LateInst = IntConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntConstantOp>>>
6676 IntConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6677
6678 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6679 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6680 }
6681
6682 RangeT getODSOperands(unsigned index) {
6683 auto valueRange = getODSOperandIndexAndLength(index);
6684 return {std::next(odsOperands.begin(), valueRange.first),
6685 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6686 }
6687
6688 RangeT getOperands() {
6689 return odsOperands;
6690 }
6691
6692private:
6693 RangeT odsOperands;
6694};
6695class IntConstantOpAdaptor : public IntConstantOpGenericAdaptor<::mlir::ValueRange> {
6696public:
6699
6700 ::llvm::LogicalResult verify(::mlir::Location loc);
6701};
6702class IntConstantOp : public ::mlir::Op<IntConstantOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::ConstantLike, ::mlir::OpAsmOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
6703public:
6704 using Op::Op;
6705 using Op::print;
6707 template <typename RangeT>
6711 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6712 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
6713 return ::llvm::ArrayRef(attrNames);
6714 }
6715
6716 ::mlir::StringAttr getValueAttrName() {
6717 return getAttributeNameForIndex(0);
6718 }
6719
6720 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
6721 return getAttributeNameForIndex(name, 0);
6722 }
6723
6724 static constexpr ::llvm::StringLiteral getOperationName() {
6725 return ::llvm::StringLiteral("smt.int.constant");
6726 }
6727
6728 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6729 return {index, 1};
6730 }
6731
6732 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6733 auto valueRange = getODSOperandIndexAndLength(index);
6734 return {std::next(getOperation()->operand_begin(), valueRange.first),
6735 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6736 }
6737
6738 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6739 return {index, 1};
6740 }
6741
6742 ::mlir::Operation::result_range getODSResults(unsigned index) {
6743 auto valueRange = getODSResultIndexAndLength(index);
6744 return {std::next(getOperation()->result_begin(), valueRange.first),
6745 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6746 }
6747
6748 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6749 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6750 }
6751
6752 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6753 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
6754 static llvm::hash_code computePropertiesHash(const Properties &prop);
6755 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
6756 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
6757 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
6758 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6759 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
6760 void writeProperties(::mlir::DialectBytecodeWriter &writer);
6761 ::mlir::IntegerAttr getValueAttr() {
6762 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().value);
6763 }
6764
6765 ::mlir::APInt getValue();
6766 void setValueAttr(::mlir::IntegerAttr attr) {
6767 getProperties().value = attr;
6768 }
6769
6770 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr value);
6771 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr value);
6772 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr value);
6773 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6774 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6775 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6776 void print(::mlir::OpAsmPrinter &p);
6777 ::llvm::LogicalResult verifyInvariantsImpl();
6778 ::llvm::LogicalResult verifyInvariants();
6779 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
6780 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);
6781 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
6782 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6783private:
6784 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
6785 return getAttributeNameForIndex((*this)->getName(), index);
6786 }
6787
6788 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
6789 assert(index < 1 && "invalid attribute index");
6790 assert(name.getStringRef() == getOperationName() && "invalid operation name");
6791 assert(name.isRegistered() && "Operation isn't registered, missing a "
6792 "dependent dialect loading?");
6793 return name.getAttributeNames()[index];
6794 }
6795
6796public:
6797};
6798} // namespace smt
6799} // namespace llzk
6800MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntConstantOp)
6801
6802namespace llzk {
6803namespace smt {
6804
6805//===----------------------------------------------------------------------===//
6806// ::llzk::smt::IntDivOp declarations
6807//===----------------------------------------------------------------------===//
6808
6809namespace detail {
6811public:
6812protected:
6813 ::mlir::DictionaryAttr odsAttrs;
6814 ::std::optional<::mlir::OperationName> odsOpName;
6815 ::mlir::RegionRange odsRegions;
6816public:
6817 IntDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6818 odsOpName.emplace("smt.int.div", odsAttrs.getContext());
6819 }
6820
6821 IntDivOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6822
6823 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6824 return {index, 1};
6825 }
6826
6827 ::mlir::DictionaryAttr getAttributes() {
6828 return odsAttrs;
6829 }
6830
6831};
6832} // namespace detail
6833template <typename RangeT>
6835 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6837public:
6838 IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6839
6840 IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntDivOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6841
6842 IntDivOpGenericAdaptor(RangeT values, const IntDivOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6843
6844 template <typename LateInst = IntDivOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntDivOp>>>
6845 IntDivOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6846
6847 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6848 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6849 }
6850
6851 RangeT getODSOperands(unsigned index) {
6852 auto valueRange = getODSOperandIndexAndLength(index);
6853 return {std::next(odsOperands.begin(), valueRange.first),
6854 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6855 }
6856
6857 ValueT getLhs() {
6858 return (*getODSOperands(0).begin());
6859 }
6860
6861 ValueT getRhs() {
6862 return (*getODSOperands(1).begin());
6863 }
6864
6865 RangeT getOperands() {
6866 return odsOperands;
6867 }
6868
6869private:
6870 RangeT odsOperands;
6871};
6872class IntDivOpAdaptor : public IntDivOpGenericAdaptor<::mlir::ValueRange> {
6873public:
6876
6877 ::llvm::LogicalResult verify(::mlir::Location loc);
6878};
6879class IntDivOp : public ::mlir::Op<IntDivOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
6880public:
6881 using Op::Op;
6882 using Op::print;
6884 template <typename RangeT>
6887 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6888 return {};
6889 }
6890
6891 static constexpr ::llvm::StringLiteral getOperationName() {
6892 return ::llvm::StringLiteral("smt.int.div");
6893 }
6894
6895 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6896 return {index, 1};
6897 }
6898
6899 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6900 auto valueRange = getODSOperandIndexAndLength(index);
6901 return {std::next(getOperation()->operand_begin(), valueRange.first),
6902 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6903 }
6904
6905 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
6906 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6907 }
6908
6909 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
6910 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
6911 }
6912
6913 ::mlir::OpOperand &getLhsMutable() {
6914 auto range = getODSOperandIndexAndLength(0);
6915 return getOperation()->getOpOperand(range.first);
6916 }
6917
6918 ::mlir::OpOperand &getRhsMutable() {
6919 auto range = getODSOperandIndexAndLength(1);
6920 return getOperation()->getOpOperand(range.first);
6921 }
6922
6923 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6924 return {index, 1};
6925 }
6926
6927 ::mlir::Operation::result_range getODSResults(unsigned index) {
6928 auto valueRange = getODSResultIndexAndLength(index);
6929 return {std::next(getOperation()->result_begin(), valueRange.first),
6930 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6931 }
6932
6933 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6934 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6935 }
6936
6937 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
6938 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
6939 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
6940 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6941 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6942 ::llvm::LogicalResult verifyInvariantsImpl();
6943 ::llvm::LogicalResult verifyInvariants();
6944 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);
6945 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6946 void print(::mlir::OpAsmPrinter &_odsPrinter);
6947 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6948public:
6949};
6950} // namespace smt
6951} // namespace llzk
6952MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntDivOp)
6953
6954namespace llzk {
6955namespace smt {
6956
6957//===----------------------------------------------------------------------===//
6958// ::llzk::smt::IntModOp declarations
6959//===----------------------------------------------------------------------===//
6960
6961namespace detail {
6963public:
6964protected:
6965 ::mlir::DictionaryAttr odsAttrs;
6966 ::std::optional<::mlir::OperationName> odsOpName;
6967 ::mlir::RegionRange odsRegions;
6968public:
6969 IntModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6970 odsOpName.emplace("smt.int.mod", odsAttrs.getContext());
6971 }
6972
6973 IntModOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6974
6975 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6976 return {index, 1};
6977 }
6978
6979 ::mlir::DictionaryAttr getAttributes() {
6980 return odsAttrs;
6981 }
6982
6983};
6984} // namespace detail
6985template <typename RangeT>
6987 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6989public:
6990 IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6991
6992 IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntModOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6993
6994 IntModOpGenericAdaptor(RangeT values, const IntModOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6995
6996 template <typename LateInst = IntModOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntModOp>>>
6997 IntModOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6998
6999 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7000 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7001 }
7002
7003 RangeT getODSOperands(unsigned index) {
7004 auto valueRange = getODSOperandIndexAndLength(index);
7005 return {std::next(odsOperands.begin(), valueRange.first),
7006 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7007 }
7008
7009 ValueT getLhs() {
7010 return (*getODSOperands(0).begin());
7011 }
7012
7013 ValueT getRhs() {
7014 return (*getODSOperands(1).begin());
7015 }
7016
7017 RangeT getOperands() {
7018 return odsOperands;
7019 }
7020
7021private:
7022 RangeT odsOperands;
7023};
7024class IntModOpAdaptor : public IntModOpGenericAdaptor<::mlir::ValueRange> {
7025public:
7028
7029 ::llvm::LogicalResult verify(::mlir::Location loc);
7030};
7031class IntModOp : public ::mlir::Op<IntModOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
7032public:
7033 using Op::Op;
7034 using Op::print;
7036 template <typename RangeT>
7039 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7040 return {};
7041 }
7042
7043 static constexpr ::llvm::StringLiteral getOperationName() {
7044 return ::llvm::StringLiteral("smt.int.mod");
7045 }
7046
7047 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7048 return {index, 1};
7049 }
7050
7051 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7052 auto valueRange = getODSOperandIndexAndLength(index);
7053 return {std::next(getOperation()->operand_begin(), valueRange.first),
7054 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7055 }
7056
7057 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
7058 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
7059 }
7060
7061 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
7062 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
7063 }
7064
7065 ::mlir::OpOperand &getLhsMutable() {
7066 auto range = getODSOperandIndexAndLength(0);
7067 return getOperation()->getOpOperand(range.first);
7068 }
7069
7070 ::mlir::OpOperand &getRhsMutable() {
7071 auto range = getODSOperandIndexAndLength(1);
7072 return getOperation()->getOpOperand(range.first);
7073 }
7074
7075 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7076 return {index, 1};
7077 }
7078
7079 ::mlir::Operation::result_range getODSResults(unsigned index) {
7080 auto valueRange = getODSResultIndexAndLength(index);
7081 return {std::next(getOperation()->result_begin(), valueRange.first),
7082 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7083 }
7084
7085 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7086 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7087 }
7088
7089 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
7090 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
7091 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
7092 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7093 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7094 ::llvm::LogicalResult verifyInvariantsImpl();
7095 ::llvm::LogicalResult verifyInvariants();
7096 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);
7097 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7098 void print(::mlir::OpAsmPrinter &_odsPrinter);
7099 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7100public:
7101};
7102} // namespace smt
7103} // namespace llzk
7104MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntModOp)
7105
7106namespace llzk {
7107namespace smt {
7108
7109//===----------------------------------------------------------------------===//
7110// ::llzk::smt::IntMulOp declarations
7111//===----------------------------------------------------------------------===//
7112
7113namespace detail {
7115public:
7116protected:
7117 ::mlir::DictionaryAttr odsAttrs;
7118 ::std::optional<::mlir::OperationName> odsOpName;
7119 ::mlir::RegionRange odsRegions;
7120public:
7121 IntMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7122 odsOpName.emplace("smt.int.mul", odsAttrs.getContext());
7123 }
7124
7125 IntMulOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7126
7127 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
7128 ::mlir::DictionaryAttr getAttributes() {
7129 return odsAttrs;
7130 }
7131
7132};
7133} // namespace detail
7134template <typename RangeT>
7136 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7138public:
7139 IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7140
7141 IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntMulOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7142
7143 IntMulOpGenericAdaptor(RangeT values, const IntMulOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7144
7145 template <typename LateInst = IntMulOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntMulOp>>>
7146 IntMulOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7147
7148 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7149 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7150 }
7151
7152 RangeT getODSOperands(unsigned index) {
7153 auto valueRange = getODSOperandIndexAndLength(index);
7154 return {std::next(odsOperands.begin(), valueRange.first),
7155 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7156 }
7157
7158 RangeT getInputs() {
7159 return getODSOperands(0);
7160 }
7161
7162 RangeT getOperands() {
7163 return odsOperands;
7164 }
7165
7166private:
7167 RangeT odsOperands;
7168};
7169class IntMulOpAdaptor : public IntMulOpGenericAdaptor<::mlir::ValueRange> {
7170public:
7173
7174 ::llvm::LogicalResult verify(::mlir::Location loc);
7175};
7176class IntMulOp : public ::mlir::Op<IntMulOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::IsCommutative, ::mlir::InferTypeOpInterface::Trait> {
7177public:
7178 using Op::Op;
7179 using Op::print;
7181 template <typename RangeT>
7184 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7185 return {};
7186 }
7187
7188 static constexpr ::llvm::StringLiteral getOperationName() {
7189 return ::llvm::StringLiteral("smt.int.mul");
7190 }
7191
7192 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
7193 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7194 auto valueRange = getODSOperandIndexAndLength(index);
7195 return {std::next(getOperation()->operand_begin(), valueRange.first),
7196 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7197 }
7198
7199 ::mlir::Operation::operand_range getInputs() {
7200 return getODSOperands(0);
7201 }
7202
7203 ::mlir::MutableOperandRange getInputsMutable();
7204 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7205 return {index, 1};
7206 }
7207
7208 ::mlir::Operation::result_range getODSResults(unsigned index) {
7209 auto valueRange = getODSResultIndexAndLength(index);
7210 return {std::next(getOperation()->result_begin(), valueRange.first),
7211 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7212 }
7213
7214 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7215 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7216 }
7217
7218 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
7219 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7220 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7221 ::llvm::LogicalResult verifyInvariantsImpl();
7222 ::llvm::LogicalResult verifyInvariants();
7223 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);
7224 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7225 void print(::mlir::OpAsmPrinter &_odsPrinter);
7226 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7227public:
7228};
7229} // namespace smt
7230} // namespace llzk
7231MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntMulOp)
7232
7233namespace llzk {
7234namespace smt {
7235
7236//===----------------------------------------------------------------------===//
7237// ::llzk::smt::IntNegOp declarations
7238//===----------------------------------------------------------------------===//
7239
7240namespace detail {
7242public:
7243protected:
7244 ::mlir::DictionaryAttr odsAttrs;
7245 ::std::optional<::mlir::OperationName> odsOpName;
7246 ::mlir::RegionRange odsRegions;
7247public:
7248 IntNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7249 odsOpName.emplace("smt.int.neg", odsAttrs.getContext());
7250 }
7251
7252 IntNegOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7253
7254 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7255 return {index, 1};
7256 }
7257
7258 ::mlir::DictionaryAttr getAttributes() {
7259 return odsAttrs;
7260 }
7261
7262};
7263} // namespace detail
7264template <typename RangeT>
7266 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7268public:
7269 IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7270
7271 IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntNegOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7272
7273 IntNegOpGenericAdaptor(RangeT values, const IntNegOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7274
7275 template <typename LateInst = IntNegOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntNegOp>>>
7276 IntNegOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7277
7278 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7279 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7280 }
7281
7282 RangeT getODSOperands(unsigned index) {
7283 auto valueRange = getODSOperandIndexAndLength(index);
7284 return {std::next(odsOperands.begin(), valueRange.first),
7285 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7286 }
7287
7288 ValueT getInput() {
7289 return (*getODSOperands(0).begin());
7290 }
7291
7292 RangeT getOperands() {
7293 return odsOperands;
7294 }
7295
7296private:
7297 RangeT odsOperands;
7298};
7299class IntNegOpAdaptor : public IntNegOpGenericAdaptor<::mlir::ValueRange> {
7300public:
7303
7304 ::llvm::LogicalResult verify(::mlir::Location loc);
7305};
7306class IntNegOp : public ::mlir::Op<IntNegOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
7307public:
7308 using Op::Op;
7309 using Op::print;
7311 template <typename RangeT>
7314 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7315 return {};
7316 }
7317
7318 static constexpr ::llvm::StringLiteral getOperationName() {
7319 return ::llvm::StringLiteral("smt.int.neg");
7320 }
7321
7322 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7323 return {index, 1};
7324 }
7325
7326 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7327 auto valueRange = getODSOperandIndexAndLength(index);
7328 return {std::next(getOperation()->operand_begin(), valueRange.first),
7329 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7330 }
7331
7332 ::mlir::TypedValue<::llzk::smt::IntType> getInput() {
7333 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
7334 }
7335
7336 ::mlir::OpOperand &getInputMutable() {
7337 auto range = getODSOperandIndexAndLength(0);
7338 return getOperation()->getOpOperand(range.first);
7339 }
7340
7341 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7342 return {index, 1};
7343 }
7344
7345 ::mlir::Operation::result_range getODSResults(unsigned index) {
7346 auto valueRange = getODSResultIndexAndLength(index);
7347 return {std::next(getOperation()->result_begin(), valueRange.first),
7348 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7349 }
7350
7351 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7352 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7353 }
7354
7355 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
7356 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
7357 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
7358 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7359 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7360 ::llvm::LogicalResult verifyInvariantsImpl();
7361 ::llvm::LogicalResult verifyInvariants();
7362 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);
7363 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7364 void print(::mlir::OpAsmPrinter &_odsPrinter);
7365 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7366public:
7367};
7368} // namespace smt
7369} // namespace llzk
7370MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntNegOp)
7371
7372namespace llzk {
7373namespace smt {
7374
7375//===----------------------------------------------------------------------===//
7376// ::llzk::smt::IntSubOp declarations
7377//===----------------------------------------------------------------------===//
7378
7379namespace detail {
7381public:
7382protected:
7383 ::mlir::DictionaryAttr odsAttrs;
7384 ::std::optional<::mlir::OperationName> odsOpName;
7385 ::mlir::RegionRange odsRegions;
7386public:
7387 IntSubOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7388 odsOpName.emplace("smt.int.sub", odsAttrs.getContext());
7389 }
7390
7391 IntSubOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7392
7393 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7394 return {index, 1};
7395 }
7396
7397 ::mlir::DictionaryAttr getAttributes() {
7398 return odsAttrs;
7399 }
7400
7401};
7402} // namespace detail
7403template <typename RangeT>
7405 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7407public:
7408 IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7409
7410 IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntSubOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7411
7412 IntSubOpGenericAdaptor(RangeT values, const IntSubOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7413
7414 template <typename LateInst = IntSubOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntSubOp>>>
7415 IntSubOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7416
7417 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7418 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7419 }
7420
7421 RangeT getODSOperands(unsigned index) {
7422 auto valueRange = getODSOperandIndexAndLength(index);
7423 return {std::next(odsOperands.begin(), valueRange.first),
7424 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7425 }
7426
7427 ValueT getLhs() {
7428 return (*getODSOperands(0).begin());
7429 }
7430
7431 ValueT getRhs() {
7432 return (*getODSOperands(1).begin());
7433 }
7434
7435 RangeT getOperands() {
7436 return odsOperands;
7437 }
7438
7439private:
7440 RangeT odsOperands;
7441};
7442class IntSubOpAdaptor : public IntSubOpGenericAdaptor<::mlir::ValueRange> {
7443public:
7446
7447 ::llvm::LogicalResult verify(::mlir::Location loc);
7448};
7449class IntSubOp : public ::mlir::Op<IntSubOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::IntType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
7450public:
7451 using Op::Op;
7452 using Op::print;
7454 template <typename RangeT>
7457 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7458 return {};
7459 }
7460
7461 static constexpr ::llvm::StringLiteral getOperationName() {
7462 return ::llvm::StringLiteral("smt.int.sub");
7463 }
7464
7465 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7466 return {index, 1};
7467 }
7468
7469 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7470 auto valueRange = getODSOperandIndexAndLength(index);
7471 return {std::next(getOperation()->operand_begin(), valueRange.first),
7472 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7473 }
7474
7475 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
7476 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
7477 }
7478
7479 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
7480 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
7481 }
7482
7483 ::mlir::OpOperand &getLhsMutable() {
7484 auto range = getODSOperandIndexAndLength(0);
7485 return getOperation()->getOpOperand(range.first);
7486 }
7487
7488 ::mlir::OpOperand &getRhsMutable() {
7489 auto range = getODSOperandIndexAndLength(1);
7490 return getOperation()->getOpOperand(range.first);
7491 }
7492
7493 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7494 return {index, 1};
7495 }
7496
7497 ::mlir::Operation::result_range getODSResults(unsigned index) {
7498 auto valueRange = getODSResultIndexAndLength(index);
7499 return {std::next(getOperation()->result_begin(), valueRange.first),
7500 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7501 }
7502
7503 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7504 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7505 }
7506
7507 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
7508 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
7509 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
7510 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7511 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7512 ::llvm::LogicalResult verifyInvariantsImpl();
7513 ::llvm::LogicalResult verifyInvariants();
7514 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);
7515 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7516 void print(::mlir::OpAsmPrinter &_odsPrinter);
7517 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7518public:
7519};
7520} // namespace smt
7521} // namespace llzk
7522MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntSubOp)
7523
7524namespace llzk {
7525namespace smt {
7526
7527//===----------------------------------------------------------------------===//
7528// ::llzk::smt::IteOp declarations
7529//===----------------------------------------------------------------------===//
7530
7531namespace detail {
7533public:
7534protected:
7535 ::mlir::DictionaryAttr odsAttrs;
7536 ::std::optional<::mlir::OperationName> odsOpName;
7537 ::mlir::RegionRange odsRegions;
7538public:
7539 IteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7540 odsOpName.emplace("smt.ite", odsAttrs.getContext());
7541 }
7542
7543 IteOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7544
7545 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7546 return {index, 1};
7547 }
7548
7549 ::mlir::DictionaryAttr getAttributes() {
7550 return odsAttrs;
7551 }
7552
7553};
7554} // namespace detail
7555template <typename RangeT>
7557 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7559public:
7560 IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7561
7562 IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IteOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7563
7564 IteOpGenericAdaptor(RangeT values, const IteOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7565
7566 template <typename LateInst = IteOp, typename = std::enable_if_t<std::is_same_v<LateInst, IteOp>>>
7567 IteOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7568
7569 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7570 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7571 }
7572
7573 RangeT getODSOperands(unsigned index) {
7574 auto valueRange = getODSOperandIndexAndLength(index);
7575 return {std::next(odsOperands.begin(), valueRange.first),
7576 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7577 }
7578
7579 ValueT getCond() {
7580 return (*getODSOperands(0).begin());
7581 }
7582
7583 ValueT getThenValue() {
7584 return (*getODSOperands(1).begin());
7585 }
7586
7587 ValueT getElseValue() {
7588 return (*getODSOperands(2).begin());
7589 }
7590
7591 RangeT getOperands() {
7592 return odsOperands;
7593 }
7594
7595private:
7596 RangeT odsOperands;
7597};
7598class IteOpAdaptor : public IteOpGenericAdaptor<::mlir::ValueRange> {
7599public:
7601 IteOpAdaptor(IteOp op);
7602
7603 ::llvm::LogicalResult verify(::mlir::Location loc);
7604};
7605class IteOp : public ::mlir::Op<IteOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<3>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
7606public:
7607 using Op::Op;
7608 using Op::print;
7610 template <typename RangeT>
7613 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7614 return {};
7615 }
7616
7617 static constexpr ::llvm::StringLiteral getOperationName() {
7618 return ::llvm::StringLiteral("smt.ite");
7619 }
7620
7621 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7622 return {index, 1};
7623 }
7624
7625 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7626 auto valueRange = getODSOperandIndexAndLength(index);
7627 return {std::next(getOperation()->operand_begin(), valueRange.first),
7628 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7629 }
7630
7631 ::mlir::TypedValue<::llzk::smt::BoolType> getCond() {
7632 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
7633 }
7634
7635 ::mlir::TypedValue<::mlir::Type> getThenValue() {
7636 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
7637 }
7638
7639 ::mlir::TypedValue<::mlir::Type> getElseValue() {
7640 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(2).begin());
7641 }
7642
7643 ::mlir::OpOperand &getCondMutable() {
7644 auto range = getODSOperandIndexAndLength(0);
7645 return getOperation()->getOpOperand(range.first);
7646 }
7647
7648 ::mlir::OpOperand &getThenValueMutable() {
7649 auto range = getODSOperandIndexAndLength(1);
7650 return getOperation()->getOpOperand(range.first);
7651 }
7652
7653 ::mlir::OpOperand &getElseValueMutable() {
7654 auto range = getODSOperandIndexAndLength(2);
7655 return getOperation()->getOpOperand(range.first);
7656 }
7657
7658 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7659 return {index, 1};
7660 }
7661
7662 ::mlir::Operation::result_range getODSResults(unsigned index) {
7663 auto valueRange = getODSResultIndexAndLength(index);
7664 return {std::next(getOperation()->result_begin(), valueRange.first),
7665 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7666 }
7667
7668 ::mlir::TypedValue<::mlir::Type> getResult() {
7669 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
7670 }
7671
7672 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue);
7673 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue);
7674 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue);
7675 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7676 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7677 ::llvm::LogicalResult verifyInvariantsImpl();
7678 ::llvm::LogicalResult verifyInvariants();
7679 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);
7680 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7681 void print(::mlir::OpAsmPrinter &_odsPrinter);
7682 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7683public:
7684};
7685} // namespace smt
7686} // namespace llzk
7687MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IteOp)
7688
7689namespace llzk {
7690namespace smt {
7691
7692//===----------------------------------------------------------------------===//
7693// ::llzk::smt::NotOp declarations
7694//===----------------------------------------------------------------------===//
7695
7696namespace detail {
7698public:
7699protected:
7700 ::mlir::DictionaryAttr odsAttrs;
7701 ::std::optional<::mlir::OperationName> odsOpName;
7702 ::mlir::RegionRange odsRegions;
7703public:
7704 NotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7705 odsOpName.emplace("smt.not", odsAttrs.getContext());
7706 }
7707
7708 NotOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7709
7710 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7711 return {index, 1};
7712 }
7713
7714 ::mlir::DictionaryAttr getAttributes() {
7715 return odsAttrs;
7716 }
7717
7718};
7719} // namespace detail
7720template <typename RangeT>
7722 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7724public:
7725 NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7726
7727 NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NotOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7728
7729 NotOpGenericAdaptor(RangeT values, const NotOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7730
7731 template <typename LateInst = NotOp, typename = std::enable_if_t<std::is_same_v<LateInst, NotOp>>>
7732 NotOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7733
7734 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7735 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7736 }
7737
7738 RangeT getODSOperands(unsigned index) {
7739 auto valueRange = getODSOperandIndexAndLength(index);
7740 return {std::next(odsOperands.begin(), valueRange.first),
7741 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7742 }
7743
7744 ValueT getInput() {
7745 return (*getODSOperands(0).begin());
7746 }
7747
7748 RangeT getOperands() {
7749 return odsOperands;
7750 }
7751
7752private:
7753 RangeT odsOperands;
7754};
7755class NotOpAdaptor : public NotOpGenericAdaptor<::mlir::ValueRange> {
7756public:
7758 NotOpAdaptor(NotOp op);
7759
7760 ::llvm::LogicalResult verify(::mlir::Location loc);
7761};
7762class NotOp : public ::mlir::Op<NotOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
7763public:
7764 using Op::Op;
7765 using Op::print;
7767 template <typename RangeT>
7770 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7771 return {};
7772 }
7773
7774 static constexpr ::llvm::StringLiteral getOperationName() {
7775 return ::llvm::StringLiteral("smt.not");
7776 }
7777
7778 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7779 return {index, 1};
7780 }
7781
7782 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7783 auto valueRange = getODSOperandIndexAndLength(index);
7784 return {std::next(getOperation()->operand_begin(), valueRange.first),
7785 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7786 }
7787
7788 ::mlir::TypedValue<::llzk::smt::BoolType> getInput() {
7789 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
7790 }
7791
7792 ::mlir::OpOperand &getInputMutable() {
7793 auto range = getODSOperandIndexAndLength(0);
7794 return getOperation()->getOpOperand(range.first);
7795 }
7796
7797 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7798 return {index, 1};
7799 }
7800
7801 ::mlir::Operation::result_range getODSResults(unsigned index) {
7802 auto valueRange = getODSResultIndexAndLength(index);
7803 return {std::next(getOperation()->result_begin(), valueRange.first),
7804 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7805 }
7806
7807 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
7808 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
7809 }
7810
7811 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
7812 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
7813 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
7814 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7815 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7816 ::llvm::LogicalResult verifyInvariantsImpl();
7817 ::llvm::LogicalResult verifyInvariants();
7818 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);
7819 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7820 void print(::mlir::OpAsmPrinter &_odsPrinter);
7821 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7822public:
7823};
7824} // namespace smt
7825} // namespace llzk
7826MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::NotOp)
7827
7828namespace llzk {
7829namespace smt {
7830
7831//===----------------------------------------------------------------------===//
7832// ::llzk::smt::OrOp declarations
7833//===----------------------------------------------------------------------===//
7834
7835namespace detail {
7837public:
7838protected:
7839 ::mlir::DictionaryAttr odsAttrs;
7840 ::std::optional<::mlir::OperationName> odsOpName;
7841 ::mlir::RegionRange odsRegions;
7842public:
7843 OrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7844 odsOpName.emplace("smt.or", odsAttrs.getContext());
7845 }
7846
7847 OrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7848
7849 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
7850 ::mlir::DictionaryAttr getAttributes() {
7851 return odsAttrs;
7852 }
7853
7854};
7855} // namespace detail
7856template <typename RangeT>
7858 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7859 using Base = detail::OrOpGenericAdaptorBase;
7860public:
7861 OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7862
7863 OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : OrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7864
7865 OrOpGenericAdaptor(RangeT values, const OrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7866
7867 template <typename LateInst = OrOp, typename = std::enable_if_t<std::is_same_v<LateInst, OrOp>>>
7868 OrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7869
7870 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7871 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7872 }
7873
7874 RangeT getODSOperands(unsigned index) {
7875 auto valueRange = getODSOperandIndexAndLength(index);
7876 return {std::next(odsOperands.begin(), valueRange.first),
7877 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7878 }
7879
7880 RangeT getInputs() {
7881 return getODSOperands(0);
7882 }
7883
7884 RangeT getOperands() {
7885 return odsOperands;
7886 }
7887
7888private:
7889 RangeT odsOperands;
7890};
7891class OrOpAdaptor : public OrOpGenericAdaptor<::mlir::ValueRange> {
7892public:
7894 OrOpAdaptor(OrOp op);
7895
7896 ::llvm::LogicalResult verify(::mlir::Location loc);
7897};
7898class OrOp : public ::mlir::Op<OrOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
7899public:
7900 using Op::Op;
7901 using Op::print;
7903 template <typename RangeT>
7906 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7907 return {};
7908 }
7909
7910 static constexpr ::llvm::StringLiteral getOperationName() {
7911 return ::llvm::StringLiteral("smt.or");
7912 }
7913
7914 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
7915 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7916 auto valueRange = getODSOperandIndexAndLength(index);
7917 return {std::next(getOperation()->operand_begin(), valueRange.first),
7918 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7919 }
7920
7921 ::mlir::Operation::operand_range getInputs() {
7922 return getODSOperands(0);
7923 }
7924
7925 ::mlir::MutableOperandRange getInputsMutable();
7926 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7927 return {index, 1};
7928 }
7929
7930 ::mlir::Operation::result_range getODSResults(unsigned index) {
7931 auto valueRange = getODSResultIndexAndLength(index);
7932 return {std::next(getOperation()->result_begin(), valueRange.first),
7933 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7934 }
7935
7936 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
7937 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
7938 }
7939
7940 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
7941 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
7942 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7943 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7944 ::llvm::LogicalResult verifyInvariantsImpl();
7945 ::llvm::LogicalResult verifyInvariants();
7946 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);
7947 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7948 void print(::mlir::OpAsmPrinter &_odsPrinter);
7949 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7950public:
7951};
7952} // namespace smt
7953} // namespace llzk
7954MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::OrOp)
7955
7956namespace llzk {
7957namespace smt {
7958
7959//===----------------------------------------------------------------------===//
7960// ::llzk::smt::PopOp declarations
7961//===----------------------------------------------------------------------===//
7962
7963namespace detail {
7965public:
7966 struct Properties {
7967 using countTy = ::mlir::IntegerAttr;
7969
7970 auto getCount() {
7971 auto &propStorage = this->count;
7972 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
7973 }
7974 void setCount(const ::mlir::IntegerAttr &propValue) {
7975 this->count = propValue;
7976 }
7977 bool operator==(const Properties &rhs) const {
7978 return
7979 rhs.count == this->count &&
7980 true;
7981 }
7982 bool operator!=(const Properties &rhs) const {
7983 return !(*this == rhs);
7984 }
7985 };
7986protected:
7987 ::mlir::DictionaryAttr odsAttrs;
7988 ::std::optional<::mlir::OperationName> odsOpName;
7990 ::mlir::RegionRange odsRegions;
7991public:
7992 PopOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
7993 odsOpName.emplace("smt.pop", odsAttrs.getContext());
7994 }
7995
7997
7998 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7999 return {index, 1};
8000 }
8001
8003 return properties;
8004 }
8005
8006 ::mlir::DictionaryAttr getAttributes() {
8007 return odsAttrs;
8008 }
8009
8010 ::mlir::IntegerAttr getCountAttr() {
8011 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8012 return attr;
8013 }
8014
8015 uint32_t getCount();
8016};
8017} // namespace detail
8018template <typename RangeT>
8020 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8022public:
8023 PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8024
8025 PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : PopOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8026
8027 PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : PopOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8028
8029 PopOpGenericAdaptor(RangeT values, const PopOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8030
8031 template <typename LateInst = PopOp, typename = std::enable_if_t<std::is_same_v<LateInst, PopOp>>>
8032 PopOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8033
8034 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8035 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8036 }
8037
8038 RangeT getODSOperands(unsigned index) {
8039 auto valueRange = getODSOperandIndexAndLength(index);
8040 return {std::next(odsOperands.begin(), valueRange.first),
8041 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8042 }
8043
8044 RangeT getOperands() {
8045 return odsOperands;
8046 }
8047
8048private:
8049 RangeT odsOperands;
8050};
8051class PopOpAdaptor : public PopOpGenericAdaptor<::mlir::ValueRange> {
8052public:
8054 PopOpAdaptor(PopOp op);
8055
8056 ::llvm::LogicalResult verify(::mlir::Location loc);
8057};
8058class PopOp : public ::mlir::Op<PopOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
8059public:
8060 using Op::Op;
8061 using Op::print;
8063 template <typename RangeT>
8067 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8068 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("count")};
8069 return ::llvm::ArrayRef(attrNames);
8070 }
8071
8072 ::mlir::StringAttr getCountAttrName() {
8073 return getAttributeNameForIndex(0);
8074 }
8075
8076 static ::mlir::StringAttr getCountAttrName(::mlir::OperationName name) {
8077 return getAttributeNameForIndex(name, 0);
8078 }
8079
8080 static constexpr ::llvm::StringLiteral getOperationName() {
8081 return ::llvm::StringLiteral("smt.pop");
8082 }
8083
8084 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8085 return {index, 1};
8086 }
8087
8088 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8089 auto valueRange = getODSOperandIndexAndLength(index);
8090 return {std::next(getOperation()->operand_begin(), valueRange.first),
8091 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8092 }
8093
8094 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8095 return {index, 1};
8096 }
8097
8098 ::mlir::Operation::result_range getODSResults(unsigned index) {
8099 auto valueRange = getODSResultIndexAndLength(index);
8100 return {std::next(getOperation()->result_begin(), valueRange.first),
8101 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8102 }
8103
8104 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8105 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8106 static llvm::hash_code computePropertiesHash(const Properties &prop);
8107 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8108 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8109 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8110 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8111 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8112 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8113 ::mlir::IntegerAttr getCountAttr() {
8114 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8115 }
8116
8117 uint32_t getCount();
8118 void setCountAttr(::mlir::IntegerAttr attr) {
8119 getProperties().count = attr;
8120 }
8121
8122 void setCount(uint32_t attrValue);
8123 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count);
8124 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr count);
8125 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, uint32_t count);
8126 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, uint32_t count);
8127 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8128 ::llvm::LogicalResult verifyInvariantsImpl();
8129 ::llvm::LogicalResult verifyInvariants();
8130 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8131 void print(::mlir::OpAsmPrinter &_odsPrinter);
8132private:
8133 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
8134 return getAttributeNameForIndex((*this)->getName(), index);
8135 }
8136
8137 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
8138 assert(index < 1 && "invalid attribute index");
8139 assert(name.getStringRef() == getOperationName() && "invalid operation name");
8140 assert(name.isRegistered() && "Operation isn't registered, missing a "
8141 "dependent dialect loading?");
8142 return name.getAttributeNames()[index];
8143 }
8144
8145public:
8146};
8147} // namespace smt
8148} // namespace llzk
8149MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::PopOp)
8150
8151namespace llzk {
8152namespace smt {
8153
8154//===----------------------------------------------------------------------===//
8155// ::llzk::smt::PushOp declarations
8156//===----------------------------------------------------------------------===//
8157
8158namespace detail {
8160public:
8161 struct Properties {
8162 using countTy = ::mlir::IntegerAttr;
8164
8165 auto getCount() {
8166 auto &propStorage = this->count;
8167 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
8168 }
8169 void setCount(const ::mlir::IntegerAttr &propValue) {
8170 this->count = propValue;
8171 }
8172 bool operator==(const Properties &rhs) const {
8173 return
8174 rhs.count == this->count &&
8175 true;
8176 }
8177 bool operator!=(const Properties &rhs) const {
8178 return !(*this == rhs);
8179 }
8180 };
8181protected:
8182 ::mlir::DictionaryAttr odsAttrs;
8183 ::std::optional<::mlir::OperationName> odsOpName;
8185 ::mlir::RegionRange odsRegions;
8186public:
8187 PushOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
8188 odsOpName.emplace("smt.push", odsAttrs.getContext());
8189 }
8190
8192
8193 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8194 return {index, 1};
8195 }
8196
8198 return properties;
8199 }
8200
8201 ::mlir::DictionaryAttr getAttributes() {
8202 return odsAttrs;
8203 }
8204
8205 ::mlir::IntegerAttr getCountAttr() {
8206 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8207 return attr;
8208 }
8209
8210 uint32_t getCount();
8211};
8212} // namespace detail
8213template <typename RangeT>
8215 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8217public:
8218 PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8219
8220 PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : PushOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8221
8222 PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : PushOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8223
8224 PushOpGenericAdaptor(RangeT values, const PushOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8225
8226 template <typename LateInst = PushOp, typename = std::enable_if_t<std::is_same_v<LateInst, PushOp>>>
8227 PushOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8228
8229 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8230 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8231 }
8232
8233 RangeT getODSOperands(unsigned index) {
8234 auto valueRange = getODSOperandIndexAndLength(index);
8235 return {std::next(odsOperands.begin(), valueRange.first),
8236 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8237 }
8238
8239 RangeT getOperands() {
8240 return odsOperands;
8241 }
8242
8243private:
8244 RangeT odsOperands;
8245};
8246class PushOpAdaptor : public PushOpGenericAdaptor<::mlir::ValueRange> {
8247public:
8250
8251 ::llvm::LogicalResult verify(::mlir::Location loc);
8252};
8253class PushOp : public ::mlir::Op<PushOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
8254public:
8255 using Op::Op;
8256 using Op::print;
8258 template <typename RangeT>
8262 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8263 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("count")};
8264 return ::llvm::ArrayRef(attrNames);
8265 }
8266
8267 ::mlir::StringAttr getCountAttrName() {
8268 return getAttributeNameForIndex(0);
8269 }
8270
8271 static ::mlir::StringAttr getCountAttrName(::mlir::OperationName name) {
8272 return getAttributeNameForIndex(name, 0);
8273 }
8274
8275 static constexpr ::llvm::StringLiteral getOperationName() {
8276 return ::llvm::StringLiteral("smt.push");
8277 }
8278
8279 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8280 return {index, 1};
8281 }
8282
8283 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8284 auto valueRange = getODSOperandIndexAndLength(index);
8285 return {std::next(getOperation()->operand_begin(), valueRange.first),
8286 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8287 }
8288
8289 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8290 return {index, 1};
8291 }
8292
8293 ::mlir::Operation::result_range getODSResults(unsigned index) {
8294 auto valueRange = getODSResultIndexAndLength(index);
8295 return {std::next(getOperation()->result_begin(), valueRange.first),
8296 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8297 }
8298
8299 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8300 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8301 static llvm::hash_code computePropertiesHash(const Properties &prop);
8302 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8303 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8304 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8305 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8306 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8307 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8308 ::mlir::IntegerAttr getCountAttr() {
8309 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8310 }
8311
8312 uint32_t getCount();
8313 void setCountAttr(::mlir::IntegerAttr attr) {
8314 getProperties().count = attr;
8315 }
8316
8317 void setCount(uint32_t attrValue);
8318 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count);
8319 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr count);
8320 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, uint32_t count);
8321 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, uint32_t count);
8322 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8323 ::llvm::LogicalResult verifyInvariantsImpl();
8324 ::llvm::LogicalResult verifyInvariants();
8325 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8326 void print(::mlir::OpAsmPrinter &_odsPrinter);
8327private:
8328 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
8329 return getAttributeNameForIndex((*this)->getName(), index);
8330 }
8331
8332 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
8333 assert(index < 1 && "invalid attribute index");
8334 assert(name.getStringRef() == getOperationName() && "invalid operation name");
8335 assert(name.isRegistered() && "Operation isn't registered, missing a "
8336 "dependent dialect loading?");
8337 return name.getAttributeNames()[index];
8338 }
8339
8340public:
8341};
8342} // namespace smt
8343} // namespace llzk
8344MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::PushOp)
8345
8346namespace llzk {
8347namespace smt {
8348
8349//===----------------------------------------------------------------------===//
8350// ::llzk::smt::RepeatOp declarations
8351//===----------------------------------------------------------------------===//
8352
8353namespace detail {
8355public:
8356protected:
8357 ::mlir::DictionaryAttr odsAttrs;
8358 ::std::optional<::mlir::OperationName> odsOpName;
8359 ::mlir::RegionRange odsRegions;
8360public:
8361 RepeatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
8362 odsOpName.emplace("smt.bv.repeat", odsAttrs.getContext());
8363 }
8364
8365 RepeatOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
8366
8367 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8368 return {index, 1};
8369 }
8370
8371 ::mlir::DictionaryAttr getAttributes() {
8372 return odsAttrs;
8373 }
8374
8375};
8376} // namespace detail
8377template <typename RangeT>
8379 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8381public:
8382 RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8383
8384 RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : RepeatOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
8385
8386 RepeatOpGenericAdaptor(RangeT values, const RepeatOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8387
8388 template <typename LateInst = RepeatOp, typename = std::enable_if_t<std::is_same_v<LateInst, RepeatOp>>>
8389 RepeatOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8390
8391 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8392 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8393 }
8394
8395 RangeT getODSOperands(unsigned index) {
8396 auto valueRange = getODSOperandIndexAndLength(index);
8397 return {std::next(odsOperands.begin(), valueRange.first),
8398 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8399 }
8400
8401 ValueT getInput() {
8402 return (*getODSOperands(0).begin());
8403 }
8404
8405 RangeT getOperands() {
8406 return odsOperands;
8407 }
8408
8409private:
8410 RangeT odsOperands;
8411};
8412class RepeatOpAdaptor : public RepeatOpGenericAdaptor<::mlir::ValueRange> {
8413public:
8416
8417 ::llvm::LogicalResult verify(::mlir::Location loc);
8418};
8419class RepeatOp : public ::mlir::Op<RepeatOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BitVectorType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait> {
8420public:
8421 using Op::Op;
8422 using Op::print;
8424 template <typename RangeT>
8427 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8428 return {};
8429 }
8430
8431 static constexpr ::llvm::StringLiteral getOperationName() {
8432 return ::llvm::StringLiteral("smt.bv.repeat");
8433 }
8434
8435 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8436 return {index, 1};
8437 }
8438
8439 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8440 auto valueRange = getODSOperandIndexAndLength(index);
8441 return {std::next(getOperation()->operand_begin(), valueRange.first),
8442 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8443 }
8444
8445 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
8446 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
8447 }
8448
8449 ::mlir::OpOperand &getInputMutable() {
8450 auto range = getODSOperandIndexAndLength(0);
8451 return getOperation()->getOpOperand(range.first);
8452 }
8453
8454 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8455 return {index, 1};
8456 }
8457
8458 ::mlir::Operation::result_range getODSResults(unsigned index) {
8459 auto valueRange = getODSResultIndexAndLength(index);
8460 return {std::next(getOperation()->result_begin(), valueRange.first),
8461 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8462 }
8463
8464 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
8465 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
8466 }
8467
8468 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, unsigned count, mlir::Value input);
8469 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
8470 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
8471 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8472 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8473 void print(::mlir::OpAsmPrinter &p);
8474 ::llvm::LogicalResult verifyInvariantsImpl();
8475 ::llvm::LogicalResult verifyInvariants();
8476 ::llvm::LogicalResult verify();
8477 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
8478public:
8480 unsigned getCount();
8481};
8482} // namespace smt
8483} // namespace llzk
8484MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::RepeatOp)
8485
8486namespace llzk {
8487namespace smt {
8488
8489//===----------------------------------------------------------------------===//
8490// ::llzk::smt::ResetOp declarations
8491//===----------------------------------------------------------------------===//
8492
8493namespace detail {
8495public:
8496protected:
8497 ::mlir::DictionaryAttr odsAttrs;
8498 ::std::optional<::mlir::OperationName> odsOpName;
8499 ::mlir::RegionRange odsRegions;
8500public:
8501 ResetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
8502 odsOpName.emplace("smt.reset", odsAttrs.getContext());
8503 }
8504
8505 ResetOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
8506
8507 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8508 return {index, 1};
8509 }
8510
8511 ::mlir::DictionaryAttr getAttributes() {
8512 return odsAttrs;
8513 }
8514
8515};
8516} // namespace detail
8517template <typename RangeT>
8519 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8521public:
8522 ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8523
8524 ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ResetOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
8525
8526 ResetOpGenericAdaptor(RangeT values, const ResetOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8527
8528 template <typename LateInst = ResetOp, typename = std::enable_if_t<std::is_same_v<LateInst, ResetOp>>>
8529 ResetOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8530
8531 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8532 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8533 }
8534
8535 RangeT getODSOperands(unsigned index) {
8536 auto valueRange = getODSOperandIndexAndLength(index);
8537 return {std::next(odsOperands.begin(), valueRange.first),
8538 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8539 }
8540
8541 RangeT getOperands() {
8542 return odsOperands;
8543 }
8544
8545private:
8546 RangeT odsOperands;
8547};
8548class ResetOpAdaptor : public ResetOpGenericAdaptor<::mlir::ValueRange> {
8549public:
8552
8553 ::llvm::LogicalResult verify(::mlir::Location loc);
8554};
8555class ResetOp : public ::mlir::Op<ResetOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants> {
8556public:
8557 using Op::Op;
8558 using Op::print;
8560 template <typename RangeT>
8563 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8564 return {};
8565 }
8566
8567 static constexpr ::llvm::StringLiteral getOperationName() {
8568 return ::llvm::StringLiteral("smt.reset");
8569 }
8570
8571 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8572 return {index, 1};
8573 }
8574
8575 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8576 auto valueRange = getODSOperandIndexAndLength(index);
8577 return {std::next(getOperation()->operand_begin(), valueRange.first),
8578 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8579 }
8580
8581 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8582 return {index, 1};
8583 }
8584
8585 ::mlir::Operation::result_range getODSResults(unsigned index) {
8586 auto valueRange = getODSResultIndexAndLength(index);
8587 return {std::next(getOperation()->result_begin(), valueRange.first),
8588 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8589 }
8590
8591 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
8592 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
8593 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8594 ::llvm::LogicalResult verifyInvariantsImpl();
8595 ::llvm::LogicalResult verifyInvariants();
8596 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8597 void print(::mlir::OpAsmPrinter &_odsPrinter);
8598public:
8599};
8600} // namespace smt
8601} // namespace llzk
8602MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ResetOp)
8603
8604namespace llzk {
8605namespace smt {
8606
8607//===----------------------------------------------------------------------===//
8608// ::llzk::smt::SetLogicOp declarations
8609//===----------------------------------------------------------------------===//
8610
8611namespace detail {
8613public:
8614 struct Properties {
8615 using logicTy = ::mlir::StringAttr;
8617
8618 auto getLogic() {
8619 auto &propStorage = this->logic;
8620 return ::llvm::cast<::mlir::StringAttr>(propStorage);
8621 }
8622 void setLogic(const ::mlir::StringAttr &propValue) {
8623 this->logic = propValue;
8624 }
8625 bool operator==(const Properties &rhs) const {
8626 return
8627 rhs.logic == this->logic &&
8628 true;
8629 }
8630 bool operator!=(const Properties &rhs) const {
8631 return !(*this == rhs);
8632 }
8633 };
8634protected:
8635 ::mlir::DictionaryAttr odsAttrs;
8636 ::std::optional<::mlir::OperationName> odsOpName;
8638 ::mlir::RegionRange odsRegions;
8639public:
8640 SetLogicOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
8641 odsOpName.emplace("smt.set_logic", odsAttrs.getContext());
8642 }
8643
8645
8646 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8647 return {index, 1};
8648 }
8649
8651 return properties;
8652 }
8653
8654 ::mlir::DictionaryAttr getAttributes() {
8655 return odsAttrs;
8656 }
8657
8658 ::mlir::StringAttr getLogicAttr() {
8659 auto attr = ::llvm::cast<::mlir::StringAttr>(getProperties().logic);
8660 return attr;
8661 }
8662
8663 ::llvm::StringRef getLogic();
8664};
8665} // namespace detail
8666template <typename RangeT>
8668 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8670public:
8671 SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8672
8673 SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SetLogicOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8674
8675 SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : SetLogicOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8676
8677 SetLogicOpGenericAdaptor(RangeT values, const SetLogicOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8678
8679 template <typename LateInst = SetLogicOp, typename = std::enable_if_t<std::is_same_v<LateInst, SetLogicOp>>>
8680 SetLogicOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8681
8682 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8683 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8684 }
8685
8686 RangeT getODSOperands(unsigned index) {
8687 auto valueRange = getODSOperandIndexAndLength(index);
8688 return {std::next(odsOperands.begin(), valueRange.first),
8689 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8690 }
8691
8692 RangeT getOperands() {
8693 return odsOperands;
8694 }
8695
8696private:
8697 RangeT odsOperands;
8698};
8699class SetLogicOpAdaptor : public SetLogicOpGenericAdaptor<::mlir::ValueRange> {
8700public:
8703
8704 ::llvm::LogicalResult verify(::mlir::Location loc);
8705};
8706class SetLogicOp : public ::mlir::Op<SetLogicOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<smt::SolverOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
8707public:
8708 using Op::Op;
8709 using Op::print;
8711 template <typename RangeT>
8715 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8716 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("logic")};
8717 return ::llvm::ArrayRef(attrNames);
8718 }
8719
8720 ::mlir::StringAttr getLogicAttrName() {
8721 return getAttributeNameForIndex(0);
8722 }
8723
8724 static ::mlir::StringAttr getLogicAttrName(::mlir::OperationName name) {
8725 return getAttributeNameForIndex(name, 0);
8726 }
8727
8728 static constexpr ::llvm::StringLiteral getOperationName() {
8729 return ::llvm::StringLiteral("smt.set_logic");
8730 }
8731
8732 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8733 return {index, 1};
8734 }
8735
8736 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8737 auto valueRange = getODSOperandIndexAndLength(index);
8738 return {std::next(getOperation()->operand_begin(), valueRange.first),
8739 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8740 }
8741
8742 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8743 return {index, 1};
8744 }
8745
8746 ::mlir::Operation::result_range getODSResults(unsigned index) {
8747 auto valueRange = getODSResultIndexAndLength(index);
8748 return {std::next(getOperation()->result_begin(), valueRange.first),
8749 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8750 }
8751
8752 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8753 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8754 static llvm::hash_code computePropertiesHash(const Properties &prop);
8755 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8756 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8757 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8758 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8759 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8760 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8761 ::mlir::StringAttr getLogicAttr() {
8762 return ::llvm::cast<::mlir::StringAttr>(getProperties().logic);
8763 }
8764
8765 ::llvm::StringRef getLogic();
8766 void setLogicAttr(::mlir::StringAttr attr) {
8767 getProperties().logic = attr;
8768 }
8769
8770 void setLogic(::llvm::StringRef attrValue);
8771 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr logic);
8772 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr logic);
8773 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef logic);
8774 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef logic);
8775 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8776 ::llvm::LogicalResult verifyInvariantsImpl();
8777 ::llvm::LogicalResult verifyInvariants();
8778 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8779 void print(::mlir::OpAsmPrinter &_odsPrinter);
8780private:
8781 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
8782 return getAttributeNameForIndex((*this)->getName(), index);
8783 }
8784
8785 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
8786 assert(index < 1 && "invalid attribute index");
8787 assert(name.getStringRef() == getOperationName() && "invalid operation name");
8788 assert(name.isRegistered() && "Operation isn't registered, missing a "
8789 "dependent dialect loading?");
8790 return name.getAttributeNames()[index];
8791 }
8792
8793public:
8794};
8795} // namespace smt
8796} // namespace llzk
8797MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::SetLogicOp)
8798
8799namespace llzk {
8800namespace smt {
8801
8802//===----------------------------------------------------------------------===//
8803// ::llzk::smt::SolverOp declarations
8804//===----------------------------------------------------------------------===//
8805
8806namespace detail {
8808public:
8809protected:
8810 ::mlir::DictionaryAttr odsAttrs;
8811 ::std::optional<::mlir::OperationName> odsOpName;
8812 ::mlir::RegionRange odsRegions;
8813public:
8814 SolverOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
8815 odsOpName.emplace("smt.solver", odsAttrs.getContext());
8816 }
8817
8818 SolverOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
8819
8820 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
8821 ::mlir::DictionaryAttr getAttributes() {
8822 return odsAttrs;
8823 }
8824
8825 ::mlir::Region &getBodyRegion() {
8826 return *odsRegions[0];
8827 }
8828
8829 ::mlir::RegionRange getRegions() {
8830 return odsRegions;
8831 }
8832
8833};
8834} // namespace detail
8835template <typename RangeT>
8837 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8839public:
8840 SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8841
8842 SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SolverOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
8843
8844 SolverOpGenericAdaptor(RangeT values, const SolverOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8845
8846 template <typename LateInst = SolverOp, typename = std::enable_if_t<std::is_same_v<LateInst, SolverOp>>>
8847 SolverOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8848
8849 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8850 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8851 }
8852
8853 RangeT getODSOperands(unsigned index) {
8854 auto valueRange = getODSOperandIndexAndLength(index);
8855 return {std::next(odsOperands.begin(), valueRange.first),
8856 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8857 }
8858
8859 RangeT getInputs() {
8860 return getODSOperands(0);
8861 }
8862
8863 RangeT getOperands() {
8864 return odsOperands;
8865 }
8866
8867private:
8868 RangeT odsOperands;
8869};
8870class SolverOpAdaptor : public SolverOpGenericAdaptor<::mlir::ValueRange> {
8871public:
8874
8875 ::llvm::LogicalResult verify(::mlir::Location loc);
8876};
8877class SolverOp : public ::mlir::Op<SolverOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::VariadicResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::SingleBlockImplicitTerminator<smt::YieldOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsIsolatedFromAbove> {
8878public:
8879 using Op::Op;
8880 using Op::print;
8882 template <typename RangeT>
8885 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8886 return {};
8887 }
8888
8889 static constexpr ::llvm::StringLiteral getOperationName() {
8890 return ::llvm::StringLiteral("smt.solver");
8891 }
8892
8893 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
8894 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8895 auto valueRange = getODSOperandIndexAndLength(index);
8896 return {std::next(getOperation()->operand_begin(), valueRange.first),
8897 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8898 }
8899
8900 ::mlir::Operation::operand_range getInputs() {
8901 return getODSOperands(0);
8902 }
8903
8904 ::mlir::MutableOperandRange getInputsMutable();
8905 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
8906 ::mlir::Operation::result_range getODSResults(unsigned index) {
8907 auto valueRange = getODSResultIndexAndLength(index);
8908 return {std::next(getOperation()->result_begin(), valueRange.first),
8909 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8910 }
8911
8912 ::mlir::Operation::result_range getResults() {
8913 return getODSResults(0);
8914 }
8915
8916 ::mlir::Region &getBodyRegion() {
8917 return (*this)->getRegion(0);
8918 }
8919
8920 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8921 ::llvm::LogicalResult verifyInvariantsImpl();
8922 ::llvm::LogicalResult verifyInvariants();
8923 ::llvm::LogicalResult verifyRegions();
8924 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8925 void print(::mlir::OpAsmPrinter &_odsPrinter);
8926public:
8927};
8928} // namespace smt
8929} // namespace llzk
8930MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::SolverOp)
8931
8932namespace llzk {
8933namespace smt {
8934
8935//===----------------------------------------------------------------------===//
8936// ::llzk::smt::XOrOp declarations
8937//===----------------------------------------------------------------------===//
8938
8939namespace detail {
8941public:
8942protected:
8943 ::mlir::DictionaryAttr odsAttrs;
8944 ::std::optional<::mlir::OperationName> odsOpName;
8945 ::mlir::RegionRange odsRegions;
8946public:
8947 XOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
8948 odsOpName.emplace("smt.xor", odsAttrs.getContext());
8949 }
8950
8951 XOrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
8952
8953 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
8954 ::mlir::DictionaryAttr getAttributes() {
8955 return odsAttrs;
8956 }
8957
8958};
8959} // namespace detail
8960template <typename RangeT>
8962 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8964public:
8965 XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8966
8967 XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : XOrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
8968
8969 XOrOpGenericAdaptor(RangeT values, const XOrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8970
8971 template <typename LateInst = XOrOp, typename = std::enable_if_t<std::is_same_v<LateInst, XOrOp>>>
8972 XOrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8973
8974 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8975 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8976 }
8977
8978 RangeT getODSOperands(unsigned index) {
8979 auto valueRange = getODSOperandIndexAndLength(index);
8980 return {std::next(odsOperands.begin(), valueRange.first),
8981 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8982 }
8983
8984 RangeT getInputs() {
8985 return getODSOperands(0);
8986 }
8987
8988 RangeT getOperands() {
8989 return odsOperands;
8990 }
8991
8992private:
8993 RangeT odsOperands;
8994};
8995class XOrOpAdaptor : public XOrOpGenericAdaptor<::mlir::ValueRange> {
8996public:
8998 XOrOpAdaptor(XOrOp op);
8999
9000 ::llvm::LogicalResult verify(::mlir::Location loc);
9001};
9002class XOrOp : public ::mlir::Op<XOrOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::smt::BoolType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
9003public:
9004 using Op::Op;
9005 using Op::print;
9007 template <typename RangeT>
9010 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
9011 return {};
9012 }
9013
9014 static constexpr ::llvm::StringLiteral getOperationName() {
9015 return ::llvm::StringLiteral("smt.xor");
9016 }
9017
9018 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
9019 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
9020 auto valueRange = getODSOperandIndexAndLength(index);
9021 return {std::next(getOperation()->operand_begin(), valueRange.first),
9022 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
9023 }
9024
9025 ::mlir::Operation::operand_range getInputs() {
9026 return getODSOperands(0);
9027 }
9028
9029 ::mlir::MutableOperandRange getInputsMutable();
9030 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
9031 return {index, 1};
9032 }
9033
9034 ::mlir::Operation::result_range getODSResults(unsigned index) {
9035 auto valueRange = getODSResultIndexAndLength(index);
9036 return {std::next(getOperation()->result_begin(), valueRange.first),
9037 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
9038 }
9039
9040 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
9041 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
9042 }
9043
9044 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
9045 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
9046 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9047 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9048 ::llvm::LogicalResult verifyInvariantsImpl();
9049 ::llvm::LogicalResult verifyInvariants();
9050 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);
9051 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
9052 void print(::mlir::OpAsmPrinter &_odsPrinter);
9053 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
9054public:
9055};
9056} // namespace smt
9057} // namespace llzk
9058MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::XOrOp)
9059
9060namespace llzk {
9061namespace smt {
9062
9063//===----------------------------------------------------------------------===//
9064// ::llzk::smt::YieldOp declarations
9065//===----------------------------------------------------------------------===//
9066
9067namespace detail {
9069public:
9070protected:
9071 ::mlir::DictionaryAttr odsAttrs;
9072 ::std::optional<::mlir::OperationName> odsOpName;
9073 ::mlir::RegionRange odsRegions;
9074public:
9075 YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
9076 odsOpName.emplace("smt.yield", odsAttrs.getContext());
9077 }
9078
9079 YieldOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
9080
9081 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
9082 ::mlir::DictionaryAttr getAttributes() {
9083 return odsAttrs;
9084 }
9085
9086};
9087} // namespace detail
9088template <typename RangeT>
9090 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
9092public:
9093 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
9094
9095 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : YieldOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
9096
9097 YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
9098
9099 template <typename LateInst = YieldOp, typename = std::enable_if_t<std::is_same_v<LateInst, YieldOp>>>
9100 YieldOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
9101
9102 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
9103 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
9104 }
9105
9106 RangeT getODSOperands(unsigned index) {
9107 auto valueRange = getODSOperandIndexAndLength(index);
9108 return {std::next(odsOperands.begin(), valueRange.first),
9109 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
9110 }
9111
9112 RangeT getValues() {
9113 return getODSOperands(0);
9114 }
9115
9116 RangeT getOperands() {
9117 return odsOperands;
9118 }
9119
9120private:
9121 RangeT odsOperands;
9122};
9123class YieldOpAdaptor : public YieldOpGenericAdaptor<::mlir::ValueRange> {
9124public:
9127
9128 ::llvm::LogicalResult verify(::mlir::Location loc);
9129};
9130class YieldOp : public ::mlir::Op<YieldOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::HasParent<smt::SolverOp, smt::CheckOp, smt::ForallOp, smt::ExistsOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::IsTerminator, ::mlir::RegionBranchTerminatorOpInterface::Trait, ::mlir::OpTrait::ReturnLike> {
9131public:
9132 using Op::Op;
9133 using Op::print;
9135 template <typename RangeT>
9138 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
9139 return {};
9140 }
9141
9142 static constexpr ::llvm::StringLiteral getOperationName() {
9143 return ::llvm::StringLiteral("smt.yield");
9144 }
9145
9146 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
9147 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
9148 auto valueRange = getODSOperandIndexAndLength(index);
9149 return {std::next(getOperation()->operand_begin(), valueRange.first),
9150 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
9151 }
9152
9153 ::mlir::Operation::operand_range getValues() {
9154 return getODSOperands(0);
9155 }
9156
9157 ::mlir::MutableOperandRange getValuesMutable();
9158 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
9159 return {index, 1};
9160 }
9161
9162 ::mlir::Operation::result_range getODSResults(unsigned index) {
9163 auto valueRange = getODSResultIndexAndLength(index);
9164 return {std::next(getOperation()->result_begin(), valueRange.first),
9165 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
9166 }
9167
9168 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
9169 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange values);
9170 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9171 ::llvm::LogicalResult verifyInvariantsImpl();
9172 ::llvm::LogicalResult verifyInvariants();
9173 ::mlir::MutableOperandRange getMutableSuccessorOperands(::mlir::RegionBranchPoint point);
9174 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
9175 void print(::mlir::OpAsmPrinter &_odsPrinter);
9176 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
9177public:
9178};
9179} // namespace smt
9180} // namespace llzk
9181MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::YieldOp)
9182
9183
9184#endif // GET_OP_CLASSES
9185
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:382
AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:321
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:330
AndOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:328
AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:323
AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:321
AndOpGenericAdaptor(RangeT values, const AndOpGenericAdaptorBase &base)
Definition SMT.h.inc:325
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:334
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:381
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:390
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:375
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:498
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:386
::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 SMT.cpp.inc:470
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:365
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:366
AndOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:364
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:466
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:404
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:386
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:370
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:505
AndOpAdaptor Adaptor
Definition SMT.h.inc:362
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:396
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:410
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:444
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:478
ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:449
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:541
ApplyFuncOpAdaptor(ApplyFuncOp op)
Definition SMT.cpp.inc:539
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:462
ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:449
ApplyFuncOpGenericAdaptor(RangeT values, const ApplyFuncOpGenericAdaptorBase &base)
Definition SMT.h.inc:453
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:458
ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:451
ApplyFuncOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:456
::mlir::MutableOperandRange getArgsMutable()
Definition SMT.cpp.inc:563
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:656
::mlir::OpOperand & getFuncMutable()
Definition SMT.h.inc:521
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:537
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:624
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:527
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value func, ::mlir::ValueRange args)
Definition SMT.cpp.inc:569
::mlir::TypedValue<::llzk::smt::SMTFuncType > getFunc()
Definition SMT.h.inc:513
::mlir::Operation::operand_range getArgs()
Definition SMT.h.inc:517
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:531
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:670
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:498
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:728
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:497
ApplyFuncOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:496
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:502
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:507
::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 SMT.cpp.inc:660
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:545
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:715
ApplyFuncOpAdaptor Adaptor
Definition SMT.h.inc:494
ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:594
ArrayBroadcastOpAdaptor(ArrayBroadcastOp op)
Definition SMT.cpp.inc:744
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:746
ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:596
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:607
ArrayBroadcastOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:601
ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:594
ArrayBroadcastOpGenericAdaptor(RangeT values, const ArrayBroadcastOpGenericAdaptorBase &base)
Definition SMT.h.inc:598
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:603
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:829
ArrayBroadcastOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:637
::mlir::TypedValue<::mlir::Type > getValue()
Definition SMT.h.inc:657
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:643
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:839
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:769
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:666
ArrayBroadcastOpAdaptor Adaptor
Definition SMT.h.inc:635
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:797
::mlir::TypedValue<::llzk::smt::ArrayType > getResult()
Definition SMT.h.inc:676
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:793
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
Definition SMT.cpp.inc:750
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:639
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:647
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:670
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:651
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:638
::mlir::OpOperand & getValueMutable()
Definition SMT.h.inc:661
ArraySelectOpAdaptor(ArraySelectOp op)
Definition SMT.cpp.inc:855
ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:730
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:857
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:743
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:739
ArraySelectOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:737
ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:730
ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:732
ArraySelectOpGenericAdaptor(RangeT values, const ArraySelectOpGenericAdaptorBase &base)
Definition SMT.h.inc:734
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:962
::mlir::TypedValue<::mlir::Type > getIndex()
Definition SMT.h.inc:801
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:819
ArraySelectOpAdaptor Adaptor
Definition SMT.h.inc:775
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1020
::mlir::OpOperand & getIndexMutable()
Definition SMT.h.inc:810
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:779
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index)
Definition SMT.cpp.inc:861
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:815
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:778
::mlir::OpOperand & getArrayMutable()
Definition SMT.h.inc:805
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:787
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:791
ArraySelectOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:777
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1007
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:783
::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 SMT.cpp.inc:952
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:916
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:948
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:825
::mlir::TypedValue<::llzk::smt::ArrayType > getArray()
Definition SMT.h.inc:797
ArrayStoreOpAdaptor(ArrayStoreOp op)
Definition SMT.cpp.inc:1036
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1038
ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:882
ArrayStoreOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:889
ArrayStoreOpGenericAdaptor(RangeT values, const ArrayStoreOpGenericAdaptorBase &base)
Definition SMT.h.inc:886
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:891
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:895
ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:884
ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:882
ArrayStoreOpAdaptor Adaptor
Definition SMT.h.inc:931
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:980
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:934
::mlir::TypedValue<::mlir::Type > getValue()
Definition SMT.h.inc:961
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:943
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1210
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:939
::mlir::OpOperand & getIndexMutable()
Definition SMT.h.inc:970
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:947
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1226
::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 SMT.cpp.inc:1144
::mlir::TypedValue<::llzk::smt::ArrayType > getArray()
Definition SMT.h.inc:953
::mlir::TypedValue<::llzk::smt::ArrayType > getResult()
Definition SMT.h.inc:990
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1154
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:984
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:935
::mlir::TypedValue<::mlir::Type > getIndex()
Definition SMT.h.inc:957
::mlir::OpOperand & getArrayMutable()
Definition SMT.h.inc:965
ArrayStoreOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:933
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1100
::mlir::OpOperand & getValueMutable()
Definition SMT.h.inc:975
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1140
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value)
Definition SMT.cpp.inc:1042
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1244
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1047
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1060
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1047
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1049
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1056
AssertOpGenericAdaptor(RangeT values, const AssertOpGenericAdaptorBase &base)
Definition SMT.h.inc:1051
AssertOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1054
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1283
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1091
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1266
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1302
AssertOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1090
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1123
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input)
Definition SMT.cpp.inc:1248
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1100
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1096
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1119
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1104
::mlir::TypedValue<::llzk::smt::BoolType > getInput()
Definition SMT.h.inc:1110
AssertOpAdaptor Adaptor
Definition SMT.h.inc:1088
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1092
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1279
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:1114
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1205
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1340
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1207
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:1209
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1205
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1216
BV2IntOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1214
BV2IntOpGenericAdaptor(RangeT values, const BV2IntOpGenericAdaptorBase &base)
Definition SMT.h.inc:1211
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1220
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:1409
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1253
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1561
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1599
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:1280
void setIsSignedAttr(::mlir::UnitAttr attr)
Definition SMT.h.inc:1317
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:1418
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:1405
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1587
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1632
::mlir::UnitAttr getIsSignedAttr()
Definition SMT.h.inc:1312
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:1371
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1293
::mlir::StringAttr getIsSignedAttrName(::mlir::OperationName name)
Definition SMT.h.inc:1262
::mlir::StringAttr getIsSignedAttrName()
Definition SMT.h.inc:1258
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1289
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition SMT.cpp.inc:1591
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:1348
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1652
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:1387
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:1299
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:1392
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input, ::mlir::UnitAttr is_signed)
Definition SMT.cpp.inc:1446
::mlir::Attribute removeIsSignedAttr()
Definition SMT.h.inc:1322
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1270
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1266
FoldAdaptor::Properties Properties
Definition SMT.h.inc:1252
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:1425
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1274
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:1398
BV2IntOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1250
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:1284
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1251
BV2IntOpAdaptor Adaptor
Definition SMT.h.inc:1248
void setIsSigned(bool attrValue)
Definition SMT.cpp.inc:1438
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1670
BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1397
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1410
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1406
BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1397
BVAShrOpGenericAdaptor(RangeT values, const BVAShrOpGenericAdaptorBase &base)
Definition SMT.h.inc:1401
BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1399
BVAShrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1404
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1771
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1486
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1821
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1464
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1757
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1468
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1472
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1450
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1729
BVAShrOpAdaptor Adaptor
Definition SMT.h.inc:1442
::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 SMT.cpp.inc:1761
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:1674
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1458
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1482
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:1492
BVAShrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1444
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1454
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1808
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1445
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1477
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1446
BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1549
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1839
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1558
BVAddOpGenericAdaptor(RangeT values, const BVAddOpGenericAdaptorBase &base)
Definition SMT.h.inc:1553
BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1551
BVAddOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1556
BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1549
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1562
::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 SMT.cpp.inc:1930
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1634
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1977
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1606
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:1644
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1620
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1926
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1624
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1990
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1597
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1610
BVAddOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1596
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1602
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:1843
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1598
BVAddOpAdaptor Adaptor
Definition SMT.h.inc:1594
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1898
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1616
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1638
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1940
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1629
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2008
BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1701
BVAndOpGenericAdaptor(RangeT values, const BVAndOpGenericAdaptorBase &base)
Definition SMT.h.inc:1705
BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1701
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1714
BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1703
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1710
BVAndOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1708
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1768
BVAndOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1748
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1776
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2109
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2095
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1781
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2146
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1772
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1758
::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 SMT.cpp.inc:2099
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:1796
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1750
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1762
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1790
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1754
BVAndOpAdaptor Adaptor
Definition SMT.h.inc:1746
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1749
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1786
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:2012
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2067
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2159
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1884
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2184
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1884
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1895
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:1888
BVCmpOpGenericAdaptor(RangeT values, const BVCmpOpGenericAdaptorBase &base)
Definition SMT.h.inc:1890
BVCmpOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1893
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1886
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1899
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:2243
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2531
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1936
BVCmpOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1933
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2426
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:2284
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2510
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2438
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1981
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1967
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1949
::mlir::StringAttr getPredAttrName(::mlir::OperationName name)
Definition SMT.h.inc:1945
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:2250
BVCmpOpAdaptor Adaptor
Definition SMT.h.inc:1931
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1976
void setPredAttr(::llzk::smt::BVCmpPredicateAttr attr)
Definition SMT.h.inc:2009
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:2232
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1953
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1971
::mlir::StringAttr getPredAttrName()
Definition SMT.h.inc:1941
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:2270
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1985
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:2216
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2254
FoldAdaptor::Properties Properties
Definition SMT.h.inc:1935
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2393
::llzk::smt::BVCmpPredicate getPred()
Definition SMT.cpp.inc:2275
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:2237
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1934
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1957
::llzk::smt::BVCmpPredicateAttr getPredAttr()
Definition SMT.h.inc:2004
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:2263
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:1991
::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 SMT.cpp.inc:2430
void setPred(::llzk::smt::BVCmpPredicate attrValue)
Definition SMT.cpp.inc:2280
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1963
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2193
BVConstantOpAdaptor(BVConstantOp op)
Definition SMT.cpp.inc:2554
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2114
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2556
BVConstantOpGenericAdaptor(RangeT values, const BVConstantOpGenericAdaptorBase &base)
Definition SMT.h.inc:2120
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2116
BVConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2123
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2125
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:2118
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2129
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2114
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2171
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2179
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:32
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2158
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2626
::llzk::smt::BitVectorAttr getValue()
Definition SMT.cpp.inc:2647
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:2167
::llzk::smt::BitVectorAttr getValueAttr()
Definition SMT.h.inc:2208
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2189
void setValueAttr(::llzk::smt::BitVectorAttr attr)
Definition SMT.h.inc:2213
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2753
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:2163
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:2615
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2185
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition SMTOps.cpp:39
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2175
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2735
::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 SMTOps.cpp:23
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:2642
FoldAdaptor::Properties Properties
Definition SMT.h.inc:2157
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:2609
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2156
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:2635
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, const llvm::APInt &value)
Definition SMT.cpp.inc:2652
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2757
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2565
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:2604
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2792
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2784
BVConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2155
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:2588
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:2622
BVConstantOpAdaptor Adaptor
Definition SMT.h.inc:2153
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2195
BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2287
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2810
BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2289
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2296
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2300
BVLShrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2294
BVLShrOpGenericAdaptor(RangeT values, const BVLShrOpGenericAdaptorBase &base)
Definition SMT.h.inc:2291
BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2287
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2869
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:2362
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:2814
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2948
::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 SMT.cpp.inc:2901
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2382
BVLShrOpAdaptor Adaptor
Definition SMT.h.inc:2332
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2376
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2897
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:2367
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2344
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:2354
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2348
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2911
BVLShrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2334
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2336
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2340
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2335
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:2358
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2961
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2372
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2979
BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2439
BVMulOpGenericAdaptor(RangeT values, const BVMulOpGenericAdaptorBase &base)
Definition SMT.h.inc:2443
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2452
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2448
BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2439
BVMulOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2446
BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2441
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2492
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3066
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:2506
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2487
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2534
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2528
BVMulOpAdaptor Adaptor
Definition SMT.h.inc:2484
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2524
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3117
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3080
::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 SMT.cpp.inc:3070
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:2510
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:2519
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:2514
BVMulOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2486
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2500
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3130
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2496
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:2983
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2488
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3038
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3148
BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2591
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2604
BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2593
BVNegOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2598
BVNegOpGenericAdaptor(RangeT values, const BVNegOpGenericAdaptorBase &base)
Definition SMT.h.inc:2595
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2600
BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2591
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:2658
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3266
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2663
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2644
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2667
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3204
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2648
BVNegOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2634
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:2654
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3276
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3226
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2640
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2636
::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 SMT.cpp.inc:3230
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2673
BVNegOpAdaptor Adaptor
Definition SMT.h.inc:2632
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2635
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:3152
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3240
BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2730
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3294
BVNotOpGenericAdaptor(RangeT values, const BVNotOpGenericAdaptorBase &base)
Definition SMT.h.inc:2734
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2743
BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2732
BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2730
BVNotOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2737
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2739
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2779
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2783
BVNotOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2773
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2774
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3372
::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 SMT.cpp.inc:3376
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2787
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3386
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2775
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3422
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3412
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2812
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:3298
BVNotOpAdaptor Adaptor
Definition SMT.h.inc:2771
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:2797
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2802
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2806
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:2793
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3350
BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2869
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3440
BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2869
BVOrOpGenericAdaptor(RangeT values, const BVOrOpGenericAdaptorBase &base)
Definition SMT.h.inc:2873
BVOrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2876
BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2871
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2878
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2882
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2964
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3527
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2917
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2930
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2922
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:2936
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3499
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2954
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:2949
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:2944
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3444
BVOrOpAdaptor Adaptor
Definition SMT.h.inc:2914
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:2940
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2958
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2918
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3591
::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 SMT.cpp.inc:3531
BVOrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2916
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2926
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3578
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3541
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3609
BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3021
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3034
BVSDivOpGenericAdaptor(RangeT values, const BVSDivOpGenericAdaptorBase &base)
Definition SMT.h.inc:3025
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3030
BVSDivOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3028
BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3021
BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3023
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3069
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3110
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3668
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3078
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3096
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3074
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3696
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3092
BVSDivOpAdaptor Adaptor
Definition SMT.h.inc:3066
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3613
::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 SMT.cpp.inc:3700
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3747
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3070
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3710
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3116
BVSDivOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3068
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3082
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3101
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3760
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3106
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3088
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3778
BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3173
BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3173
BVSModOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3180
BVSModOpGenericAdaptor(RangeT values, const BVSModOpGenericAdaptorBase &base)
Definition SMT.h.inc:3177
BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3175
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3182
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3186
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3253
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3262
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3837
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3230
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3221
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3240
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3244
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3258
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3248
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3222
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3865
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3782
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3879
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3234
BVSModOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3220
::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 SMT.cpp.inc:3869
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3929
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3268
BVSModOpAdaptor Adaptor
Definition SMT.h.inc:3218
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3916
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3226
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3947
BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3325
BVSRemOpGenericAdaptor(RangeT values, const BVSRemOpGenericAdaptorBase &base)
Definition SMT.h.inc:3329
BVSRemOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3332
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3334
BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3327
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3338
BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3325
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3374
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3414
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3951
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3392
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4098
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4034
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3405
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4006
BVSRemOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3372
::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 SMT.cpp.inc:4038
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3400
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3382
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3378
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4048
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3373
BVSRemOpAdaptor Adaptor
Definition SMT.h.inc:3370
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3396
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3410
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3386
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4085
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3420
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4116
BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3477
BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3479
BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3477
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3486
BVShlOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3484
BVShlOpGenericAdaptor(RangeT values, const BVShlOpGenericAdaptorBase &base)
Definition SMT.h.inc:3481
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3490
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3557
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3544
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4267
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3534
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4175
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3566
BVShlOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3524
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4203
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3530
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3548
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4120
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3538
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3525
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3572
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4217
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4254
::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 SMT.cpp.inc:4207
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3562
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3552
BVShlOpAdaptor Adaptor
Definition SMT.h.inc:3522
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3526
BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3629
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4285
BVUDivOpGenericAdaptor(RangeT values, const BVUDivOpGenericAdaptorBase &base)
Definition SMT.h.inc:3633
BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3631
BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3629
BVUDivOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3636
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3638
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3642
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4436
BVUDivOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3676
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3704
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3709
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3718
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3714
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3690
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3686
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4289
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3677
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4372
BVUDivOpAdaptor Adaptor
Definition SMT.h.inc:3674
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3700
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3678
::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 SMT.cpp.inc:4376
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4386
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3724
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3682
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4344
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4423
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3696
BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3781
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4454
BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3781
BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3783
BVURemOpGenericAdaptor(RangeT values, const BVURemOpGenericAdaptorBase &base)
Definition SMT.h.inc:3785
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3794
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3790
BVURemOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3788
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3842
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3856
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3876
::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 SMT.cpp.inc:4545
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3848
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4555
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3866
BVURemOpAdaptor Adaptor
Definition SMT.h.inc:3826
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3870
BVURemOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3828
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3852
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4605
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3830
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4513
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3834
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4541
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3838
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3829
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4458
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3861
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4592
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4623
BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3933
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3942
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3946
BVXOrOpGenericAdaptor(RangeT values, const BVXOrOpGenericAdaptorBase &base)
Definition SMT.h.inc:3937
BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3935
BVXOrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3940
BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3933
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:4004
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4627
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3994
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3990
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:4008
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:4000
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4724
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4682
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4022
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4761
BVXOrOpAdaptor Adaptor
Definition SMT.h.inc:3978
::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 SMT.cpp.inc:4714
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:4028
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:4013
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3982
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4774
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3981
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4018
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3986
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4710
BVXOrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3980
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4116
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4799
BoolConstantOpAdaptor(BoolConstantOp op)
Definition SMT.cpp.inc:4797
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4118
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:4120
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4131
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4127
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4116
BoolConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4125
BoolConstantOpGenericAdaptor(RangeT values, const BoolConstantOpGenericAdaptorBase &base)
Definition SMT.h.inc:4122
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:4878
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:4858
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4181
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4173
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:4847
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::BoolAttr value)
Definition SMT.cpp.inc:4899
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:4852
BoolConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4157
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4160
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5026
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4177
void setValueAttr(::mlir::BoolAttr attr)
Definition SMT.h.inc:4215
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4996
BoolConstantOpAdaptor Adaptor
Definition SMT.h.inc:4155
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4191
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5055
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:4165
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:4197
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4187
FoldAdaptor::Properties Properties
Definition SMT.h.inc:4159
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:4865
void setValue(bool attrValue)
Definition SMT.cpp.inc:4895
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:278
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4158
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5014
::mlir::BoolAttr getValueAttr()
Definition SMT.h.inc:4210
::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 SMT.cpp.inc:5018
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:4831
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5047
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:4169
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:4885
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition SMTOps.cpp:282
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:4808
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:4869
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5073
CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4307
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4316
CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4309
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4320
CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4307
CheckOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4314
CheckOpGenericAdaptor(RangeT values, const CheckOpGenericAdaptorBase &base)
Definition SMT.h.inc:4311
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4360
::mlir::Region & getUnsatRegion()
Definition SMT.h.inc:4385
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4356
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange results)
Definition SMT.cpp.inc:5095
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4352
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5143
CheckOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4346
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5111
::mlir::Region & getUnknownRegion()
Definition SMT.h.inc:4381
::mlir::Region & getSatRegion()
Definition SMT.h.inc:4377
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4348
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5139
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4347
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.cpp.inc:5077
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:71
::mlir::Operation::result_range getResults()
Definition SMT.h.inc:4373
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5186
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4367
CheckOpAdaptor Adaptor
Definition SMT.h.inc:4344
ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4438
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5250
ConcatOpGenericAdaptor(RangeT values, const ConcatOpGenericAdaptorBase &base)
Definition SMT.h.inc:4442
ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4438
ConcatOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4445
ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4440
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4447
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4451
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:4509
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:4513
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5396
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4523
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4491
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4486
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:4533
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5309
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5337
ConcatOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4485
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4499
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5341
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:5254
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5383
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4487
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:4505
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:4518
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4527
::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 SMTOps.cpp:175
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4495
ConcatOpAdaptor Adaptor
Definition SMT.h.inc:4483
DeclareFunOpAdaptor(DeclareFunOp op)
Definition SMT.cpp.inc:5419
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4621
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5421
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:4625
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4636
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4632
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4621
DeclareFunOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4630
DeclareFunOpGenericAdaptor(RangeT values, const DeclareFunOpGenericAdaptorBase &base)
Definition SMT.h.inc:4627
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4623
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:5429
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5584
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5580
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5615
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:5506
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4682
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:5499
void setNamePrefix(::std::optional<::llvm::StringRef > attrValue)
Definition SMT.cpp.inc:5517
::mlir::StringAttr getNamePrefixAttr()
Definition SMT.h.inc:4715
DeclareFunOpAdaptor Adaptor
Definition SMT.h.inc:4660
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:5479
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:5486
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:4702
::mlir::StringAttr getNamePrefixAttrName(::mlir::OperationName name)
Definition SMT.h.inc:4674
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:48
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:5473
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5628
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4692
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4665
::mlir::Attribute removeNamePrefixAttr()
Definition SMT.h.inc:4725
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5563
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:5452
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:5468
FoldAdaptor::Properties Properties
Definition SMT.h.inc:4664
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:5490
::std::optional< ::llvm::StringRef > getNamePrefix()
Definition SMT.cpp.inc:5512
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4678
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4663
::mlir::StringAttr getNamePrefixAttrName()
Definition SMT.h.inc:4670
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4686
void setNamePrefixAttr(::mlir::StringAttr attr)
Definition SMT.h.inc:4720
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Type type)
Definition SMT.cpp.inc:5525
DeclareFunOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4662
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4696
DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4793
DistinctOpAdaptor(DistinctOp op)
Definition SMT.cpp.inc:5668
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5670
DistinctOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4800
DistinctOpGenericAdaptor(RangeT values, const DistinctOpGenericAdaptorBase &base)
Definition SMT.h.inc:4797
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4806
DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4793
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4802
DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4795
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:4853
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4838
DistinctOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4836
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4847
DistinctOpAdaptor Adaptor
Definition SMT.h.inc:4834
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5754
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:4868
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4862
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:139
::llvm::LogicalResult verify()
Definition SMTOps.cpp:145
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:135
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4842
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:5674
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4837
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4858
::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 SMT.cpp.inc:5760
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5732
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:5692
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:5698
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5768
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5804
EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4922
EqOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4929
EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4924
EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4922
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4931
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4935
EqOpGenericAdaptor(RangeT values, const EqOpGenericAdaptorBase &base)
Definition SMT.h.inc:4926
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5888
::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 SMT.cpp.inc:5894
EqOpAdaptor Adaptor
Definition SMT.h.inc:4963
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:5808
EqOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4965
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4966
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:5826
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:4982
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:4997
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4971
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:5832
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:117
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5866
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:113
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4976
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5902
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4967
::llvm::LogicalResult verify()
Definition SMTOps.cpp:123
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4987
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4991
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5951
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5123
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:5127
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5123
ExistsOpGenericAdaptor(RangeT values, const ExistsOpGenericAdaptorBase &base)
Definition SMT.h.inc:5129
ExistsOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5132
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5134
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5138
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5125
::mlir::Region & getBody()
Definition SMT.h.inc:5224
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:6221
FoldAdaptor::Properties Properties
Definition SMT.h.inc:5166
::llvm::LogicalResult verify()
Definition SMTOps.cpp:462
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:6084
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:6055
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:6067
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:471
::mlir::StringAttr getNoPatternAttrName()
Definition SMT.h.inc:5180
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:6171
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:6048
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:6113
::mlir::MutableArrayRef<::mlir::Region > getPatterns()
Definition SMT.h.inc:5228
void setWeightAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:5256
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5200
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:6288
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:6207
::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5184
::mlir::Attribute removeNoPatternAttr()
Definition SMT.h.inc:5270
void setNoPattern(bool attrValue)
Definition SMT.cpp.inc:6157
::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 SMT.cpp.inc:6213
::mlir::UnitAttr getNoPatternAttr()
Definition SMT.h.inc:5246
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5214
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition SMT.cpp.inc:6165
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:6018
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5196
::mlir::ArrayAttr getBoundVarNamesAttr()
Definition SMT.h.inc:5251
ExistsOpAdaptor Adaptor
Definition SMT.h.inc:5162
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:6148
::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5176
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5210
::mlir::StringAttr getWeightAttrName()
Definition SMT.h.inc:5188
ExistsOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5164
void setNoPatternAttr(::mlir::UnitAttr attr)
Definition SMT.h.inc:5261
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5165
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::TypeRange boundVarTypes, llvm::function_ref< mlir::Value(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> bodyBuilder, std::optional< llvm::ArrayRef< mlir::StringRef > > boundVarNames=std::nullopt, llvm::function_ref< mlir::ValueRange(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> patternBuilder={}, uint32_t weight=0, bool noPattern=false)
Definition SMTOps.cpp:473
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6092
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5204
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5167
::mlir::Attribute removeBoundVarNamesAttr()
Definition SMT.h.inc:5276
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:6126
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:5967
::mlir::StringAttr getBoundVarNamesAttrName()
Definition SMT.h.inc:5172
::mlir::IntegerAttr getWeightAttr()
Definition SMT.h.inc:5241
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5220
::mlir::StringAttr getWeightAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5192
void setBoundVarNamesAttr(::mlir::ArrayAttr attr)
Definition SMT.h.inc:5266
uint32_t getWeight()
Definition SMT.cpp.inc:6136
void setWeight(uint32_t attrValue)
Definition SMT.cpp.inc:6153
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5377
ExtractOpAdaptor(ExtractOp op)
Definition SMT.cpp.inc:6369
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:6371
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5379
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5377
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5392
ExtractOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5386
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5388
ExtractOpGenericAdaptor(RangeT values, const ExtractOpGenericAdaptorBase &base)
Definition SMT.h.inc:5383
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:5381
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5438
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5442
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:6548
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:6542
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:5456
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:5452
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5446
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6441
::mlir::StringAttr getLowBitAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5434
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:6589
::mlir::StringAttr getLowBitAttrName()
Definition SMT.h.inc:5430
void setLowBitAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:5489
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5425
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6380
ExtractOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5422
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:6403
FoldAdaptor::Properties Properties
Definition SMT.h.inc:5424
void setLowBit(uint32_t attrValue)
Definition SMT.cpp.inc:6467
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:6424
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5465
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:6419
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr lowBit, ::mlir::Value input)
Definition SMT.cpp.inc:6471
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:6457
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:6450
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5461
ExtractOpAdaptor Adaptor
Definition SMT.h.inc:5420
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:6437
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:6515
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:6603
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5423
::llvm::LogicalResult verify()
Definition SMTOps.cpp:157
::mlir::IntegerAttr getLowBitAttr()
Definition SMT.h.inc:5484
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:5471
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:6430
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5629
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:6652
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5631
ForallOpGenericAdaptor(RangeT values, const ForallOpGenericAdaptorBase &base)
Definition SMT.h.inc:5635
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5644
ForallOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5638
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:5633
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5640
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5629
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5706
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:6756
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:6849
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:443
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:6989
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:6768
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:6922
void setBoundVarNamesAttr(::mlir::ArrayAttr attr)
Definition SMT.h.inc:5772
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5710
ForallOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5670
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:6785
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5702
::mlir::StringAttr getBoundVarNamesAttrName()
Definition SMT.h.inc:5678
void setNoPatternAttr(::mlir::UnitAttr attr)
Definition SMT.h.inc:5767
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5726
::llvm::LogicalResult verify()
Definition SMTOps.cpp:434
::mlir::Region & getBody()
Definition SMT.h.inc:5730
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6668
::mlir::ArrayAttr getBoundVarNamesAttr()
Definition SMT.h.inc:5757
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6793
::mlir::IntegerAttr getWeightAttr()
Definition SMT.h.inc:5747
::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5682
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5671
::mlir::StringAttr getWeightAttrName()
Definition SMT.h.inc:5694
uint32_t getWeight()
Definition SMT.cpp.inc:6837
::mlir::StringAttr getWeightAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5698
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:6827
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::TypeRange boundVarTypes, llvm::function_ref< mlir::Value(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> bodyBuilder, std::optional< llvm::ArrayRef< mlir::StringRef > > boundVarNames=std::nullopt, llvm::function_ref< mlir::ValueRange(mlir::OpBuilder &, mlir::Location, mlir::ValueRange)> patternBuilder={}, uint32_t weight=0, bool noPattern=false)
Definition SMTOps.cpp:445
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:6749
::mlir::StringAttr getNoPatternAttrName()
Definition SMT.h.inc:5686
::mlir::Attribute removeBoundVarNamesAttr()
Definition SMT.h.inc:5782
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:6872
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:6814
::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 SMT.cpp.inc:6914
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5716
void setWeight(uint32_t attrValue)
Definition SMT.cpp.inc:6854
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5673
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5720
::mlir::UnitAttr getNoPatternAttr()
Definition SMT.h.inc:5752
ForallOpAdaptor Adaptor
Definition SMT.h.inc:5668
void setWeightAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:5762
::mlir::MutableArrayRef<::mlir::Region > getPatterns()
Definition SMT.h.inc:5734
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:6719
::mlir::Attribute removeNoPatternAttr()
Definition SMT.h.inc:5776
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition SMT.cpp.inc:6866
::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5690
void setNoPattern(bool attrValue)
Definition SMT.cpp.inc:6858
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:6908
FoldAdaptor::Properties Properties
Definition SMT.h.inc:5672
ImpliesOpAdaptor(ImpliesOp op)
Definition SMT.cpp.inc:7063
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7065
ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5852
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5861
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5865
ImpliesOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5859
ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5852
ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5854
ImpliesOpGenericAdaptor(RangeT values, const ImpliesOpGenericAdaptorBase &base)
Definition SMT.h.inc:5856
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5905
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7205
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7195
::mlir::TypedValue<::llzk::smt::BoolType > getRhs()
Definition SMT.h.inc:5923
::mlir::TypedValue<::llzk::smt::BoolType > getLhs()
Definition SMT.h.inc:5919
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5900
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7164
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:7069
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7152
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:5932
ImpliesOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5899
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7124
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5947
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5913
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5909
::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 SMT.cpp.inc:7156
ImpliesOpAdaptor Adaptor
Definition SMT.h.inc:5897
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5901
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5941
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:5927
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5937
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7223
Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6004
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6017
Int2BVOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6011
Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6004
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6013
Int2BVOpGenericAdaptor(RangeT values, const Int2BVOpGenericAdaptorBase &base)
Definition SMT.h.inc:6008
Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6006
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6049
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:6071
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6057
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6080
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7246
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6076
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7268
Int2BVOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6047
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7299
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:7227
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7272
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:6086
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6053
::mlir::TypedValue<::llzk::smt::IntType > getInput()
Definition SMT.h.inc:6067
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6061
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7309
Int2BVOpAdaptor Adaptor
Definition SMT.h.inc:6045
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6048
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7327
IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6140
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6153
IntAbsOpGenericAdaptor(RangeT values, const IntAbsOpGenericAdaptorBase &base)
Definition SMT.h.inc:6144
IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6142
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6149
IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6140
IntAbsOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6147
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6185
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:6207
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7437
IntAbsOpAdaptor Adaptor
Definition SMT.h.inc:6181
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6189
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7417
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7444
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7383
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6222
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6212
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6216
::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 SMT.cpp.inc:7409
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7405
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:7331
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6184
IntAbsOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6183
::mlir::TypedValue<::llzk::smt::IntType > getInput()
Definition SMT.h.inc:6203
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6197
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6193
IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6276
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7480
IntAddOpGenericAdaptor(RangeT values, const IntAddOpGenericAdaptorBase &base)
Definition SMT.h.inc:6280
IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6276
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6285
IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6278
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6289
IntAddOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6283
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6341
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6325
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:6336
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6330
::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 SMT.cpp.inc:7563
IntAddOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6319
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs)
Definition SMT.cpp.inc:7508
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7598
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7537
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7591
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6321
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6351
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:7502
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6320
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6345
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:7484
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7559
IntAddOpAdaptor Adaptor
Definition SMT.h.inc:6317
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7571
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6437
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7623
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6437
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6448
IntCmpOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6446
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:6441
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6452
IntCmpOpGenericAdaptor(RangeT values, const IntCmpOpGenericAdaptorBase &base)
Definition SMT.h.inc:6443
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6439
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6510
::mlir::StringAttr getPredAttrName()
Definition SMT.h.inc:6494
IntCmpOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6486
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7832
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6534
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:7723
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:7693
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6506
void setPred(::llzk::smt::IntPredicate attrValue)
Definition SMT.cpp.inc:7719
FoldAdaptor::Properties Properties
Definition SMT.h.inc:6488
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:7671
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:7655
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7961
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:6544
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6502
::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 SMT.cpp.inc:7869
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:7689
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6489
void setPredAttr(::llzk::smt::IntPredicateAttr attr)
Definition SMT.h.inc:6562
::llzk::smt::IntPredicate getPred()
Definition SMT.cpp.inc:7714
IntCmpOpAdaptor Adaptor
Definition SMT.h.inc:6484
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:7682
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:7676
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:6520
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6487
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7865
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:7632
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7943
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:6529
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:7702
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6538
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7877
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:7709
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:6516
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:6524
::llzk::smt::IntPredicateAttr getPredAttr()
Definition SMT.h.inc:6557
::mlir::StringAttr getPredAttrName(::mlir::OperationName name)
Definition SMT.h.inc:6498
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6667
IntConstantOpAdaptor(IntConstantOp op)
Definition SMT.cpp.inc:7984
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7986
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:6671
IntConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6676
IntConstantOpGenericAdaptor(RangeT values, const IntConstantOpGenericAdaptorBase &base)
Definition SMT.h.inc:6673
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6678
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6667
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6669
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6682
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:8065
::mlir::APInt getValue()
Definition SMT.cpp.inc:8077
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:303
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6711
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:8052
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6709
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition SMTOps.cpp:298
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6748
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8171
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:291
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:8056
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:308
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6732
::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 SMT.cpp.inc:8175
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6724
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:8072
FoldAdaptor::Properties Properties
Definition SMT.h.inc:6710
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6738
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:8039
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:8018
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:7995
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:6720
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6742
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:8034
::mlir::IntegerAttr getValueAttr()
Definition SMT.h.inc:6761
IntConstantOpAdaptor Adaptor
Definition SMT.h.inc:6706
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8153
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:6716
IntConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6708
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6728
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr value)
Definition SMT.cpp.inc:8082
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8183
void setValueAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:6766
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:8045
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8201
IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6838
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6847
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6851
IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6838
IntDivOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6845
IntDivOpGenericAdaptor(RangeT values, const IntDivOpGenericAdaptorBase &base)
Definition SMT.h.inc:6842
IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6840
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8300
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:6909
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8341
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8288
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8260
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:6918
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6887
IntDivOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6885
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:8205
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6933
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6927
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6886
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8331
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6899
::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 SMT.cpp.inc:8292
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:6913
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6895
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6891
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:6905
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6923
IntDivOpAdaptor Adaptor
Definition SMT.h.inc:6883
IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6990
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8359
IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6990
IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6992
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7003
IntModOpGenericAdaptor(RangeT values, const IntModOpGenericAdaptorBase &base)
Definition SMT.h.inc:6994
IntModOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6997
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6999
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:8363
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7043
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8446
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:7057
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7051
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7047
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8418
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8458
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7079
IntModOpAdaptor Adaptor
Definition SMT.h.inc:7035
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8499
::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 SMT.cpp.inc:8450
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:7070
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:7065
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8489
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:7061
IntModOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7037
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7075
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7038
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7039
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7085
IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7139
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8535
IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7139
IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7141
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7152
IntMulOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7146
IntMulOpGenericAdaptor(RangeT values, const IntMulOpGenericAdaptorBase &base)
Definition SMT.h.inc:7143
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7148
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs)
Definition SMT.cpp.inc:8563
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7188
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7208
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7183
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7204
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:8539
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8614
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7214
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8626
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8653
IntMulOpAdaptor Adaptor
Definition SMT.h.inc:7180
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:7199
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8592
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7184
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8646
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7193
IntMulOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7182
::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 SMT.cpp.inc:8618
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:8557
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8671
IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7269
IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7271
IntNegOpGenericAdaptor(RangeT values, const IntNegOpGenericAdaptorBase &base)
Definition SMT.h.inc:7273
IntNegOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7276
IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7269
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7282
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7278
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8781
IntNegOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7312
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8788
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7314
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7318
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7313
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8749
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7341
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8727
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7326
IntNegOpAdaptor Adaptor
Definition SMT.h.inc:7310
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8761
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:7336
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7322
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7345
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7351
::mlir::TypedValue<::llzk::smt::IntType > getInput()
Definition SMT.h.inc:7332
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:8675
::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 SMT.cpp.inc:8753
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8806
IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7408
IntSubOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7415
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7417
IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7410
IntSubOpGenericAdaptor(RangeT values, const IntSubOpGenericAdaptorBase &base)
Definition SMT.h.inc:7412
IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7408
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7421
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:7475
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:8810
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7461
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8936
IntSubOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7455
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8865
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8946
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:7488
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7469
::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 SMT.cpp.inc:8897
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7465
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:7479
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7493
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7497
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8905
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7457
IntSubOpAdaptor Adaptor
Definition SMT.h.inc:7453
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8893
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7456
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7503
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:7483
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8964
IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7560
IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7562
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7569
IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7560
IteOpGenericAdaptor(RangeT values, const IteOpGenericAdaptorBase &base)
Definition SMT.h.inc:7564
IteOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7567
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7573
::mlir::OpOperand & getCondMutable()
Definition SMT.h.inc:7643
IteOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7611
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9141
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7658
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7613
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9125
::mlir::TypedValue<::mlir::Type > getElseValue()
Definition SMT.h.inc:7639
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7662
IteOpAdaptor Adaptor
Definition SMT.h.inc:7609
::mlir::TypedValue<::mlir::Type > getThenValue()
Definition SMT.h.inc:7635
::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 SMT.cpp.inc:9066
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7612
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9062
::mlir::OpOperand & getThenValueMutable()
Definition SMT.h.inc:7648
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7625
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue)
Definition SMT.cpp.inc:8968
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:7668
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7621
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9026
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7617
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9076
::mlir::OpOperand & getElseValueMutable()
Definition SMT.h.inc:7653
::mlir::TypedValue<::llzk::smt::BoolType > getCond()
Definition SMT.h.inc:7631
NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7725
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9159
NotOpGenericAdaptor(RangeT values, const NotOpGenericAdaptorBase &base)
Definition SMT.h.inc:7729
NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7725
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7738
NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7727
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7734
NotOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7732
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9269
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7797
::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 SMT.cpp.inc:9241
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7774
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7801
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9237
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7782
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9215
NotOpAdaptor Adaptor
Definition SMT.h.inc:7766
::mlir::TypedValue<::llzk::smt::BoolType > getInput()
Definition SMT.h.inc:7788
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7769
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9276
NotOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7768
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7778
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7770
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:7807
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9249
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:9163
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:7792
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9312
OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7861
OrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7868
OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7863
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7870
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7874
OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7861
OrOpGenericAdaptor(RangeT values, const OrOpGenericAdaptorBase &base)
Definition SMT.h.inc:7865
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7906
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:7936
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7930
OrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7904
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7926
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9428
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9396
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:9340
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9408
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9374
::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 SMT.cpp.inc:9400
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:9334
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7905
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9435
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7915
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7910
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:7921
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:9316
OrOpAdaptor Adaptor
Definition SMT.h.inc:7902
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8023
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9460
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8023
PopOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8032
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8038
PopOpGenericAdaptor(RangeT values, const PopOpGenericAdaptorBase &base)
Definition SMT.h.inc:8029
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8027
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8025
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8034
::mlir::StringAttr getCountAttrName()
Definition SMT.h.inc:8072
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8066
::mlir::StringAttr getCountAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8076
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8098
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8084
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:9539
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9469
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:9546
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9598
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8094
uint32_t getCount()
Definition SMT.cpp.inc:9551
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9630
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:9526
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8080
void setCount(uint32_t attrValue)
Definition SMT.cpp.inc:9556
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8067
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8065
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9611
::mlir::IntegerAttr getCountAttr()
Definition SMT.h.inc:8113
PopOpAdaptor Adaptor
Definition SMT.h.inc:8062
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9607
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:9508
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count)
Definition SMT.cpp.inc:9560
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8088
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:9492
PopOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8064
void setCountAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:8118
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:9513
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:9519
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9530
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8218
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9660
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8222
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8218
PushOpGenericAdaptor(RangeT values, const PushOpGenericAdaptorBase &base)
Definition SMT.h.inc:8224
PushOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8227
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8233
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8229
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8220
::mlir::StringAttr getCountAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8271
void setCountAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:8313
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8260
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9798
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9807
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:9719
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8293
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8283
PushOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8259
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:9713
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8275
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9730
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count)
Definition SMT.cpp.inc:9760
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:9746
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9811
PushOpAdaptor Adaptor
Definition SMT.h.inc:8257
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:9692
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9830
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8289
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:9739
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8262
uint32_t getCount()
Definition SMT.cpp.inc:9751
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8279
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8261
::mlir::StringAttr getCountAttrName()
Definition SMT.h.inc:8267
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9669
::mlir::IntegerAttr getCountAttr()
Definition SMT.h.inc:8308
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:9708
void setCount(uint32_t attrValue)
Definition SMT.cpp.inc:9756
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:9726
RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8382
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9853
RepeatOpGenericAdaptor(RangeT values, const RepeatOpGenericAdaptorBase &base)
Definition SMT.h.inc:8386
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8391
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8395
RepeatOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8389
RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8382
RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8384
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8426
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9904
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:8445
::llvm::LogicalResult verify()
Definition SMTOps.cpp:193
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:8464
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8435
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8427
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, unsigned count, mlir::Value input)
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:8449
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8454
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8458
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:268
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8439
unsigned getCount()
Get the number of times the input operand is repeated.
Definition SMTOps.cpp:204
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8431
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9898
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:216
RepeatOpAdaptor Adaptor
Definition SMT.h.inc:8423
RepeatOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8425
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9876
ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8522
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9922
ResetOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8529
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8535
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8531
ResetOpGenericAdaptor(RangeT values, const ResetOpGenericAdaptorBase &base)
Definition SMT.h.inc:8526
ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8522
ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8524
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8563
ResetOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8561
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8581
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8562
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9946
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9959
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8571
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8567
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9942
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8575
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
Definition SMT.cpp.inc:9926
ResetOpAdaptor Adaptor
Definition SMT.h.inc:8559
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8585
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9950
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8671
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9986
SetLogicOpAdaptor(SetLogicOp op)
Definition SMT.cpp.inc:9984
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8686
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8682
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8671
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8673
SetLogicOpGenericAdaptor(RangeT values, const SetLogicOpGenericAdaptorBase &base)
Definition SMT.h.inc:8677
SetLogicOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8680
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8675
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8736
::llvm::StringRef getLogic()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8728
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9995
SetLogicOpAdaptor Adaptor
Definition SMT.h.inc:8710
::mlir::StringAttr getLogicAttr()
Definition SMT.h.inc:8761
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8746
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr logic)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
SetLogicOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8712
::llvm::LogicalResult verifyInvariants()
void setLogic(::llvm::StringRef attrValue)
::mlir::StringAttr getLogicAttrName()
Definition SMT.h.inc:8720
::mlir::StringAttr getLogicAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8724
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8742
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8715
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8713
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8714
void setLogicAttr(::mlir::StringAttr attr)
Definition SMT.h.inc:8766
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8732
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verify(::mlir::Location loc)
SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8840
SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8842
SolverOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8847
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8849
SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8840
SolverOpGenericAdaptor(RangeT values, const SolverOpGenericAdaptorBase &base)
Definition SMT.h.inc:8844
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8853
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8906
::llvm::LogicalResult verifyInvariants()
SolverOpAdaptor Adaptor
Definition SMT.h.inc:8881
static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes={})
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::Operation::result_range getResults()
Definition SMT.h.inc:8912
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8894
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:56
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8889
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Region & getBodyRegion()
Definition SMT.h.inc:8916
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8884
SolverOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8883
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:8900
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8885
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::MutableOperandRange getInputsMutable()
::llvm::LogicalResult verify(::mlir::Location loc)
XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8965
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8978
XOrOpGenericAdaptor(RangeT values, const XOrOpGenericAdaptorBase &base)
Definition SMT.h.inc:8969
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8974
XOrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8972
XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8967
XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8965
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:9030
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:9040
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:9034
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:9019
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:9010
::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)
XOrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:9008
::mlir::MutableOperandRange getInputsMutable()
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:9014
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariants()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:9009
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:9025
XOrOpAdaptor Adaptor
Definition SMT.h.inc:9006
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verify(::mlir::Location loc)
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9093
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:9102
YieldOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:9100
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:9106
YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base)
Definition SMT.h.inc:9097
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9093
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9095
YieldOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:9136
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:9137
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:9158
::mlir::MutableOperandRange getValuesMutable()
YieldOpAdaptor Adaptor
Definition SMT.h.inc:9134
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:9142
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariants()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:9138
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:9147
::mlir::Operation::operand_range getValues()
Definition SMT.h.inc:9153
::mlir::MutableOperandRange getMutableSuccessorOperands(::mlir::RegionBranchPoint point)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:9162
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariantsImpl()
AndOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:307
AndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:303
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:361
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:310
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:300
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:520
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:428
ApplyFuncOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:431
ApplyFuncOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:435
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:579
ArrayBroadcastOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:577
ArrayBroadcastOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:573
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:570
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:715
ArraySelectOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:713
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:706
ArraySelectOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:709
ArrayStoreOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:861
ArrayStoreOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:865
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:858
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:867
AssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1026
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1032
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1023
AssertOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1030
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1184
BV2IntOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1178
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1174
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1382
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1373
BVAShrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1380
BVAShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1376
BVAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1528
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:1538
BVAddOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1532
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1525
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1534
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1686
BVAndOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1684
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1677
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:1690
BVAndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1680
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1859
::llzk::smt::BVCmpPredicateAttr getPredAttr()
Definition SMT.h.inc:1871
::llzk::smt::BVCmpPredicate getPred()
Definition SMT.cpp.inc:2176
BVCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1853
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:1867
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1849
::llzk::smt::BitVectorAttr getValueAttr()
Definition SMT.h.inc:2101
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2079
BVConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2083
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2089
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2263
BVLShrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2270
BVLShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2266
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2272
BVMulOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2422
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2428
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2415
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2424
BVMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2418
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2580
BVNegOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2574
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2576
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2567
BVNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2570
BVNotOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2713
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2715
BVNotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2709
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2706
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2719
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2854
BVOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2848
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2858
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2845
BVOrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2852
BVSDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3000
BVSDivOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3004
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3006
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2997
BVSModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3152
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3158
BVSModOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3156
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3149
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3310
BVSRemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3304
BVSRemOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3308
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3301
BVShlOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3456
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:3466
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3453
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3462
BVShlOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3460
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3614
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3605
BVUDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3608
BVUDivOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3612
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3766
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3757
BVURemOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3764
BVURemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3760
BVXOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3912
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:3922
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3909
BVXOrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3916
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3918
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4081
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4091
BoolConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4085
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4276
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:4280
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4267
CheckOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4274
CheckOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4270
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4414
ConcatOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4421
ConcatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4417
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4423
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4586
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4596
DeclareFunOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4590
::std::optional< ::llvm::StringRef > getNamePrefix()
Definition SMT.cpp.inc:5413
DistinctOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4779
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:5649
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4772
DistinctOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4775
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4901
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:5783
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:4911
EqOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4904
EqOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4908
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:5943
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5082
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5072
ExistsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5076
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5352
ExtractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5346
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5342
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:6644
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5588
ForallOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5582
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5578
ImpliesOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:5835
ImpliesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5831
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5828
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5837
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5980
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5989
Int2BVOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:5987
Int2BVOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5983
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6125
IntAbsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6119
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6116
IntAbsOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6123
IntAddOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6262
IntAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6258
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:7459
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6255
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6402
::llzk::smt::IntPredicateAttr getPredAttr()
Definition SMT.h.inc:6424
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6412
IntCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6406
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6642
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6632
IntConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6636
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6814
IntDivOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6821
IntDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6817
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6823
IntModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6969
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6966
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6975
IntModOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6973
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7118
IntMulOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7125
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:8514
IntMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7121
IntNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7248
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7245
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7254
IntNegOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7252
IntSubOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7387
IntSubOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7391
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7393
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7384
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7545
IteOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7543
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:7549
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7536
IteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7539
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:7714
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7701
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7710
NotOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7708
NotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7704
OrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7847
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:9291
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:7850
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7840
OrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7843
PopOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7992
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7998
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8006
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7988
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8183
PushOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8187
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8193
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8201
RepeatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8361
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8367
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8358
RepeatOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:8365
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8507
ResetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8501
ResetOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:8505
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8498
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8511
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8646
SetLogicOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8640
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8636
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8811
SolverOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8814
SolverOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:8818
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8944
XOrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:8951
XOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8947
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8954
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:9072
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:9082
YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9075
YieldOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:9079
void setIsSigned(const ::mlir::UnitAttr &propValue)
Definition SMT.h.inc:1160
bool operator!=(const Properties &rhs) const
Definition SMT.h.inc:1843
void setPred(const ::llzk::smt::BVCmpPredicateAttr &propValue)
Definition SMT.h.inc:1835
bool operator==(const Properties &rhs) const
Definition SMT.h.inc:1838
void setValue(const ::llzk::smt::BitVectorAttr &propValue)
Definition SMT.h.inc:2065
void setValue(const ::mlir::BoolAttr &propValue)
Definition SMT.h.inc:4067
void setNamePrefix(const ::mlir::StringAttr &propValue)
Definition SMT.h.inc:4572
void setNoPattern(const ::mlir::UnitAttr &propValue)
Definition SMT.h.inc:5046
void setBoundVarNames(const ::mlir::ArrayAttr &propValue)
Definition SMT.h.inc:5036
void setWeight(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:5056
void setLowBit(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:5328
void setWeight(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:5562
void setNoPattern(const ::mlir::UnitAttr &propValue)
Definition SMT.h.inc:5552
void setBoundVarNames(const ::mlir::ArrayAttr &propValue)
Definition SMT.h.inc:5542
void setPred(const ::llzk::smt::IntPredicateAttr &propValue)
Definition SMT.h.inc:6388
void setValue(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:6618
void setCount(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:7974
bool operator!=(const Properties &rhs) const
Definition SMT.h.inc:7982
bool operator==(const Properties &rhs) const
Definition SMT.h.inc:7977
bool operator!=(const Properties &rhs) const
Definition SMT.h.inc:8177
bool operator==(const Properties &rhs) const
Definition SMT.h.inc:8172
void setCount(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:8169
void setLogic(const ::mlir::StringAttr &propValue)
Definition SMT.h.inc:8622