LLZK 3.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 SetInfoOp;
268} // namespace smt
269} // namespace llzk
270namespace llzk {
271namespace smt {
272class SetLogicOp;
273} // namespace smt
274} // namespace llzk
275namespace llzk {
276namespace smt {
277class SolverOp;
278} // namespace smt
279} // namespace llzk
280namespace llzk {
281namespace smt {
282class XOrOp;
283} // namespace smt
284} // namespace llzk
285namespace llzk {
286namespace smt {
287class YieldOp;
288} // namespace smt
289} // namespace llzk
290#ifdef GET_OP_CLASSES
291#undef GET_OP_CLASSES
292
293namespace llzk {
294namespace smt {
295
296//===----------------------------------------------------------------------===//
297// ::llzk::smt::AndOp declarations
298//===----------------------------------------------------------------------===//
299
300namespace detail {
302public:
303protected:
304 ::mlir::DictionaryAttr odsAttrs;
305 ::std::optional<::mlir::OperationName> odsOpName;
306 ::mlir::RegionRange odsRegions;
307public:
308 AndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
309 odsOpName.emplace("smt.and", odsAttrs.getContext());
310 }
311
312 AndOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
313
314 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
315 ::mlir::DictionaryAttr getAttributes() {
316 return odsAttrs;
317 }
318
319};
320} // namespace detail
321template <typename RangeT>
323 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
325public:
326 AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
327
328 AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AndOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
329
330 AndOpGenericAdaptor(RangeT values, const AndOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
331
332 template <typename LateInst = AndOp, typename = std::enable_if_t<std::is_same_v<LateInst, AndOp>>>
333 AndOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
334
335 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
336 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
337 }
338
339 RangeT getODSOperands(unsigned index) {
340 auto valueRange = getODSOperandIndexAndLength(index);
341 return {std::next(odsOperands.begin(), valueRange.first),
342 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
343 }
344
345 RangeT getInputs() {
346 return getODSOperands(0);
347 }
348
349 RangeT getOperands() {
350 return odsOperands;
351 }
352
353private:
354 RangeT odsOperands;
355};
356class AndOpAdaptor : public AndOpGenericAdaptor<::mlir::ValueRange> {
357public:
360
361 ::llvm::LogicalResult verify(::mlir::Location loc);
362};
363class 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> {
364public:
365 using Op::Op;
366 using Op::print;
368 template <typename RangeT>
371 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
372 return {};
373 }
374
375 static constexpr ::llvm::StringLiteral getOperationName() {
376 return ::llvm::StringLiteral("smt.and");
377 }
378
379 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
380 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
381 auto valueRange = getODSOperandIndexAndLength(index);
382 return {std::next(getOperation()->operand_begin(), valueRange.first),
383 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
384 }
385
386 ::mlir::Operation::operand_range getInputs() {
387 return getODSOperands(0);
388 }
389
390 ::mlir::MutableOperandRange getInputsMutable();
391 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
392 return {index, 1};
393 }
394
395 ::mlir::Operation::result_range getODSResults(unsigned index) {
396 auto valueRange = getODSResultIndexAndLength(index);
397 return {std::next(getOperation()->result_begin(), valueRange.first),
398 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
399 }
400
401 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
402 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
403 }
404
405 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
406 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
407 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
408 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
409 ::llvm::LogicalResult verifyInvariantsImpl();
410 ::llvm::LogicalResult verifyInvariants();
411 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);
412 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
413 void print(::mlir::OpAsmPrinter &_odsPrinter);
414 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
415public:
416};
417} // namespace smt
418} // namespace llzk
419MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::AndOp)
420
421namespace llzk {
422namespace smt {
423
424//===----------------------------------------------------------------------===//
425// ::llzk::smt::ApplyFuncOp declarations
426//===----------------------------------------------------------------------===//
427
428namespace detail {
430public:
431protected:
432 ::mlir::DictionaryAttr odsAttrs;
433 ::std::optional<::mlir::OperationName> odsOpName;
434 ::mlir::RegionRange odsRegions;
435public:
436 ApplyFuncOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
437 odsOpName.emplace("smt.apply_func", odsAttrs.getContext());
438 }
439
440 ApplyFuncOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
441
442 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
443 ::mlir::DictionaryAttr getAttributes() {
444 return odsAttrs;
445 }
446
447};
448} // namespace detail
449template <typename RangeT>
451 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
453public:
454 ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
455
456 ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ApplyFuncOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
457
458 ApplyFuncOpGenericAdaptor(RangeT values, const ApplyFuncOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
459
460 template <typename LateInst = ApplyFuncOp, typename = std::enable_if_t<std::is_same_v<LateInst, ApplyFuncOp>>>
461 ApplyFuncOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
462
463 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
464 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
465 }
466
467 RangeT getODSOperands(unsigned index) {
468 auto valueRange = getODSOperandIndexAndLength(index);
469 return {std::next(odsOperands.begin(), valueRange.first),
470 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
471 }
472
473 ValueT getFunc() {
474 return (*getODSOperands(0).begin());
475 }
476
477 RangeT getArgs() {
478 return getODSOperands(1);
479 }
480
481 RangeT getOperands() {
482 return odsOperands;
483 }
484
485private:
486 RangeT odsOperands;
487};
488class ApplyFuncOpAdaptor : public ApplyFuncOpGenericAdaptor<::mlir::ValueRange> {
489public:
492
493 ::llvm::LogicalResult verify(::mlir::Location loc);
494};
495class 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> {
496public:
497 using Op::Op;
498 using Op::print;
500 template <typename RangeT>
503 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
504 return {};
505 }
506
507 static constexpr ::llvm::StringLiteral getOperationName() {
508 return ::llvm::StringLiteral("smt.apply_func");
509 }
510
511 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
512 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
513 auto valueRange = getODSOperandIndexAndLength(index);
514 return {std::next(getOperation()->operand_begin(), valueRange.first),
515 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
516 }
517
518 ::mlir::TypedValue<::llzk::smt::SMTFuncType> getFunc() {
519 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::SMTFuncType>>(*getODSOperands(0).begin());
520 }
521
522 ::mlir::Operation::operand_range getArgs() {
523 return getODSOperands(1);
524 }
525
526 ::mlir::OpOperand &getFuncMutable() {
527 auto range = getODSOperandIndexAndLength(0);
528 return getOperation()->getOpOperand(range.first);
529 }
530
531 ::mlir::MutableOperandRange getArgsMutable();
532 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
533 return {index, 1};
534 }
535
536 ::mlir::Operation::result_range getODSResults(unsigned index) {
537 auto valueRange = getODSResultIndexAndLength(index);
538 return {std::next(getOperation()->result_begin(), valueRange.first),
539 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
540 }
541
542 ::mlir::TypedValue<::mlir::Type> getResult() {
543 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
544 }
545
546 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value func, ::mlir::ValueRange args);
547 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value func, ::mlir::ValueRange args);
548 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value func, ::mlir::ValueRange args);
549 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
550 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
551 ::llvm::LogicalResult verifyInvariantsImpl();
552 ::llvm::LogicalResult verifyInvariants();
553 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);
554 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
555 void print(::mlir::OpAsmPrinter &_odsPrinter);
556 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
557public:
558};
559} // namespace smt
560} // namespace llzk
561MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ApplyFuncOp)
562
563namespace llzk {
564namespace smt {
565
566//===----------------------------------------------------------------------===//
567// ::llzk::smt::ArrayBroadcastOp declarations
568//===----------------------------------------------------------------------===//
569
570namespace detail {
572public:
573protected:
574 ::mlir::DictionaryAttr odsAttrs;
575 ::std::optional<::mlir::OperationName> odsOpName;
576 ::mlir::RegionRange odsRegions;
577public:
578 ArrayBroadcastOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
579 odsOpName.emplace("smt.array.broadcast", odsAttrs.getContext());
580 }
581
582 ArrayBroadcastOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
583
584 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
585 return {index, 1};
586 }
587
588 ::mlir::DictionaryAttr getAttributes() {
589 return odsAttrs;
590 }
591
592};
593} // namespace detail
594template <typename RangeT>
596 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
598public:
599 ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
600
601 ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArrayBroadcastOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
602
603 ArrayBroadcastOpGenericAdaptor(RangeT values, const ArrayBroadcastOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
604
605 template <typename LateInst = ArrayBroadcastOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArrayBroadcastOp>>>
606 ArrayBroadcastOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
607
608 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
609 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
610 }
611
612 RangeT getODSOperands(unsigned index) {
613 auto valueRange = getODSOperandIndexAndLength(index);
614 return {std::next(odsOperands.begin(), valueRange.first),
615 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
616 }
617
618 ValueT getValue() {
619 return (*getODSOperands(0).begin());
620 }
621
622 RangeT getOperands() {
623 return odsOperands;
624 }
625
626private:
627 RangeT odsOperands;
628};
629class ArrayBroadcastOpAdaptor : public ArrayBroadcastOpGenericAdaptor<::mlir::ValueRange> {
630public:
633
634 ::llvm::LogicalResult verify(::mlir::Location loc);
635};
636class 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> {
637public:
638 using Op::Op;
639 using Op::print;
641 template <typename RangeT>
644 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
645 return {};
646 }
647
648 static constexpr ::llvm::StringLiteral getOperationName() {
649 return ::llvm::StringLiteral("smt.array.broadcast");
650 }
651
652 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
653 return {index, 1};
654 }
655
656 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
657 auto valueRange = getODSOperandIndexAndLength(index);
658 return {std::next(getOperation()->operand_begin(), valueRange.first),
659 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
660 }
661
662 ::mlir::TypedValue<::mlir::Type> getValue() {
663 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
664 }
665
666 ::mlir::OpOperand &getValueMutable() {
667 auto range = getODSOperandIndexAndLength(0);
668 return getOperation()->getOpOperand(range.first);
669 }
670
671 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
672 return {index, 1};
673 }
674
675 ::mlir::Operation::result_range getODSResults(unsigned index) {
676 auto valueRange = getODSResultIndexAndLength(index);
677 return {std::next(getOperation()->result_begin(), valueRange.first),
678 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
679 }
680
681 ::mlir::TypedValue<::llzk::smt::ArrayType> getResult() {
682 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSResults(0).begin());
683 }
684
685 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value);
686 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
687 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
688 ::llvm::LogicalResult verifyInvariantsImpl();
689 ::llvm::LogicalResult verifyInvariants();
690 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
691 void print(::mlir::OpAsmPrinter &_odsPrinter);
692 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
693public:
694};
695} // namespace smt
696} // namespace llzk
697MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ArrayBroadcastOp)
698
699namespace llzk {
700namespace smt {
701
702//===----------------------------------------------------------------------===//
703// ::llzk::smt::ArraySelectOp declarations
704//===----------------------------------------------------------------------===//
705
706namespace detail {
708public:
709protected:
710 ::mlir::DictionaryAttr odsAttrs;
711 ::std::optional<::mlir::OperationName> odsOpName;
712 ::mlir::RegionRange odsRegions;
713public:
714 ArraySelectOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
715 odsOpName.emplace("smt.array.select", odsAttrs.getContext());
716 }
717
718 ArraySelectOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
719
720 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
721 return {index, 1};
722 }
723
724 ::mlir::DictionaryAttr getAttributes() {
725 return odsAttrs;
726 }
727
728};
729} // namespace detail
730template <typename RangeT>
732 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
734public:
735 ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
736
737 ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArraySelectOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
738
739 ArraySelectOpGenericAdaptor(RangeT values, const ArraySelectOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
740
741 template <typename LateInst = ArraySelectOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArraySelectOp>>>
742 ArraySelectOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
743
744 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
745 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
746 }
747
748 RangeT getODSOperands(unsigned index) {
749 auto valueRange = getODSOperandIndexAndLength(index);
750 return {std::next(odsOperands.begin(), valueRange.first),
751 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
752 }
753
754 ValueT getArray() {
755 return (*getODSOperands(0).begin());
756 }
757
758 ValueT getIndex() {
759 return (*getODSOperands(1).begin());
760 }
761
762 RangeT getOperands() {
763 return odsOperands;
764 }
765
766private:
767 RangeT odsOperands;
768};
769class ArraySelectOpAdaptor : public ArraySelectOpGenericAdaptor<::mlir::ValueRange> {
770public:
773
774 ::llvm::LogicalResult verify(::mlir::Location loc);
775};
776class 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> {
777public:
778 using Op::Op;
779 using Op::print;
781 template <typename RangeT>
784 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
785 return {};
786 }
787
788 static constexpr ::llvm::StringLiteral getOperationName() {
789 return ::llvm::StringLiteral("smt.array.select");
790 }
791
792 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
793 return {index, 1};
794 }
795
796 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
797 auto valueRange = getODSOperandIndexAndLength(index);
798 return {std::next(getOperation()->operand_begin(), valueRange.first),
799 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
800 }
801
802 ::mlir::TypedValue<::llzk::smt::ArrayType> getArray() {
803 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSOperands(0).begin());
804 }
805
806 ::mlir::TypedValue<::mlir::Type> getIndex() {
807 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
808 }
809
810 ::mlir::OpOperand &getArrayMutable() {
811 auto range = getODSOperandIndexAndLength(0);
812 return getOperation()->getOpOperand(range.first);
813 }
814
815 ::mlir::OpOperand &getIndexMutable() {
816 auto range = getODSOperandIndexAndLength(1);
817 return getOperation()->getOpOperand(range.first);
818 }
819
820 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
821 return {index, 1};
822 }
823
824 ::mlir::Operation::result_range getODSResults(unsigned index) {
825 auto valueRange = getODSResultIndexAndLength(index);
826 return {std::next(getOperation()->result_begin(), valueRange.first),
827 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
828 }
829
830 ::mlir::TypedValue<::mlir::Type> getResult() {
831 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
832 }
833
834 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index);
835 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value array, ::mlir::Value index);
836 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value array, ::mlir::Value index);
837 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
838 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
839 ::llvm::LogicalResult verifyInvariantsImpl();
840 ::llvm::LogicalResult verifyInvariants();
841 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);
842 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
843 void print(::mlir::OpAsmPrinter &_odsPrinter);
844 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
845public:
846};
847} // namespace smt
848} // namespace llzk
849MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ArraySelectOp)
850
851namespace llzk {
852namespace smt {
853
854//===----------------------------------------------------------------------===//
855// ::llzk::smt::ArrayStoreOp declarations
856//===----------------------------------------------------------------------===//
857
858namespace detail {
860public:
861protected:
862 ::mlir::DictionaryAttr odsAttrs;
863 ::std::optional<::mlir::OperationName> odsOpName;
864 ::mlir::RegionRange odsRegions;
865public:
866 ArrayStoreOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
867 odsOpName.emplace("smt.array.store", odsAttrs.getContext());
868 }
869
870 ArrayStoreOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
871
872 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
873 return {index, 1};
874 }
875
876 ::mlir::DictionaryAttr getAttributes() {
877 return odsAttrs;
878 }
879
880};
881} // namespace detail
882template <typename RangeT>
884 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
886public:
887 ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
888
889 ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArrayStoreOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
890
891 ArrayStoreOpGenericAdaptor(RangeT values, const ArrayStoreOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
892
893 template <typename LateInst = ArrayStoreOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArrayStoreOp>>>
894 ArrayStoreOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
895
896 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
897 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
898 }
899
900 RangeT getODSOperands(unsigned index) {
901 auto valueRange = getODSOperandIndexAndLength(index);
902 return {std::next(odsOperands.begin(), valueRange.first),
903 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
904 }
905
906 ValueT getArray() {
907 return (*getODSOperands(0).begin());
908 }
909
910 ValueT getIndex() {
911 return (*getODSOperands(1).begin());
912 }
913
914 ValueT getValue() {
915 return (*getODSOperands(2).begin());
916 }
917
918 RangeT getOperands() {
919 return odsOperands;
920 }
921
922private:
923 RangeT odsOperands;
924};
925class ArrayStoreOpAdaptor : public ArrayStoreOpGenericAdaptor<::mlir::ValueRange> {
926public:
929
930 ::llvm::LogicalResult verify(::mlir::Location loc);
931};
932class 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> {
933public:
934 using Op::Op;
935 using Op::print;
937 template <typename RangeT>
940 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
941 return {};
942 }
943
944 static constexpr ::llvm::StringLiteral getOperationName() {
945 return ::llvm::StringLiteral("smt.array.store");
946 }
947
948 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
949 return {index, 1};
950 }
951
952 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
953 auto valueRange = getODSOperandIndexAndLength(index);
954 return {std::next(getOperation()->operand_begin(), valueRange.first),
955 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
956 }
957
958 ::mlir::TypedValue<::llzk::smt::ArrayType> getArray() {
959 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSOperands(0).begin());
960 }
961
962 ::mlir::TypedValue<::mlir::Type> getIndex() {
963 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
964 }
965
966 ::mlir::TypedValue<::mlir::Type> getValue() {
967 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(2).begin());
968 }
969
970 ::mlir::OpOperand &getArrayMutable() {
971 auto range = getODSOperandIndexAndLength(0);
972 return getOperation()->getOpOperand(range.first);
973 }
974
975 ::mlir::OpOperand &getIndexMutable() {
976 auto range = getODSOperandIndexAndLength(1);
977 return getOperation()->getOpOperand(range.first);
978 }
979
980 ::mlir::OpOperand &getValueMutable() {
981 auto range = getODSOperandIndexAndLength(2);
982 return getOperation()->getOpOperand(range.first);
983 }
984
985 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
986 return {index, 1};
987 }
988
989 ::mlir::Operation::result_range getODSResults(unsigned index) {
990 auto valueRange = getODSResultIndexAndLength(index);
991 return {std::next(getOperation()->result_begin(), valueRange.first),
992 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
993 }
994
995 ::mlir::TypedValue<::llzk::smt::ArrayType> getResult() {
996 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::ArrayType>>(*getODSResults(0).begin());
997 }
998
999 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value);
1000 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value);
1001 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value array, ::mlir::Value index, ::mlir::Value value);
1002 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1003 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1004 ::llvm::LogicalResult verifyInvariantsImpl();
1005 ::llvm::LogicalResult verifyInvariants();
1006 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);
1007 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1008 void print(::mlir::OpAsmPrinter &_odsPrinter);
1009 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1010public:
1011};
1012} // namespace smt
1013} // namespace llzk
1014MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ArrayStoreOp)
1015
1016namespace llzk {
1017namespace smt {
1018
1019//===----------------------------------------------------------------------===//
1020// ::llzk::smt::AssertOp declarations
1021//===----------------------------------------------------------------------===//
1022
1023namespace detail {
1025public:
1026protected:
1027 ::mlir::DictionaryAttr odsAttrs;
1028 ::std::optional<::mlir::OperationName> odsOpName;
1029 ::mlir::RegionRange odsRegions;
1030public:
1031 AssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1032 odsOpName.emplace("smt.assert", odsAttrs.getContext());
1033 }
1034
1035 AssertOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1036
1037 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1038 return {index, 1};
1039 }
1040
1041 ::mlir::DictionaryAttr getAttributes() {
1042 return odsAttrs;
1043 }
1044
1045};
1046} // namespace detail
1047template <typename RangeT>
1049 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1051public:
1052 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1053
1054 AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : AssertOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1055
1056 AssertOpGenericAdaptor(RangeT values, const AssertOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1057
1058 template <typename LateInst = AssertOp, typename = std::enable_if_t<std::is_same_v<LateInst, AssertOp>>>
1059 AssertOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1060
1061 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1062 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1063 }
1064
1065 RangeT getODSOperands(unsigned index) {
1066 auto valueRange = getODSOperandIndexAndLength(index);
1067 return {std::next(odsOperands.begin(), valueRange.first),
1068 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1069 }
1070
1071 ValueT getInput() {
1072 return (*getODSOperands(0).begin());
1073 }
1074
1075 RangeT getOperands() {
1076 return odsOperands;
1077 }
1078
1079private:
1080 RangeT odsOperands;
1081};
1082class AssertOpAdaptor : public AssertOpGenericAdaptor<::mlir::ValueRange> {
1083public:
1086
1087 ::llvm::LogicalResult verify(::mlir::Location loc);
1088};
1089class AssertOp : public ::mlir::Op<AssertOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants> {
1090public:
1091 using Op::Op;
1092 using Op::print;
1094 template <typename RangeT>
1097 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1098 return {};
1099 }
1100
1101 static constexpr ::llvm::StringLiteral getOperationName() {
1102 return ::llvm::StringLiteral("smt.assert");
1103 }
1104
1105 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1106 return {index, 1};
1107 }
1108
1109 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1110 auto valueRange = getODSOperandIndexAndLength(index);
1111 return {std::next(getOperation()->operand_begin(), valueRange.first),
1112 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1113 }
1114
1115 ::mlir::TypedValue<::llzk::smt::BoolType> getInput() {
1116 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
1117 }
1118
1119 ::mlir::OpOperand &getInputMutable() {
1120 auto range = getODSOperandIndexAndLength(0);
1121 return getOperation()->getOpOperand(range.first);
1122 }
1123
1124 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1125 return {index, 1};
1126 }
1127
1128 ::mlir::Operation::result_range getODSResults(unsigned index) {
1129 auto valueRange = getODSResultIndexAndLength(index);
1130 return {std::next(getOperation()->result_begin(), valueRange.first),
1131 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1132 }
1133
1134 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
1135 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
1136 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1137 ::llvm::LogicalResult verifyInvariantsImpl();
1138 ::llvm::LogicalResult verifyInvariants();
1139 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1140 void print(::mlir::OpAsmPrinter &_odsPrinter);
1141public:
1142};
1143} // namespace smt
1144} // namespace llzk
1145MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::AssertOp)
1146
1147namespace llzk {
1148namespace smt {
1149
1150//===----------------------------------------------------------------------===//
1151// ::llzk::smt::BV2IntOp declarations
1152//===----------------------------------------------------------------------===//
1153
1154namespace detail {
1156public:
1157 struct Properties {
1158 using is_signedTy = ::mlir::UnitAttr;
1160
1162 auto &propStorage = this->is_signed;
1163 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
1164 }
1165 void setIsSigned(const ::mlir::UnitAttr &propValue) {
1166 this->is_signed = propValue;
1167 }
1168 bool operator==(const Properties &rhs) const {
1169 return
1170 rhs.is_signed == this->is_signed &&
1171 true;
1172 }
1173 bool operator!=(const Properties &rhs) const {
1174 return !(*this == rhs);
1175 }
1176 };
1177protected:
1178 ::mlir::DictionaryAttr odsAttrs;
1179 ::std::optional<::mlir::OperationName> odsOpName;
1181 ::mlir::RegionRange odsRegions;
1182public:
1183 BV2IntOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1184 odsOpName.emplace("smt.bv2int", odsAttrs.getContext());
1185 }
1186
1188
1189 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1190 return {index, 1};
1191 }
1192
1194 return properties;
1195 }
1196
1197 ::mlir::DictionaryAttr getAttributes() {
1198 return odsAttrs;
1199 }
1200
1201 ::mlir::UnitAttr getIsSignedAttr();
1202 bool getIsSigned();
1203};
1204} // namespace detail
1205template <typename RangeT>
1207 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1209public:
1210 BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1211
1212 BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BV2IntOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1213
1214 BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BV2IntOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1215
1216 BV2IntOpGenericAdaptor(RangeT values, const BV2IntOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1217
1218 template <typename LateInst = BV2IntOp, typename = std::enable_if_t<std::is_same_v<LateInst, BV2IntOp>>>
1219 BV2IntOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1220
1221 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1222 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1223 }
1224
1225 RangeT getODSOperands(unsigned index) {
1226 auto valueRange = getODSOperandIndexAndLength(index);
1227 return {std::next(odsOperands.begin(), valueRange.first),
1228 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1229 }
1230
1231 ValueT getInput() {
1232 return (*getODSOperands(0).begin());
1233 }
1234
1235 RangeT getOperands() {
1236 return odsOperands;
1237 }
1238
1239private:
1240 RangeT odsOperands;
1241};
1242class BV2IntOpAdaptor : public BV2IntOpGenericAdaptor<::mlir::ValueRange> {
1243public:
1246
1247 ::llvm::LogicalResult verify(::mlir::Location loc);
1248};
1249class 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> {
1250public:
1251 using Op::Op;
1252 using Op::print;
1254 template <typename RangeT>
1258 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1259 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("is_signed")};
1260 return ::llvm::ArrayRef(attrNames);
1261 }
1262
1263 ::mlir::StringAttr getIsSignedAttrName() {
1264 return getAttributeNameForIndex(0);
1265 }
1266
1267 static ::mlir::StringAttr getIsSignedAttrName(::mlir::OperationName name) {
1268 return getAttributeNameForIndex(name, 0);
1269 }
1270
1271 static constexpr ::llvm::StringLiteral getOperationName() {
1272 return ::llvm::StringLiteral("smt.bv2int");
1273 }
1274
1275 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1276 return {index, 1};
1277 }
1278
1279 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1280 auto valueRange = getODSOperandIndexAndLength(index);
1281 return {std::next(getOperation()->operand_begin(), valueRange.first),
1282 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1283 }
1284
1285 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
1286 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1287 }
1288
1289 ::mlir::OpOperand &getInputMutable() {
1290 auto range = getODSOperandIndexAndLength(0);
1291 return getOperation()->getOpOperand(range.first);
1292 }
1293
1294 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1295 return {index, 1};
1296 }
1297
1298 ::mlir::Operation::result_range getODSResults(unsigned index) {
1299 auto valueRange = getODSResultIndexAndLength(index);
1300 return {std::next(getOperation()->result_begin(), valueRange.first),
1301 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1302 }
1303
1304 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
1305 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
1306 }
1307
1308 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1309 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1310 static llvm::hash_code computePropertiesHash(const Properties &prop);
1311 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1312 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1313 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1314 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1315 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1316 void writeProperties(::mlir::DialectBytecodeWriter &writer);
1317 ::mlir::UnitAttr getIsSignedAttr() {
1318 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().is_signed);
1319 }
1320
1321 bool getIsSigned();
1322 void setIsSignedAttr(::mlir::UnitAttr attr) {
1323 getProperties().is_signed = attr;
1324 }
1325
1326 void setIsSigned(bool attrValue);
1327 ::mlir::Attribute removeIsSignedAttr() {
1328 auto &attr = getProperties().is_signed;
1329 attr = {};
1330 return attr;
1331 }
1332
1333 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input, /*optional*/::mlir::UnitAttr is_signed);
1334 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input, /*optional*/::mlir::UnitAttr is_signed);
1335 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input, /*optional*/::mlir::UnitAttr is_signed);
1336 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input, /*optional*/bool is_signed = false);
1337 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input, /*optional*/bool is_signed = false);
1338 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input, /*optional*/bool is_signed = false);
1339 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1340 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1341 ::llvm::LogicalResult verifyInvariantsImpl();
1342 ::llvm::LogicalResult verifyInvariants();
1343 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);
1344 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1345 void print(::mlir::OpAsmPrinter &_odsPrinter);
1346 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1347private:
1348 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
1349 return getAttributeNameForIndex((*this)->getName(), index);
1350 }
1351
1352 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
1353 assert(index < 1 && "invalid attribute index");
1354 assert(name.getStringRef() == getOperationName() && "invalid operation name");
1355 assert(name.isRegistered() && "Operation isn't registered, missing a "
1356 "dependent dialect loading?");
1357 return name.getAttributeNames()[index];
1358 }
1359
1360public:
1361};
1362} // namespace smt
1363} // namespace llzk
1364MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BV2IntOp)
1365
1366namespace llzk {
1367namespace smt {
1368
1369//===----------------------------------------------------------------------===//
1370// ::llzk::smt::BVAShrOp declarations
1371//===----------------------------------------------------------------------===//
1372
1373namespace detail {
1375public:
1376protected:
1377 ::mlir::DictionaryAttr odsAttrs;
1378 ::std::optional<::mlir::OperationName> odsOpName;
1379 ::mlir::RegionRange odsRegions;
1380public:
1381 BVAShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1382 odsOpName.emplace("smt.bv.ashr", odsAttrs.getContext());
1383 }
1384
1385 BVAShrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1386
1387 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1388 return {index, 1};
1389 }
1390
1391 ::mlir::DictionaryAttr getAttributes() {
1392 return odsAttrs;
1393 }
1394
1395};
1396} // namespace detail
1397template <typename RangeT>
1399 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1401public:
1402 BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1403
1404 BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVAShrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1405
1406 BVAShrOpGenericAdaptor(RangeT values, const BVAShrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1407
1408 template <typename LateInst = BVAShrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVAShrOp>>>
1409 BVAShrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1410
1411 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1412 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1413 }
1414
1415 RangeT getODSOperands(unsigned index) {
1416 auto valueRange = getODSOperandIndexAndLength(index);
1417 return {std::next(odsOperands.begin(), valueRange.first),
1418 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1419 }
1420
1421 ValueT getLhs() {
1422 return (*getODSOperands(0).begin());
1423 }
1424
1425 ValueT getRhs() {
1426 return (*getODSOperands(1).begin());
1427 }
1428
1429 RangeT getOperands() {
1430 return odsOperands;
1431 }
1432
1433private:
1434 RangeT odsOperands;
1435};
1436class BVAShrOpAdaptor : public BVAShrOpGenericAdaptor<::mlir::ValueRange> {
1437public:
1440
1441 ::llvm::LogicalResult verify(::mlir::Location loc);
1442};
1443class 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> {
1444public:
1445 using Op::Op;
1446 using Op::print;
1448 template <typename RangeT>
1451 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1452 return {};
1453 }
1454
1455 static constexpr ::llvm::StringLiteral getOperationName() {
1456 return ::llvm::StringLiteral("smt.bv.ashr");
1457 }
1458
1459 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1460 return {index, 1};
1461 }
1462
1463 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1464 auto valueRange = getODSOperandIndexAndLength(index);
1465 return {std::next(getOperation()->operand_begin(), valueRange.first),
1466 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1467 }
1468
1469 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1470 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1471 }
1472
1473 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1474 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1475 }
1476
1477 ::mlir::OpOperand &getLhsMutable() {
1478 auto range = getODSOperandIndexAndLength(0);
1479 return getOperation()->getOpOperand(range.first);
1480 }
1481
1482 ::mlir::OpOperand &getRhsMutable() {
1483 auto range = getODSOperandIndexAndLength(1);
1484 return getOperation()->getOpOperand(range.first);
1485 }
1486
1487 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1488 return {index, 1};
1489 }
1490
1491 ::mlir::Operation::result_range getODSResults(unsigned index) {
1492 auto valueRange = getODSResultIndexAndLength(index);
1493 return {std::next(getOperation()->result_begin(), valueRange.first),
1494 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1495 }
1496
1497 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
1498 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
1499 }
1500
1501 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1502 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1503 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1504 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1505 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1506 ::llvm::LogicalResult verifyInvariantsImpl();
1507 ::llvm::LogicalResult verifyInvariants();
1508 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);
1509 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1510 void print(::mlir::OpAsmPrinter &_odsPrinter);
1511 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1512public:
1513};
1514} // namespace smt
1515} // namespace llzk
1516MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVAShrOp)
1517
1518namespace llzk {
1519namespace smt {
1520
1521//===----------------------------------------------------------------------===//
1522// ::llzk::smt::BVAddOp declarations
1523//===----------------------------------------------------------------------===//
1524
1525namespace detail {
1527public:
1528protected:
1529 ::mlir::DictionaryAttr odsAttrs;
1530 ::std::optional<::mlir::OperationName> odsOpName;
1531 ::mlir::RegionRange odsRegions;
1532public:
1533 BVAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1534 odsOpName.emplace("smt.bv.add", odsAttrs.getContext());
1535 }
1536
1537 BVAddOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1538
1539 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1540 return {index, 1};
1541 }
1542
1543 ::mlir::DictionaryAttr getAttributes() {
1544 return odsAttrs;
1545 }
1546
1547};
1548} // namespace detail
1549template <typename RangeT>
1551 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1553public:
1554 BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1555
1556 BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVAddOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1557
1558 BVAddOpGenericAdaptor(RangeT values, const BVAddOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1559
1560 template <typename LateInst = BVAddOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVAddOp>>>
1561 BVAddOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1562
1563 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1564 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1565 }
1566
1567 RangeT getODSOperands(unsigned index) {
1568 auto valueRange = getODSOperandIndexAndLength(index);
1569 return {std::next(odsOperands.begin(), valueRange.first),
1570 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1571 }
1572
1573 ValueT getLhs() {
1574 return (*getODSOperands(0).begin());
1575 }
1576
1577 ValueT getRhs() {
1578 return (*getODSOperands(1).begin());
1579 }
1580
1581 RangeT getOperands() {
1582 return odsOperands;
1583 }
1584
1585private:
1586 RangeT odsOperands;
1587};
1588class BVAddOpAdaptor : public BVAddOpGenericAdaptor<::mlir::ValueRange> {
1589public:
1592
1593 ::llvm::LogicalResult verify(::mlir::Location loc);
1594};
1595class 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> {
1596public:
1597 using Op::Op;
1598 using Op::print;
1600 template <typename RangeT>
1603 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1604 return {};
1605 }
1606
1607 static constexpr ::llvm::StringLiteral getOperationName() {
1608 return ::llvm::StringLiteral("smt.bv.add");
1609 }
1610
1611 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1612 return {index, 1};
1613 }
1614
1615 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1616 auto valueRange = getODSOperandIndexAndLength(index);
1617 return {std::next(getOperation()->operand_begin(), valueRange.first),
1618 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1619 }
1620
1621 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1622 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1623 }
1624
1625 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1626 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1627 }
1628
1629 ::mlir::OpOperand &getLhsMutable() {
1630 auto range = getODSOperandIndexAndLength(0);
1631 return getOperation()->getOpOperand(range.first);
1632 }
1633
1634 ::mlir::OpOperand &getRhsMutable() {
1635 auto range = getODSOperandIndexAndLength(1);
1636 return getOperation()->getOpOperand(range.first);
1637 }
1638
1639 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1640 return {index, 1};
1641 }
1642
1643 ::mlir::Operation::result_range getODSResults(unsigned index) {
1644 auto valueRange = getODSResultIndexAndLength(index);
1645 return {std::next(getOperation()->result_begin(), valueRange.first),
1646 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1647 }
1648
1649 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
1650 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
1651 }
1652
1653 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1654 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1655 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1656 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1657 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1658 ::llvm::LogicalResult verifyInvariantsImpl();
1659 ::llvm::LogicalResult verifyInvariants();
1660 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);
1661 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1662 void print(::mlir::OpAsmPrinter &_odsPrinter);
1663 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1664public:
1665};
1666} // namespace smt
1667} // namespace llzk
1668MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVAddOp)
1669
1670namespace llzk {
1671namespace smt {
1672
1673//===----------------------------------------------------------------------===//
1674// ::llzk::smt::BVAndOp declarations
1675//===----------------------------------------------------------------------===//
1676
1677namespace detail {
1679public:
1680protected:
1681 ::mlir::DictionaryAttr odsAttrs;
1682 ::std::optional<::mlir::OperationName> odsOpName;
1683 ::mlir::RegionRange odsRegions;
1684public:
1685 BVAndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
1686 odsOpName.emplace("smt.bv.and", odsAttrs.getContext());
1687 }
1688
1689 BVAndOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
1690
1691 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1692 return {index, 1};
1693 }
1694
1695 ::mlir::DictionaryAttr getAttributes() {
1696 return odsAttrs;
1697 }
1698
1699};
1700} // namespace detail
1701template <typename RangeT>
1703 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1705public:
1706 BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1707
1708 BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVAndOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1709
1710 BVAndOpGenericAdaptor(RangeT values, const BVAndOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1711
1712 template <typename LateInst = BVAndOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVAndOp>>>
1713 BVAndOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1714
1715 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1716 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1717 }
1718
1719 RangeT getODSOperands(unsigned index) {
1720 auto valueRange = getODSOperandIndexAndLength(index);
1721 return {std::next(odsOperands.begin(), valueRange.first),
1722 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1723 }
1724
1725 ValueT getLhs() {
1726 return (*getODSOperands(0).begin());
1727 }
1728
1729 ValueT getRhs() {
1730 return (*getODSOperands(1).begin());
1731 }
1732
1733 RangeT getOperands() {
1734 return odsOperands;
1735 }
1736
1737private:
1738 RangeT odsOperands;
1739};
1740class BVAndOpAdaptor : public BVAndOpGenericAdaptor<::mlir::ValueRange> {
1741public:
1744
1745 ::llvm::LogicalResult verify(::mlir::Location loc);
1746};
1747class 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> {
1748public:
1749 using Op::Op;
1750 using Op::print;
1752 template <typename RangeT>
1755 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1756 return {};
1757 }
1758
1759 static constexpr ::llvm::StringLiteral getOperationName() {
1760 return ::llvm::StringLiteral("smt.bv.and");
1761 }
1762
1763 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1764 return {index, 1};
1765 }
1766
1767 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1768 auto valueRange = getODSOperandIndexAndLength(index);
1769 return {std::next(getOperation()->operand_begin(), valueRange.first),
1770 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1771 }
1772
1773 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1774 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1775 }
1776
1777 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1778 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1779 }
1780
1781 ::mlir::OpOperand &getLhsMutable() {
1782 auto range = getODSOperandIndexAndLength(0);
1783 return getOperation()->getOpOperand(range.first);
1784 }
1785
1786 ::mlir::OpOperand &getRhsMutable() {
1787 auto range = getODSOperandIndexAndLength(1);
1788 return getOperation()->getOpOperand(range.first);
1789 }
1790
1791 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1792 return {index, 1};
1793 }
1794
1795 ::mlir::Operation::result_range getODSResults(unsigned index) {
1796 auto valueRange = getODSResultIndexAndLength(index);
1797 return {std::next(getOperation()->result_begin(), valueRange.first),
1798 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1799 }
1800
1801 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
1802 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
1803 }
1804
1805 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
1806 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
1807 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
1808 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1809 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1810 ::llvm::LogicalResult verifyInvariantsImpl();
1811 ::llvm::LogicalResult verifyInvariants();
1812 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);
1813 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1814 void print(::mlir::OpAsmPrinter &_odsPrinter);
1815 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1816public:
1817};
1818} // namespace smt
1819} // namespace llzk
1820MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVAndOp)
1821
1822namespace llzk {
1823namespace smt {
1824
1825//===----------------------------------------------------------------------===//
1826// ::llzk::smt::BVCmpOp declarations
1827//===----------------------------------------------------------------------===//
1828
1829namespace detail {
1831public:
1832 struct Properties {
1835
1836 auto getPred() {
1837 auto &propStorage = this->pred;
1838 return ::llvm::cast<::llzk::smt::BVCmpPredicateAttr>(propStorage);
1839 }
1840 void setPred(const ::llzk::smt::BVCmpPredicateAttr &propValue) {
1841 this->pred = propValue;
1842 }
1843 bool operator==(const Properties &rhs) const {
1844 return
1845 rhs.pred == this->pred &&
1846 true;
1847 }
1848 bool operator!=(const Properties &rhs) const {
1849 return !(*this == rhs);
1850 }
1851 };
1852protected:
1853 ::mlir::DictionaryAttr odsAttrs;
1854 ::std::optional<::mlir::OperationName> odsOpName;
1856 ::mlir::RegionRange odsRegions;
1857public:
1858 BVCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1859 odsOpName.emplace("smt.bv.cmp", odsAttrs.getContext());
1860 }
1861
1863
1864 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1865 return {index, 1};
1866 }
1867
1869 return properties;
1870 }
1871
1872 ::mlir::DictionaryAttr getAttributes() {
1873 return odsAttrs;
1874 }
1875
1877 auto attr = ::llvm::cast<::llzk::smt::BVCmpPredicateAttr>(getProperties().pred);
1878 return attr;
1879 }
1880
1882};
1883} // namespace detail
1884template <typename RangeT>
1886 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1888public:
1889 BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1890
1891 BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVCmpOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1892
1893 BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BVCmpOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1894
1895 BVCmpOpGenericAdaptor(RangeT values, const BVCmpOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1896
1897 template <typename LateInst = BVCmpOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVCmpOp>>>
1898 BVCmpOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1899
1900 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1901 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1902 }
1903
1904 RangeT getODSOperands(unsigned index) {
1905 auto valueRange = getODSOperandIndexAndLength(index);
1906 return {std::next(odsOperands.begin(), valueRange.first),
1907 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1908 }
1909
1910 ValueT getLhs() {
1911 return (*getODSOperands(0).begin());
1912 }
1913
1914 ValueT getRhs() {
1915 return (*getODSOperands(1).begin());
1916 }
1917
1918 RangeT getOperands() {
1919 return odsOperands;
1920 }
1921
1922private:
1923 RangeT odsOperands;
1924};
1925class BVCmpOpAdaptor : public BVCmpOpGenericAdaptor<::mlir::ValueRange> {
1926public:
1929
1930 ::llvm::LogicalResult verify(::mlir::Location loc);
1931};
1932class 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> {
1933public:
1934 using Op::Op;
1935 using Op::print;
1937 template <typename RangeT>
1941 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1942 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("pred")};
1943 return ::llvm::ArrayRef(attrNames);
1944 }
1945
1946 ::mlir::StringAttr getPredAttrName() {
1947 return getAttributeNameForIndex(0);
1948 }
1949
1950 static ::mlir::StringAttr getPredAttrName(::mlir::OperationName name) {
1951 return getAttributeNameForIndex(name, 0);
1952 }
1953
1954 static constexpr ::llvm::StringLiteral getOperationName() {
1955 return ::llvm::StringLiteral("smt.bv.cmp");
1956 }
1957
1958 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1959 return {index, 1};
1960 }
1961
1962 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1963 auto valueRange = getODSOperandIndexAndLength(index);
1964 return {std::next(getOperation()->operand_begin(), valueRange.first),
1965 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1966 }
1967
1968 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
1969 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
1970 }
1971
1972 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
1973 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
1974 }
1975
1976 ::mlir::OpOperand &getLhsMutable() {
1977 auto range = getODSOperandIndexAndLength(0);
1978 return getOperation()->getOpOperand(range.first);
1979 }
1980
1981 ::mlir::OpOperand &getRhsMutable() {
1982 auto range = getODSOperandIndexAndLength(1);
1983 return getOperation()->getOpOperand(range.first);
1984 }
1985
1986 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1987 return {index, 1};
1988 }
1989
1990 ::mlir::Operation::result_range getODSResults(unsigned index) {
1991 auto valueRange = getODSResultIndexAndLength(index);
1992 return {std::next(getOperation()->result_begin(), valueRange.first),
1993 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1994 }
1995
1996 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
1997 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
1998 }
1999
2000 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2001 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2002 static llvm::hash_code computePropertiesHash(const Properties &prop);
2003 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2004 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2005 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2006 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2007 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
2008 void writeProperties(::mlir::DialectBytecodeWriter &writer);
2010 return ::llvm::cast<::llzk::smt::BVCmpPredicateAttr>(getProperties().pred);
2011 }
2012
2015 getProperties().pred = attr;
2016 }
2017
2018 void setPred(::llzk::smt::BVCmpPredicate attrValue);
2019 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
2020 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
2021 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::BVCmpPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
2022 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BVCmpPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
2023 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::BVCmpPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
2024 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::BVCmpPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
2025 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2026 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2027 ::llvm::LogicalResult verifyInvariantsImpl();
2028 ::llvm::LogicalResult verifyInvariants();
2029 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);
2030 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2031 void print(::mlir::OpAsmPrinter &_odsPrinter);
2032 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2033private:
2034 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
2035 return getAttributeNameForIndex((*this)->getName(), index);
2036 }
2037
2038 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
2039 assert(index < 1 && "invalid attribute index");
2040 assert(name.getStringRef() == getOperationName() && "invalid operation name");
2041 assert(name.isRegistered() && "Operation isn't registered, missing a "
2042 "dependent dialect loading?");
2043 return name.getAttributeNames()[index];
2044 }
2045
2046public:
2047};
2048} // namespace smt
2049} // namespace llzk
2050MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVCmpOp)
2051
2052namespace llzk {
2053namespace smt {
2054
2055//===----------------------------------------------------------------------===//
2056// ::llzk::smt::BVConstantOp declarations
2057//===----------------------------------------------------------------------===//
2058
2059namespace detail {
2061public:
2062 struct Properties {
2063 using valueTy = ::llzk::smt::BitVectorAttr;
2065
2066 auto getValue() {
2067 auto &propStorage = this->value;
2068 return ::llvm::cast<::llzk::smt::BitVectorAttr>(propStorage);
2069 }
2070 void setValue(const ::llzk::smt::BitVectorAttr &propValue) {
2071 this->value = propValue;
2072 }
2073 bool operator==(const Properties &rhs) const {
2074 return
2075 rhs.value == this->value &&
2076 true;
2077 }
2078 bool operator!=(const Properties &rhs) const {
2079 return !(*this == rhs);
2080 }
2081 };
2082protected:
2083 ::mlir::DictionaryAttr odsAttrs;
2084 ::std::optional<::mlir::OperationName> odsOpName;
2086 ::mlir::RegionRange odsRegions;
2087public:
2088 BVConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2089 odsOpName.emplace("smt.bv.constant", odsAttrs.getContext());
2090 }
2091
2093
2094 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2095 return {index, 1};
2096 }
2097
2099 return properties;
2100 }
2101
2102 ::mlir::DictionaryAttr getAttributes() {
2103 return odsAttrs;
2104 }
2105
2106 ::llzk::smt::BitVectorAttr getValueAttr() {
2107 auto attr = ::llvm::cast<::llzk::smt::BitVectorAttr>(getProperties().value);
2108 return attr;
2109 }
2110
2111 ::llzk::smt::BitVectorAttr getValue();
2112};
2113} // namespace detail
2114template <typename RangeT>
2116 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2118public:
2119 BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2120
2121 BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2122
2123 BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BVConstantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2124
2125 BVConstantOpGenericAdaptor(RangeT values, const BVConstantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2126
2127 template <typename LateInst = BVConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVConstantOp>>>
2128 BVConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2129
2130 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2131 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2132 }
2133
2134 RangeT getODSOperands(unsigned index) {
2135 auto valueRange = getODSOperandIndexAndLength(index);
2136 return {std::next(odsOperands.begin(), valueRange.first),
2137 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2138 }
2139
2140 RangeT getOperands() {
2141 return odsOperands;
2142 }
2143
2144private:
2145 RangeT odsOperands;
2146};
2147class BVConstantOpAdaptor : public BVConstantOpGenericAdaptor<::mlir::ValueRange> {
2148public:
2151
2152 ::llvm::LogicalResult verify(::mlir::Location loc);
2153};
2154class 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> {
2155public:
2156 using Op::Op;
2157 using Op::print;
2159 template <typename RangeT>
2163 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2164 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
2165 return ::llvm::ArrayRef(attrNames);
2166 }
2167
2168 ::mlir::StringAttr getValueAttrName() {
2169 return getAttributeNameForIndex(0);
2170 }
2171
2172 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
2173 return getAttributeNameForIndex(name, 0);
2174 }
2175
2176 static constexpr ::llvm::StringLiteral getOperationName() {
2177 return ::llvm::StringLiteral("smt.bv.constant");
2178 }
2179
2180 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2181 return {index, 1};
2182 }
2183
2184 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2185 auto valueRange = getODSOperandIndexAndLength(index);
2186 return {std::next(getOperation()->operand_begin(), valueRange.first),
2187 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2188 }
2189
2190 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2191 return {index, 1};
2192 }
2193
2194 ::mlir::Operation::result_range getODSResults(unsigned index) {
2195 auto valueRange = getODSResultIndexAndLength(index);
2196 return {std::next(getOperation()->result_begin(), valueRange.first),
2197 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2198 }
2199
2200 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2201 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2202 }
2203
2204 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2205 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2206 static llvm::hash_code computePropertiesHash(const Properties &prop);
2207 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2208 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2209 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2210 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2211 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
2212 void writeProperties(::mlir::DialectBytecodeWriter &writer);
2213 ::llzk::smt::BitVectorAttr getValueAttr() {
2214 return ::llvm::cast<::llzk::smt::BitVectorAttr>(getProperties().value);
2215 }
2216
2217 ::llzk::smt::BitVectorAttr getValue();
2218 void setValueAttr(::llzk::smt::BitVectorAttr attr) {
2219 getProperties().value = attr;
2220 }
2221
2222 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, const llvm::APInt &value);
2223 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, uint64_t value, unsigned width);
2224 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::BitVectorAttr value);
2225 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::BitVectorAttr value);
2226 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::BitVectorAttr value);
2227 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2228 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2229 ::llvm::LogicalResult verifyInvariantsImpl();
2230 ::llvm::LogicalResult verifyInvariants();
2231 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
2232 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);
2233 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
2234 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2235 void print(::mlir::OpAsmPrinter &_odsPrinter);
2236 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2237private:
2238 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
2239 return getAttributeNameForIndex((*this)->getName(), index);
2240 }
2241
2242 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
2243 assert(index < 1 && "invalid attribute index");
2244 assert(name.getStringRef() == getOperationName() && "invalid operation name");
2245 assert(name.isRegistered() && "Operation isn't registered, missing a "
2246 "dependent dialect loading?");
2247 return name.getAttributeNames()[index];
2248 }
2249
2250public:
2251};
2252} // namespace smt
2253} // namespace llzk
2254MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVConstantOp)
2255
2256namespace llzk {
2257namespace smt {
2258
2259//===----------------------------------------------------------------------===//
2260// ::llzk::smt::BVLShrOp declarations
2261//===----------------------------------------------------------------------===//
2262
2263namespace detail {
2265public:
2266protected:
2267 ::mlir::DictionaryAttr odsAttrs;
2268 ::std::optional<::mlir::OperationName> odsOpName;
2269 ::mlir::RegionRange odsRegions;
2270public:
2271 BVLShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2272 odsOpName.emplace("smt.bv.lshr", odsAttrs.getContext());
2273 }
2274
2275 BVLShrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2276
2277 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2278 return {index, 1};
2279 }
2280
2281 ::mlir::DictionaryAttr getAttributes() {
2282 return odsAttrs;
2283 }
2284
2285};
2286} // namespace detail
2287template <typename RangeT>
2289 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2291public:
2292 BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2293
2294 BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVLShrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2295
2296 BVLShrOpGenericAdaptor(RangeT values, const BVLShrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2297
2298 template <typename LateInst = BVLShrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVLShrOp>>>
2299 BVLShrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2300
2301 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2302 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2303 }
2304
2305 RangeT getODSOperands(unsigned index) {
2306 auto valueRange = getODSOperandIndexAndLength(index);
2307 return {std::next(odsOperands.begin(), valueRange.first),
2308 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2309 }
2310
2311 ValueT getLhs() {
2312 return (*getODSOperands(0).begin());
2313 }
2314
2315 ValueT getRhs() {
2316 return (*getODSOperands(1).begin());
2317 }
2318
2319 RangeT getOperands() {
2320 return odsOperands;
2321 }
2322
2323private:
2324 RangeT odsOperands;
2325};
2326class BVLShrOpAdaptor : public BVLShrOpGenericAdaptor<::mlir::ValueRange> {
2327public:
2330
2331 ::llvm::LogicalResult verify(::mlir::Location loc);
2332};
2333class 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> {
2334public:
2335 using Op::Op;
2336 using Op::print;
2338 template <typename RangeT>
2341 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2342 return {};
2343 }
2344
2345 static constexpr ::llvm::StringLiteral getOperationName() {
2346 return ::llvm::StringLiteral("smt.bv.lshr");
2347 }
2348
2349 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2350 return {index, 1};
2351 }
2352
2353 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2354 auto valueRange = getODSOperandIndexAndLength(index);
2355 return {std::next(getOperation()->operand_begin(), valueRange.first),
2356 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2357 }
2358
2359 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
2360 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2361 }
2362
2363 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
2364 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
2365 }
2366
2367 ::mlir::OpOperand &getLhsMutable() {
2368 auto range = getODSOperandIndexAndLength(0);
2369 return getOperation()->getOpOperand(range.first);
2370 }
2371
2372 ::mlir::OpOperand &getRhsMutable() {
2373 auto range = getODSOperandIndexAndLength(1);
2374 return getOperation()->getOpOperand(range.first);
2375 }
2376
2377 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2378 return {index, 1};
2379 }
2380
2381 ::mlir::Operation::result_range getODSResults(unsigned index) {
2382 auto valueRange = getODSResultIndexAndLength(index);
2383 return {std::next(getOperation()->result_begin(), valueRange.first),
2384 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2385 }
2386
2387 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2388 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2389 }
2390
2391 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2392 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2393 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2394 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2395 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2396 ::llvm::LogicalResult verifyInvariantsImpl();
2397 ::llvm::LogicalResult verifyInvariants();
2398 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);
2399 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2400 void print(::mlir::OpAsmPrinter &_odsPrinter);
2401 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2402public:
2403};
2404} // namespace smt
2405} // namespace llzk
2406MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVLShrOp)
2407
2408namespace llzk {
2409namespace smt {
2410
2411//===----------------------------------------------------------------------===//
2412// ::llzk::smt::BVMulOp declarations
2413//===----------------------------------------------------------------------===//
2414
2415namespace detail {
2417public:
2418protected:
2419 ::mlir::DictionaryAttr odsAttrs;
2420 ::std::optional<::mlir::OperationName> odsOpName;
2421 ::mlir::RegionRange odsRegions;
2422public:
2423 BVMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2424 odsOpName.emplace("smt.bv.mul", odsAttrs.getContext());
2425 }
2426
2427 BVMulOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2428
2429 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2430 return {index, 1};
2431 }
2432
2433 ::mlir::DictionaryAttr getAttributes() {
2434 return odsAttrs;
2435 }
2436
2437};
2438} // namespace detail
2439template <typename RangeT>
2441 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2443public:
2444 BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2445
2446 BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVMulOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2447
2448 BVMulOpGenericAdaptor(RangeT values, const BVMulOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2449
2450 template <typename LateInst = BVMulOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVMulOp>>>
2451 BVMulOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2452
2453 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2454 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2455 }
2456
2457 RangeT getODSOperands(unsigned index) {
2458 auto valueRange = getODSOperandIndexAndLength(index);
2459 return {std::next(odsOperands.begin(), valueRange.first),
2460 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2461 }
2462
2463 ValueT getLhs() {
2464 return (*getODSOperands(0).begin());
2465 }
2466
2467 ValueT getRhs() {
2468 return (*getODSOperands(1).begin());
2469 }
2470
2471 RangeT getOperands() {
2472 return odsOperands;
2473 }
2474
2475private:
2476 RangeT odsOperands;
2477};
2478class BVMulOpAdaptor : public BVMulOpGenericAdaptor<::mlir::ValueRange> {
2479public:
2482
2483 ::llvm::LogicalResult verify(::mlir::Location loc);
2484};
2485class 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> {
2486public:
2487 using Op::Op;
2488 using Op::print;
2490 template <typename RangeT>
2493 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2494 return {};
2495 }
2496
2497 static constexpr ::llvm::StringLiteral getOperationName() {
2498 return ::llvm::StringLiteral("smt.bv.mul");
2499 }
2500
2501 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2502 return {index, 1};
2503 }
2504
2505 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2506 auto valueRange = getODSOperandIndexAndLength(index);
2507 return {std::next(getOperation()->operand_begin(), valueRange.first),
2508 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2509 }
2510
2511 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
2512 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2513 }
2514
2515 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
2516 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
2517 }
2518
2519 ::mlir::OpOperand &getLhsMutable() {
2520 auto range = getODSOperandIndexAndLength(0);
2521 return getOperation()->getOpOperand(range.first);
2522 }
2523
2524 ::mlir::OpOperand &getRhsMutable() {
2525 auto range = getODSOperandIndexAndLength(1);
2526 return getOperation()->getOpOperand(range.first);
2527 }
2528
2529 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2530 return {index, 1};
2531 }
2532
2533 ::mlir::Operation::result_range getODSResults(unsigned index) {
2534 auto valueRange = getODSResultIndexAndLength(index);
2535 return {std::next(getOperation()->result_begin(), valueRange.first),
2536 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2537 }
2538
2539 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2540 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2541 }
2542
2543 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2544 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2545 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2546 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2547 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2548 ::llvm::LogicalResult verifyInvariantsImpl();
2549 ::llvm::LogicalResult verifyInvariants();
2550 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);
2551 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2552 void print(::mlir::OpAsmPrinter &_odsPrinter);
2553 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2554public:
2555};
2556} // namespace smt
2557} // namespace llzk
2558MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVMulOp)
2559
2560namespace llzk {
2561namespace smt {
2562
2563//===----------------------------------------------------------------------===//
2564// ::llzk::smt::BVNegOp declarations
2565//===----------------------------------------------------------------------===//
2566
2567namespace detail {
2569public:
2570protected:
2571 ::mlir::DictionaryAttr odsAttrs;
2572 ::std::optional<::mlir::OperationName> odsOpName;
2573 ::mlir::RegionRange odsRegions;
2574public:
2575 BVNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2576 odsOpName.emplace("smt.bv.neg", odsAttrs.getContext());
2577 }
2578
2579 BVNegOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2580
2581 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2582 return {index, 1};
2583 }
2584
2585 ::mlir::DictionaryAttr getAttributes() {
2586 return odsAttrs;
2587 }
2588
2589};
2590} // namespace detail
2591template <typename RangeT>
2593 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2595public:
2596 BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2597
2598 BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVNegOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2599
2600 BVNegOpGenericAdaptor(RangeT values, const BVNegOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2601
2602 template <typename LateInst = BVNegOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVNegOp>>>
2603 BVNegOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2604
2605 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2606 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2607 }
2608
2609 RangeT getODSOperands(unsigned index) {
2610 auto valueRange = getODSOperandIndexAndLength(index);
2611 return {std::next(odsOperands.begin(), valueRange.first),
2612 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2613 }
2614
2615 ValueT getInput() {
2616 return (*getODSOperands(0).begin());
2617 }
2618
2619 RangeT getOperands() {
2620 return odsOperands;
2621 }
2622
2623private:
2624 RangeT odsOperands;
2625};
2626class BVNegOpAdaptor : public BVNegOpGenericAdaptor<::mlir::ValueRange> {
2627public:
2630
2631 ::llvm::LogicalResult verify(::mlir::Location loc);
2632};
2633class 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> {
2634public:
2635 using Op::Op;
2636 using Op::print;
2638 template <typename RangeT>
2641 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2642 return {};
2643 }
2644
2645 static constexpr ::llvm::StringLiteral getOperationName() {
2646 return ::llvm::StringLiteral("smt.bv.neg");
2647 }
2648
2649 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2650 return {index, 1};
2651 }
2652
2653 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2654 auto valueRange = getODSOperandIndexAndLength(index);
2655 return {std::next(getOperation()->operand_begin(), valueRange.first),
2656 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2657 }
2658
2659 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
2660 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2661 }
2662
2663 ::mlir::OpOperand &getInputMutable() {
2664 auto range = getODSOperandIndexAndLength(0);
2665 return getOperation()->getOpOperand(range.first);
2666 }
2667
2668 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2669 return {index, 1};
2670 }
2671
2672 ::mlir::Operation::result_range getODSResults(unsigned index) {
2673 auto valueRange = getODSResultIndexAndLength(index);
2674 return {std::next(getOperation()->result_begin(), valueRange.first),
2675 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2676 }
2677
2678 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2679 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2680 }
2681
2682 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
2683 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
2684 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
2685 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2686 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2687 ::llvm::LogicalResult verifyInvariantsImpl();
2688 ::llvm::LogicalResult verifyInvariants();
2689 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);
2690 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2691 void print(::mlir::OpAsmPrinter &_odsPrinter);
2692 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2693public:
2694};
2695} // namespace smt
2696} // namespace llzk
2697MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVNegOp)
2698
2699namespace llzk {
2700namespace smt {
2701
2702//===----------------------------------------------------------------------===//
2703// ::llzk::smt::BVNotOp declarations
2704//===----------------------------------------------------------------------===//
2705
2706namespace detail {
2708public:
2709protected:
2710 ::mlir::DictionaryAttr odsAttrs;
2711 ::std::optional<::mlir::OperationName> odsOpName;
2712 ::mlir::RegionRange odsRegions;
2713public:
2714 BVNotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2715 odsOpName.emplace("smt.bv.not", odsAttrs.getContext());
2716 }
2717
2718 BVNotOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2719
2720 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2721 return {index, 1};
2722 }
2723
2724 ::mlir::DictionaryAttr getAttributes() {
2725 return odsAttrs;
2726 }
2727
2728};
2729} // namespace detail
2730template <typename RangeT>
2732 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2734public:
2735 BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2736
2737 BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVNotOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2738
2739 BVNotOpGenericAdaptor(RangeT values, const BVNotOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2740
2741 template <typename LateInst = BVNotOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVNotOp>>>
2742 BVNotOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2743
2744 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2745 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2746 }
2747
2748 RangeT getODSOperands(unsigned index) {
2749 auto valueRange = getODSOperandIndexAndLength(index);
2750 return {std::next(odsOperands.begin(), valueRange.first),
2751 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2752 }
2753
2754 ValueT getInput() {
2755 return (*getODSOperands(0).begin());
2756 }
2757
2758 RangeT getOperands() {
2759 return odsOperands;
2760 }
2761
2762private:
2763 RangeT odsOperands;
2764};
2765class BVNotOpAdaptor : public BVNotOpGenericAdaptor<::mlir::ValueRange> {
2766public:
2769
2770 ::llvm::LogicalResult verify(::mlir::Location loc);
2771};
2772class 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> {
2773public:
2774 using Op::Op;
2775 using Op::print;
2777 template <typename RangeT>
2780 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2781 return {};
2782 }
2783
2784 static constexpr ::llvm::StringLiteral getOperationName() {
2785 return ::llvm::StringLiteral("smt.bv.not");
2786 }
2787
2788 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2789 return {index, 1};
2790 }
2791
2792 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2793 auto valueRange = getODSOperandIndexAndLength(index);
2794 return {std::next(getOperation()->operand_begin(), valueRange.first),
2795 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2796 }
2797
2798 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
2799 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2800 }
2801
2802 ::mlir::OpOperand &getInputMutable() {
2803 auto range = getODSOperandIndexAndLength(0);
2804 return getOperation()->getOpOperand(range.first);
2805 }
2806
2807 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2808 return {index, 1};
2809 }
2810
2811 ::mlir::Operation::result_range getODSResults(unsigned index) {
2812 auto valueRange = getODSResultIndexAndLength(index);
2813 return {std::next(getOperation()->result_begin(), valueRange.first),
2814 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2815 }
2816
2817 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2818 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2819 }
2820
2821 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
2822 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
2823 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
2824 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2825 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2826 ::llvm::LogicalResult verifyInvariantsImpl();
2827 ::llvm::LogicalResult verifyInvariants();
2828 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);
2829 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2830 void print(::mlir::OpAsmPrinter &_odsPrinter);
2831 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2832public:
2833};
2834} // namespace smt
2835} // namespace llzk
2836MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVNotOp)
2837
2838namespace llzk {
2839namespace smt {
2840
2841//===----------------------------------------------------------------------===//
2842// ::llzk::smt::BVOrOp declarations
2843//===----------------------------------------------------------------------===//
2844
2845namespace detail {
2847public:
2848protected:
2849 ::mlir::DictionaryAttr odsAttrs;
2850 ::std::optional<::mlir::OperationName> odsOpName;
2851 ::mlir::RegionRange odsRegions;
2852public:
2853 BVOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
2854 odsOpName.emplace("smt.bv.or", odsAttrs.getContext());
2855 }
2856
2857 BVOrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
2858
2859 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2860 return {index, 1};
2861 }
2862
2863 ::mlir::DictionaryAttr getAttributes() {
2864 return odsAttrs;
2865 }
2866
2867};
2868} // namespace detail
2869template <typename RangeT>
2871 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2873public:
2874 BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2875
2876 BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVOrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
2877
2878 BVOrOpGenericAdaptor(RangeT values, const BVOrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2879
2880 template <typename LateInst = BVOrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVOrOp>>>
2881 BVOrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2882
2883 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2884 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2885 }
2886
2887 RangeT getODSOperands(unsigned index) {
2888 auto valueRange = getODSOperandIndexAndLength(index);
2889 return {std::next(odsOperands.begin(), valueRange.first),
2890 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2891 }
2892
2893 ValueT getLhs() {
2894 return (*getODSOperands(0).begin());
2895 }
2896
2897 ValueT getRhs() {
2898 return (*getODSOperands(1).begin());
2899 }
2900
2901 RangeT getOperands() {
2902 return odsOperands;
2903 }
2904
2905private:
2906 RangeT odsOperands;
2907};
2908class BVOrOpAdaptor : public BVOrOpGenericAdaptor<::mlir::ValueRange> {
2909public:
2912
2913 ::llvm::LogicalResult verify(::mlir::Location loc);
2914};
2915class 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> {
2916public:
2917 using Op::Op;
2918 using Op::print;
2920 template <typename RangeT>
2923 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2924 return {};
2925 }
2926
2927 static constexpr ::llvm::StringLiteral getOperationName() {
2928 return ::llvm::StringLiteral("smt.bv.or");
2929 }
2930
2931 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2932 return {index, 1};
2933 }
2934
2935 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2936 auto valueRange = getODSOperandIndexAndLength(index);
2937 return {std::next(getOperation()->operand_begin(), valueRange.first),
2938 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2939 }
2940
2941 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
2942 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
2943 }
2944
2945 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
2946 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
2947 }
2948
2949 ::mlir::OpOperand &getLhsMutable() {
2950 auto range = getODSOperandIndexAndLength(0);
2951 return getOperation()->getOpOperand(range.first);
2952 }
2953
2954 ::mlir::OpOperand &getRhsMutable() {
2955 auto range = getODSOperandIndexAndLength(1);
2956 return getOperation()->getOpOperand(range.first);
2957 }
2958
2959 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2960 return {index, 1};
2961 }
2962
2963 ::mlir::Operation::result_range getODSResults(unsigned index) {
2964 auto valueRange = getODSResultIndexAndLength(index);
2965 return {std::next(getOperation()->result_begin(), valueRange.first),
2966 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2967 }
2968
2969 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
2970 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
2971 }
2972
2973 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
2974 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
2975 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
2976 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2977 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2978 ::llvm::LogicalResult verifyInvariantsImpl();
2979 ::llvm::LogicalResult verifyInvariants();
2980 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);
2981 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2982 void print(::mlir::OpAsmPrinter &_odsPrinter);
2983 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2984public:
2985};
2986} // namespace smt
2987} // namespace llzk
2988MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVOrOp)
2989
2990namespace llzk {
2991namespace smt {
2992
2993//===----------------------------------------------------------------------===//
2994// ::llzk::smt::BVSDivOp declarations
2995//===----------------------------------------------------------------------===//
2996
2997namespace detail {
2999public:
3000protected:
3001 ::mlir::DictionaryAttr odsAttrs;
3002 ::std::optional<::mlir::OperationName> odsOpName;
3003 ::mlir::RegionRange odsRegions;
3004public:
3005 BVSDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3006 odsOpName.emplace("smt.bv.sdiv", odsAttrs.getContext());
3007 }
3008
3009 BVSDivOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3010
3011 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3012 return {index, 1};
3013 }
3014
3015 ::mlir::DictionaryAttr getAttributes() {
3016 return odsAttrs;
3017 }
3018
3019};
3020} // namespace detail
3021template <typename RangeT>
3023 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3025public:
3026 BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3027
3028 BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVSDivOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3029
3030 BVSDivOpGenericAdaptor(RangeT values, const BVSDivOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3031
3032 template <typename LateInst = BVSDivOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVSDivOp>>>
3033 BVSDivOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3034
3035 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3036 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3037 }
3038
3039 RangeT getODSOperands(unsigned index) {
3040 auto valueRange = getODSOperandIndexAndLength(index);
3041 return {std::next(odsOperands.begin(), valueRange.first),
3042 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3043 }
3044
3045 ValueT getLhs() {
3046 return (*getODSOperands(0).begin());
3047 }
3048
3049 ValueT getRhs() {
3050 return (*getODSOperands(1).begin());
3051 }
3052
3053 RangeT getOperands() {
3054 return odsOperands;
3055 }
3056
3057private:
3058 RangeT odsOperands;
3059};
3060class BVSDivOpAdaptor : public BVSDivOpGenericAdaptor<::mlir::ValueRange> {
3061public:
3064
3065 ::llvm::LogicalResult verify(::mlir::Location loc);
3066};
3067class 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> {
3068public:
3069 using Op::Op;
3070 using Op::print;
3072 template <typename RangeT>
3075 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3076 return {};
3077 }
3078
3079 static constexpr ::llvm::StringLiteral getOperationName() {
3080 return ::llvm::StringLiteral("smt.bv.sdiv");
3081 }
3082
3083 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3084 return {index, 1};
3085 }
3086
3087 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3088 auto valueRange = getODSOperandIndexAndLength(index);
3089 return {std::next(getOperation()->operand_begin(), valueRange.first),
3090 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3091 }
3092
3093 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3094 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3095 }
3096
3097 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3098 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3099 }
3100
3101 ::mlir::OpOperand &getLhsMutable() {
3102 auto range = getODSOperandIndexAndLength(0);
3103 return getOperation()->getOpOperand(range.first);
3104 }
3105
3106 ::mlir::OpOperand &getRhsMutable() {
3107 auto range = getODSOperandIndexAndLength(1);
3108 return getOperation()->getOpOperand(range.first);
3109 }
3110
3111 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3112 return {index, 1};
3113 }
3114
3115 ::mlir::Operation::result_range getODSResults(unsigned index) {
3116 auto valueRange = getODSResultIndexAndLength(index);
3117 return {std::next(getOperation()->result_begin(), valueRange.first),
3118 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3119 }
3120
3121 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3122 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3123 }
3124
3125 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3126 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3127 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3128 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3129 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3130 ::llvm::LogicalResult verifyInvariantsImpl();
3131 ::llvm::LogicalResult verifyInvariants();
3132 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);
3133 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3134 void print(::mlir::OpAsmPrinter &_odsPrinter);
3135 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3136public:
3137};
3138} // namespace smt
3139} // namespace llzk
3140MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVSDivOp)
3141
3142namespace llzk {
3143namespace smt {
3144
3145//===----------------------------------------------------------------------===//
3146// ::llzk::smt::BVSModOp declarations
3147//===----------------------------------------------------------------------===//
3148
3149namespace detail {
3151public:
3152protected:
3153 ::mlir::DictionaryAttr odsAttrs;
3154 ::std::optional<::mlir::OperationName> odsOpName;
3155 ::mlir::RegionRange odsRegions;
3156public:
3157 BVSModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3158 odsOpName.emplace("smt.bv.smod", odsAttrs.getContext());
3159 }
3160
3161 BVSModOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3162
3163 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3164 return {index, 1};
3165 }
3166
3167 ::mlir::DictionaryAttr getAttributes() {
3168 return odsAttrs;
3169 }
3170
3171};
3172} // namespace detail
3173template <typename RangeT>
3175 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3177public:
3178 BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3179
3180 BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVSModOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3181
3182 BVSModOpGenericAdaptor(RangeT values, const BVSModOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3183
3184 template <typename LateInst = BVSModOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVSModOp>>>
3185 BVSModOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3186
3187 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3188 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3189 }
3190
3191 RangeT getODSOperands(unsigned index) {
3192 auto valueRange = getODSOperandIndexAndLength(index);
3193 return {std::next(odsOperands.begin(), valueRange.first),
3194 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3195 }
3196
3197 ValueT getLhs() {
3198 return (*getODSOperands(0).begin());
3199 }
3200
3201 ValueT getRhs() {
3202 return (*getODSOperands(1).begin());
3203 }
3204
3205 RangeT getOperands() {
3206 return odsOperands;
3207 }
3208
3209private:
3210 RangeT odsOperands;
3211};
3212class BVSModOpAdaptor : public BVSModOpGenericAdaptor<::mlir::ValueRange> {
3213public:
3216
3217 ::llvm::LogicalResult verify(::mlir::Location loc);
3218};
3219class 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> {
3220public:
3221 using Op::Op;
3222 using Op::print;
3224 template <typename RangeT>
3227 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3228 return {};
3229 }
3230
3231 static constexpr ::llvm::StringLiteral getOperationName() {
3232 return ::llvm::StringLiteral("smt.bv.smod");
3233 }
3234
3235 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3236 return {index, 1};
3237 }
3238
3239 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3240 auto valueRange = getODSOperandIndexAndLength(index);
3241 return {std::next(getOperation()->operand_begin(), valueRange.first),
3242 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3243 }
3244
3245 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3246 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3247 }
3248
3249 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3250 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3251 }
3252
3253 ::mlir::OpOperand &getLhsMutable() {
3254 auto range = getODSOperandIndexAndLength(0);
3255 return getOperation()->getOpOperand(range.first);
3256 }
3257
3258 ::mlir::OpOperand &getRhsMutable() {
3259 auto range = getODSOperandIndexAndLength(1);
3260 return getOperation()->getOpOperand(range.first);
3261 }
3262
3263 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3264 return {index, 1};
3265 }
3266
3267 ::mlir::Operation::result_range getODSResults(unsigned index) {
3268 auto valueRange = getODSResultIndexAndLength(index);
3269 return {std::next(getOperation()->result_begin(), valueRange.first),
3270 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3271 }
3272
3273 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3274 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3275 }
3276
3277 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3278 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3279 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3280 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3281 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3282 ::llvm::LogicalResult verifyInvariantsImpl();
3283 ::llvm::LogicalResult verifyInvariants();
3284 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);
3285 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3286 void print(::mlir::OpAsmPrinter &_odsPrinter);
3287 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3288public:
3289};
3290} // namespace smt
3291} // namespace llzk
3292MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVSModOp)
3293
3294namespace llzk {
3295namespace smt {
3296
3297//===----------------------------------------------------------------------===//
3298// ::llzk::smt::BVSRemOp declarations
3299//===----------------------------------------------------------------------===//
3300
3301namespace detail {
3303public:
3304protected:
3305 ::mlir::DictionaryAttr odsAttrs;
3306 ::std::optional<::mlir::OperationName> odsOpName;
3307 ::mlir::RegionRange odsRegions;
3308public:
3309 BVSRemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3310 odsOpName.emplace("smt.bv.srem", odsAttrs.getContext());
3311 }
3312
3313 BVSRemOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3314
3315 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3316 return {index, 1};
3317 }
3318
3319 ::mlir::DictionaryAttr getAttributes() {
3320 return odsAttrs;
3321 }
3322
3323};
3324} // namespace detail
3325template <typename RangeT>
3327 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3329public:
3330 BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3331
3332 BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVSRemOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3333
3334 BVSRemOpGenericAdaptor(RangeT values, const BVSRemOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3335
3336 template <typename LateInst = BVSRemOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVSRemOp>>>
3337 BVSRemOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3338
3339 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3340 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3341 }
3342
3343 RangeT getODSOperands(unsigned index) {
3344 auto valueRange = getODSOperandIndexAndLength(index);
3345 return {std::next(odsOperands.begin(), valueRange.first),
3346 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3347 }
3348
3349 ValueT getLhs() {
3350 return (*getODSOperands(0).begin());
3351 }
3352
3353 ValueT getRhs() {
3354 return (*getODSOperands(1).begin());
3355 }
3356
3357 RangeT getOperands() {
3358 return odsOperands;
3359 }
3360
3361private:
3362 RangeT odsOperands;
3363};
3364class BVSRemOpAdaptor : public BVSRemOpGenericAdaptor<::mlir::ValueRange> {
3365public:
3368
3369 ::llvm::LogicalResult verify(::mlir::Location loc);
3370};
3371class 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> {
3372public:
3373 using Op::Op;
3374 using Op::print;
3376 template <typename RangeT>
3379 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3380 return {};
3381 }
3382
3383 static constexpr ::llvm::StringLiteral getOperationName() {
3384 return ::llvm::StringLiteral("smt.bv.srem");
3385 }
3386
3387 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3388 return {index, 1};
3389 }
3390
3391 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3392 auto valueRange = getODSOperandIndexAndLength(index);
3393 return {std::next(getOperation()->operand_begin(), valueRange.first),
3394 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3395 }
3396
3397 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3398 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3399 }
3400
3401 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3402 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3403 }
3404
3405 ::mlir::OpOperand &getLhsMutable() {
3406 auto range = getODSOperandIndexAndLength(0);
3407 return getOperation()->getOpOperand(range.first);
3408 }
3409
3410 ::mlir::OpOperand &getRhsMutable() {
3411 auto range = getODSOperandIndexAndLength(1);
3412 return getOperation()->getOpOperand(range.first);
3413 }
3414
3415 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3416 return {index, 1};
3417 }
3418
3419 ::mlir::Operation::result_range getODSResults(unsigned index) {
3420 auto valueRange = getODSResultIndexAndLength(index);
3421 return {std::next(getOperation()->result_begin(), valueRange.first),
3422 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3423 }
3424
3425 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3426 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3427 }
3428
3429 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3430 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3431 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3432 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3433 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3434 ::llvm::LogicalResult verifyInvariantsImpl();
3435 ::llvm::LogicalResult verifyInvariants();
3436 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);
3437 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3438 void print(::mlir::OpAsmPrinter &_odsPrinter);
3439 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3440public:
3441};
3442} // namespace smt
3443} // namespace llzk
3444MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVSRemOp)
3445
3446namespace llzk {
3447namespace smt {
3448
3449//===----------------------------------------------------------------------===//
3450// ::llzk::smt::BVShlOp declarations
3451//===----------------------------------------------------------------------===//
3452
3453namespace detail {
3455public:
3456protected:
3457 ::mlir::DictionaryAttr odsAttrs;
3458 ::std::optional<::mlir::OperationName> odsOpName;
3459 ::mlir::RegionRange odsRegions;
3460public:
3461 BVShlOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3462 odsOpName.emplace("smt.bv.shl", odsAttrs.getContext());
3463 }
3464
3465 BVShlOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3466
3467 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3468 return {index, 1};
3469 }
3470
3471 ::mlir::DictionaryAttr getAttributes() {
3472 return odsAttrs;
3473 }
3474
3475};
3476} // namespace detail
3477template <typename RangeT>
3479 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3481public:
3482 BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3483
3484 BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVShlOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3485
3486 BVShlOpGenericAdaptor(RangeT values, const BVShlOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3487
3488 template <typename LateInst = BVShlOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVShlOp>>>
3489 BVShlOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3490
3491 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3492 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3493 }
3494
3495 RangeT getODSOperands(unsigned index) {
3496 auto valueRange = getODSOperandIndexAndLength(index);
3497 return {std::next(odsOperands.begin(), valueRange.first),
3498 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3499 }
3500
3501 ValueT getLhs() {
3502 return (*getODSOperands(0).begin());
3503 }
3504
3505 ValueT getRhs() {
3506 return (*getODSOperands(1).begin());
3507 }
3508
3509 RangeT getOperands() {
3510 return odsOperands;
3511 }
3512
3513private:
3514 RangeT odsOperands;
3515};
3516class BVShlOpAdaptor : public BVShlOpGenericAdaptor<::mlir::ValueRange> {
3517public:
3520
3521 ::llvm::LogicalResult verify(::mlir::Location loc);
3522};
3523class 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> {
3524public:
3525 using Op::Op;
3526 using Op::print;
3528 template <typename RangeT>
3531 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3532 return {};
3533 }
3534
3535 static constexpr ::llvm::StringLiteral getOperationName() {
3536 return ::llvm::StringLiteral("smt.bv.shl");
3537 }
3538
3539 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3540 return {index, 1};
3541 }
3542
3543 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3544 auto valueRange = getODSOperandIndexAndLength(index);
3545 return {std::next(getOperation()->operand_begin(), valueRange.first),
3546 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3547 }
3548
3549 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3550 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3551 }
3552
3553 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3554 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3555 }
3556
3557 ::mlir::OpOperand &getLhsMutable() {
3558 auto range = getODSOperandIndexAndLength(0);
3559 return getOperation()->getOpOperand(range.first);
3560 }
3561
3562 ::mlir::OpOperand &getRhsMutable() {
3563 auto range = getODSOperandIndexAndLength(1);
3564 return getOperation()->getOpOperand(range.first);
3565 }
3566
3567 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3568 return {index, 1};
3569 }
3570
3571 ::mlir::Operation::result_range getODSResults(unsigned index) {
3572 auto valueRange = getODSResultIndexAndLength(index);
3573 return {std::next(getOperation()->result_begin(), valueRange.first),
3574 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3575 }
3576
3577 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3578 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3579 }
3580
3581 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3582 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3583 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3584 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3585 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3586 ::llvm::LogicalResult verifyInvariantsImpl();
3587 ::llvm::LogicalResult verifyInvariants();
3588 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);
3589 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3590 void print(::mlir::OpAsmPrinter &_odsPrinter);
3591 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3592public:
3593};
3594} // namespace smt
3595} // namespace llzk
3596MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVShlOp)
3597
3598namespace llzk {
3599namespace smt {
3600
3601//===----------------------------------------------------------------------===//
3602// ::llzk::smt::BVUDivOp declarations
3603//===----------------------------------------------------------------------===//
3604
3605namespace detail {
3607public:
3608protected:
3609 ::mlir::DictionaryAttr odsAttrs;
3610 ::std::optional<::mlir::OperationName> odsOpName;
3611 ::mlir::RegionRange odsRegions;
3612public:
3613 BVUDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3614 odsOpName.emplace("smt.bv.udiv", odsAttrs.getContext());
3615 }
3616
3617 BVUDivOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3618
3619 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3620 return {index, 1};
3621 }
3622
3623 ::mlir::DictionaryAttr getAttributes() {
3624 return odsAttrs;
3625 }
3626
3627};
3628} // namespace detail
3629template <typename RangeT>
3631 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3633public:
3634 BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3635
3636 BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVUDivOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3637
3638 BVUDivOpGenericAdaptor(RangeT values, const BVUDivOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3639
3640 template <typename LateInst = BVUDivOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVUDivOp>>>
3641 BVUDivOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3642
3643 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3644 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3645 }
3646
3647 RangeT getODSOperands(unsigned index) {
3648 auto valueRange = getODSOperandIndexAndLength(index);
3649 return {std::next(odsOperands.begin(), valueRange.first),
3650 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3651 }
3652
3653 ValueT getLhs() {
3654 return (*getODSOperands(0).begin());
3655 }
3656
3657 ValueT getRhs() {
3658 return (*getODSOperands(1).begin());
3659 }
3660
3661 RangeT getOperands() {
3662 return odsOperands;
3663 }
3664
3665private:
3666 RangeT odsOperands;
3667};
3668class BVUDivOpAdaptor : public BVUDivOpGenericAdaptor<::mlir::ValueRange> {
3669public:
3672
3673 ::llvm::LogicalResult verify(::mlir::Location loc);
3674};
3675class 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> {
3676public:
3677 using Op::Op;
3678 using Op::print;
3680 template <typename RangeT>
3683 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3684 return {};
3685 }
3686
3687 static constexpr ::llvm::StringLiteral getOperationName() {
3688 return ::llvm::StringLiteral("smt.bv.udiv");
3689 }
3690
3691 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3692 return {index, 1};
3693 }
3694
3695 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3696 auto valueRange = getODSOperandIndexAndLength(index);
3697 return {std::next(getOperation()->operand_begin(), valueRange.first),
3698 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3699 }
3700
3701 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3702 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3703 }
3704
3705 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3706 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3707 }
3708
3709 ::mlir::OpOperand &getLhsMutable() {
3710 auto range = getODSOperandIndexAndLength(0);
3711 return getOperation()->getOpOperand(range.first);
3712 }
3713
3714 ::mlir::OpOperand &getRhsMutable() {
3715 auto range = getODSOperandIndexAndLength(1);
3716 return getOperation()->getOpOperand(range.first);
3717 }
3718
3719 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3720 return {index, 1};
3721 }
3722
3723 ::mlir::Operation::result_range getODSResults(unsigned index) {
3724 auto valueRange = getODSResultIndexAndLength(index);
3725 return {std::next(getOperation()->result_begin(), valueRange.first),
3726 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3727 }
3728
3729 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3730 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3731 }
3732
3733 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3734 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3735 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3736 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3737 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3738 ::llvm::LogicalResult verifyInvariantsImpl();
3739 ::llvm::LogicalResult verifyInvariants();
3740 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);
3741 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3742 void print(::mlir::OpAsmPrinter &_odsPrinter);
3743 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3744public:
3745};
3746} // namespace smt
3747} // namespace llzk
3748MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVUDivOp)
3749
3750namespace llzk {
3751namespace smt {
3752
3753//===----------------------------------------------------------------------===//
3754// ::llzk::smt::BVURemOp declarations
3755//===----------------------------------------------------------------------===//
3756
3757namespace detail {
3759public:
3760protected:
3761 ::mlir::DictionaryAttr odsAttrs;
3762 ::std::optional<::mlir::OperationName> odsOpName;
3763 ::mlir::RegionRange odsRegions;
3764public:
3765 BVURemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3766 odsOpName.emplace("smt.bv.urem", odsAttrs.getContext());
3767 }
3768
3769 BVURemOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3770
3771 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3772 return {index, 1};
3773 }
3774
3775 ::mlir::DictionaryAttr getAttributes() {
3776 return odsAttrs;
3777 }
3778
3779};
3780} // namespace detail
3781template <typename RangeT>
3783 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3785public:
3786 BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3787
3788 BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVURemOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3789
3790 BVURemOpGenericAdaptor(RangeT values, const BVURemOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3791
3792 template <typename LateInst = BVURemOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVURemOp>>>
3793 BVURemOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3794
3795 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3796 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3797 }
3798
3799 RangeT getODSOperands(unsigned index) {
3800 auto valueRange = getODSOperandIndexAndLength(index);
3801 return {std::next(odsOperands.begin(), valueRange.first),
3802 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3803 }
3804
3805 ValueT getLhs() {
3806 return (*getODSOperands(0).begin());
3807 }
3808
3809 ValueT getRhs() {
3810 return (*getODSOperands(1).begin());
3811 }
3812
3813 RangeT getOperands() {
3814 return odsOperands;
3815 }
3816
3817private:
3818 RangeT odsOperands;
3819};
3820class BVURemOpAdaptor : public BVURemOpGenericAdaptor<::mlir::ValueRange> {
3821public:
3824
3825 ::llvm::LogicalResult verify(::mlir::Location loc);
3826};
3827class 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> {
3828public:
3829 using Op::Op;
3830 using Op::print;
3832 template <typename RangeT>
3835 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3836 return {};
3837 }
3838
3839 static constexpr ::llvm::StringLiteral getOperationName() {
3840 return ::llvm::StringLiteral("smt.bv.urem");
3841 }
3842
3843 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3844 return {index, 1};
3845 }
3846
3847 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3848 auto valueRange = getODSOperandIndexAndLength(index);
3849 return {std::next(getOperation()->operand_begin(), valueRange.first),
3850 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3851 }
3852
3853 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
3854 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
3855 }
3856
3857 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
3858 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
3859 }
3860
3861 ::mlir::OpOperand &getLhsMutable() {
3862 auto range = getODSOperandIndexAndLength(0);
3863 return getOperation()->getOpOperand(range.first);
3864 }
3865
3866 ::mlir::OpOperand &getRhsMutable() {
3867 auto range = getODSOperandIndexAndLength(1);
3868 return getOperation()->getOpOperand(range.first);
3869 }
3870
3871 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3872 return {index, 1};
3873 }
3874
3875 ::mlir::Operation::result_range getODSResults(unsigned index) {
3876 auto valueRange = getODSResultIndexAndLength(index);
3877 return {std::next(getOperation()->result_begin(), valueRange.first),
3878 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3879 }
3880
3881 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
3882 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
3883 }
3884
3885 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
3886 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
3887 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
3888 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3889 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3890 ::llvm::LogicalResult verifyInvariantsImpl();
3891 ::llvm::LogicalResult verifyInvariants();
3892 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);
3893 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3894 void print(::mlir::OpAsmPrinter &_odsPrinter);
3895 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3896public:
3897};
3898} // namespace smt
3899} // namespace llzk
3900MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVURemOp)
3901
3902namespace llzk {
3903namespace smt {
3904
3905//===----------------------------------------------------------------------===//
3906// ::llzk::smt::BVXOrOp declarations
3907//===----------------------------------------------------------------------===//
3908
3909namespace detail {
3911public:
3912protected:
3913 ::mlir::DictionaryAttr odsAttrs;
3914 ::std::optional<::mlir::OperationName> odsOpName;
3915 ::mlir::RegionRange odsRegions;
3916public:
3917 BVXOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
3918 odsOpName.emplace("smt.bv.xor", odsAttrs.getContext());
3919 }
3920
3921 BVXOrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
3922
3923 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3924 return {index, 1};
3925 }
3926
3927 ::mlir::DictionaryAttr getAttributes() {
3928 return odsAttrs;
3929 }
3930
3931};
3932} // namespace detail
3933template <typename RangeT>
3935 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3937public:
3938 BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3939
3940 BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BVXOrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
3941
3942 BVXOrOpGenericAdaptor(RangeT values, const BVXOrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3943
3944 template <typename LateInst = BVXOrOp, typename = std::enable_if_t<std::is_same_v<LateInst, BVXOrOp>>>
3945 BVXOrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3946
3947 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3948 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3949 }
3950
3951 RangeT getODSOperands(unsigned index) {
3952 auto valueRange = getODSOperandIndexAndLength(index);
3953 return {std::next(odsOperands.begin(), valueRange.first),
3954 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3955 }
3956
3957 ValueT getLhs() {
3958 return (*getODSOperands(0).begin());
3959 }
3960
3961 ValueT getRhs() {
3962 return (*getODSOperands(1).begin());
3963 }
3964
3965 RangeT getOperands() {
3966 return odsOperands;
3967 }
3968
3969private:
3970 RangeT odsOperands;
3971};
3972class BVXOrOpAdaptor : public BVXOrOpGenericAdaptor<::mlir::ValueRange> {
3973public:
3976
3977 ::llvm::LogicalResult verify(::mlir::Location loc);
3978};
3979class 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> {
3980public:
3981 using Op::Op;
3982 using Op::print;
3984 template <typename RangeT>
3987 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3988 return {};
3989 }
3990
3991 static constexpr ::llvm::StringLiteral getOperationName() {
3992 return ::llvm::StringLiteral("smt.bv.xor");
3993 }
3994
3995 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3996 return {index, 1};
3997 }
3998
3999 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4000 auto valueRange = getODSOperandIndexAndLength(index);
4001 return {std::next(getOperation()->operand_begin(), valueRange.first),
4002 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4003 }
4004
4005 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
4006 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
4007 }
4008
4009 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
4010 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
4011 }
4012
4013 ::mlir::OpOperand &getLhsMutable() {
4014 auto range = getODSOperandIndexAndLength(0);
4015 return getOperation()->getOpOperand(range.first);
4016 }
4017
4018 ::mlir::OpOperand &getRhsMutable() {
4019 auto range = getODSOperandIndexAndLength(1);
4020 return getOperation()->getOpOperand(range.first);
4021 }
4022
4023 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4024 return {index, 1};
4025 }
4026
4027 ::mlir::Operation::result_range getODSResults(unsigned index) {
4028 auto valueRange = getODSResultIndexAndLength(index);
4029 return {std::next(getOperation()->result_begin(), valueRange.first),
4030 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4031 }
4032
4033 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
4034 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
4035 }
4036
4037 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
4038 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
4039 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
4040 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4041 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4042 ::llvm::LogicalResult verifyInvariantsImpl();
4043 ::llvm::LogicalResult verifyInvariants();
4044 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);
4045 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4046 void print(::mlir::OpAsmPrinter &_odsPrinter);
4047 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4048public:
4049};
4050} // namespace smt
4051} // namespace llzk
4052MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BVXOrOp)
4053
4054namespace llzk {
4055namespace smt {
4056
4057//===----------------------------------------------------------------------===//
4058// ::llzk::smt::BoolConstantOp declarations
4059//===----------------------------------------------------------------------===//
4060
4061namespace detail {
4063public:
4064 struct Properties {
4065 using valueTy = ::mlir::BoolAttr;
4067
4068 auto getValue() {
4069 auto &propStorage = this->value;
4070 return ::llvm::cast<::mlir::BoolAttr>(propStorage);
4071 }
4072 void setValue(const ::mlir::BoolAttr &propValue) {
4073 this->value = propValue;
4074 }
4075 bool operator==(const Properties &rhs) const {
4076 return
4077 rhs.value == this->value &&
4078 true;
4079 }
4080 bool operator!=(const Properties &rhs) const {
4081 return !(*this == rhs);
4082 }
4083 };
4084protected:
4085 ::mlir::DictionaryAttr odsAttrs;
4086 ::std::optional<::mlir::OperationName> odsOpName;
4088 ::mlir::RegionRange odsRegions;
4089public:
4090 BoolConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
4091 odsOpName.emplace("smt.constant", odsAttrs.getContext());
4092 }
4093
4095
4096 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4097 return {index, 1};
4098 }
4099
4101 return properties;
4102 }
4103
4104 ::mlir::DictionaryAttr getAttributes() {
4105 return odsAttrs;
4106 }
4107
4108 ::mlir::BoolAttr getValueAttr() {
4109 auto attr = ::llvm::cast<::mlir::BoolAttr>(getProperties().value);
4110 return attr;
4111 }
4112
4113 bool getValue();
4114};
4115} // namespace detail
4116template <typename RangeT>
4118 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4120public:
4121 BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4122
4123 BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : BoolConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
4124
4125 BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : BoolConstantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
4126
4127 BoolConstantOpGenericAdaptor(RangeT values, const BoolConstantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4128
4129 template <typename LateInst = BoolConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, BoolConstantOp>>>
4130 BoolConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4131
4132 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4133 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4134 }
4135
4136 RangeT getODSOperands(unsigned index) {
4137 auto valueRange = getODSOperandIndexAndLength(index);
4138 return {std::next(odsOperands.begin(), valueRange.first),
4139 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4140 }
4141
4142 RangeT getOperands() {
4143 return odsOperands;
4144 }
4145
4146private:
4147 RangeT odsOperands;
4148};
4149class BoolConstantOpAdaptor : public BoolConstantOpGenericAdaptor<::mlir::ValueRange> {
4150public:
4153
4154 ::llvm::LogicalResult verify(::mlir::Location loc);
4155};
4156class 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> {
4157public:
4158 using Op::Op;
4159 using Op::print;
4161 template <typename RangeT>
4165 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4166 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
4167 return ::llvm::ArrayRef(attrNames);
4168 }
4169
4170 ::mlir::StringAttr getValueAttrName() {
4171 return getAttributeNameForIndex(0);
4172 }
4173
4174 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
4175 return getAttributeNameForIndex(name, 0);
4176 }
4177
4178 static constexpr ::llvm::StringLiteral getOperationName() {
4179 return ::llvm::StringLiteral("smt.constant");
4180 }
4181
4182 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4183 return {index, 1};
4184 }
4185
4186 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4187 auto valueRange = getODSOperandIndexAndLength(index);
4188 return {std::next(getOperation()->operand_begin(), valueRange.first),
4189 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4190 }
4191
4192 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4193 return {index, 1};
4194 }
4195
4196 ::mlir::Operation::result_range getODSResults(unsigned index) {
4197 auto valueRange = getODSResultIndexAndLength(index);
4198 return {std::next(getOperation()->result_begin(), valueRange.first),
4199 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4200 }
4201
4202 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
4203 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
4204 }
4205
4206 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4207 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
4208 static llvm::hash_code computePropertiesHash(const Properties &prop);
4209 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
4210 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
4211 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
4212 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4213 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
4214 void writeProperties(::mlir::DialectBytecodeWriter &writer);
4215 ::mlir::BoolAttr getValueAttr() {
4216 return ::llvm::cast<::mlir::BoolAttr>(getProperties().value);
4217 }
4218
4219 bool getValue();
4220 void setValueAttr(::mlir::BoolAttr attr) {
4221 getProperties().value = attr;
4222 }
4223
4224 void setValue(bool attrValue);
4225 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::BoolAttr value);
4226 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::BoolAttr value);
4227 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::BoolAttr value);
4228 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, bool value);
4229 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, bool value);
4230 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, bool value);
4231 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4232 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4233 ::llvm::LogicalResult verifyInvariantsImpl();
4234 ::llvm::LogicalResult verifyInvariants();
4235 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
4236 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);
4237 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
4238 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4239 void print(::mlir::OpAsmPrinter &_odsPrinter);
4240 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4241private:
4242 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
4243 return getAttributeNameForIndex((*this)->getName(), index);
4244 }
4245
4246 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
4247 assert(index < 1 && "invalid attribute index");
4248 assert(name.getStringRef() == getOperationName() && "invalid operation name");
4249 assert(name.isRegistered() && "Operation isn't registered, missing a "
4250 "dependent dialect loading?");
4251 return name.getAttributeNames()[index];
4252 }
4253
4254public:
4255};
4256} // namespace smt
4257} // namespace llzk
4258MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::BoolConstantOp)
4259
4260namespace llzk {
4261namespace smt {
4262
4263//===----------------------------------------------------------------------===//
4264// ::llzk::smt::CheckOp declarations
4265//===----------------------------------------------------------------------===//
4266
4267namespace detail {
4269public:
4270protected:
4271 ::mlir::DictionaryAttr odsAttrs;
4272 ::std::optional<::mlir::OperationName> odsOpName;
4273 ::mlir::RegionRange odsRegions;
4274public:
4275 CheckOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4276 odsOpName.emplace("smt.check", odsAttrs.getContext());
4277 }
4278
4279 CheckOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4280
4281 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4282 return {index, 1};
4283 }
4284
4285 ::mlir::DictionaryAttr getAttributes() {
4286 return odsAttrs;
4287 }
4288
4289 ::mlir::Region &getSatRegion() {
4290 return *odsRegions[0];
4291 }
4292
4293 ::mlir::Region &getUnknownRegion() {
4294 return *odsRegions[1];
4295 }
4296
4297 ::mlir::Region &getUnsatRegion() {
4298 return *odsRegions[2];
4299 }
4300
4301 ::mlir::RegionRange getRegions() {
4302 return odsRegions;
4303 }
4304
4305};
4306} // namespace detail
4307template <typename RangeT>
4309 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4311public:
4312 CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4313
4314 CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : CheckOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4315
4316 CheckOpGenericAdaptor(RangeT values, const CheckOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4317
4318 template <typename LateInst = CheckOp, typename = std::enable_if_t<std::is_same_v<LateInst, CheckOp>>>
4319 CheckOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4320
4321 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4322 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4323 }
4324
4325 RangeT getODSOperands(unsigned index) {
4326 auto valueRange = getODSOperandIndexAndLength(index);
4327 return {std::next(odsOperands.begin(), valueRange.first),
4328 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4329 }
4330
4331 RangeT getOperands() {
4332 return odsOperands;
4333 }
4334
4335private:
4336 RangeT odsOperands;
4337};
4338class CheckOpAdaptor : public CheckOpGenericAdaptor<::mlir::ValueRange> {
4339public:
4342
4343 ::llvm::LogicalResult verify(::mlir::Location loc);
4344};
4345class 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> {
4346public:
4347 using Op::Op;
4348 using Op::print;
4350 template <typename RangeT>
4353 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4354 return {};
4355 }
4356
4357 static constexpr ::llvm::StringLiteral getOperationName() {
4358 return ::llvm::StringLiteral("smt.check");
4359 }
4360
4361 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4362 return {index, 1};
4363 }
4364
4365 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4366 auto valueRange = getODSOperandIndexAndLength(index);
4367 return {std::next(getOperation()->operand_begin(), valueRange.first),
4368 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4369 }
4370
4371 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
4372 ::mlir::Operation::result_range getODSResults(unsigned index) {
4373 auto valueRange = getODSResultIndexAndLength(index);
4374 return {std::next(getOperation()->result_begin(), valueRange.first),
4375 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4376 }
4377
4378 ::mlir::Operation::result_range getResults() {
4379 return getODSResults(0);
4380 }
4381
4382 ::mlir::Region &getSatRegion() {
4383 return (*this)->getRegion(0);
4384 }
4385
4386 ::mlir::Region &getUnknownRegion() {
4387 return (*this)->getRegion(1);
4388 }
4389
4390 ::mlir::Region &getUnsatRegion() {
4391 return (*this)->getRegion(2);
4392 }
4393
4394 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange results);
4395 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4396 ::llvm::LogicalResult verifyInvariantsImpl();
4397 ::llvm::LogicalResult verifyInvariants();
4398 ::llvm::LogicalResult verifyRegions();
4399 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4400 void print(::mlir::OpAsmPrinter &_odsPrinter);
4401public:
4402};
4403} // namespace smt
4404} // namespace llzk
4405MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::CheckOp)
4406
4407namespace llzk {
4408namespace smt {
4409
4410//===----------------------------------------------------------------------===//
4411// ::llzk::smt::ConcatOp declarations
4412//===----------------------------------------------------------------------===//
4413
4414namespace detail {
4416public:
4417protected:
4418 ::mlir::DictionaryAttr odsAttrs;
4419 ::std::optional<::mlir::OperationName> odsOpName;
4420 ::mlir::RegionRange odsRegions;
4421public:
4422 ConcatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4423 odsOpName.emplace("smt.bv.concat", odsAttrs.getContext());
4424 }
4425
4426 ConcatOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4427
4428 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4429 return {index, 1};
4430 }
4431
4432 ::mlir::DictionaryAttr getAttributes() {
4433 return odsAttrs;
4434 }
4435
4436};
4437} // namespace detail
4438template <typename RangeT>
4440 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4442public:
4443 ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4444
4445 ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ConcatOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4446
4447 ConcatOpGenericAdaptor(RangeT values, const ConcatOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4448
4449 template <typename LateInst = ConcatOp, typename = std::enable_if_t<std::is_same_v<LateInst, ConcatOp>>>
4450 ConcatOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4451
4452 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4453 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4454 }
4455
4456 RangeT getODSOperands(unsigned index) {
4457 auto valueRange = getODSOperandIndexAndLength(index);
4458 return {std::next(odsOperands.begin(), valueRange.first),
4459 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4460 }
4461
4462 ValueT getLhs() {
4463 return (*getODSOperands(0).begin());
4464 }
4465
4466 ValueT getRhs() {
4467 return (*getODSOperands(1).begin());
4468 }
4469
4470 RangeT getOperands() {
4471 return odsOperands;
4472 }
4473
4474private:
4475 RangeT odsOperands;
4476};
4477class ConcatOpAdaptor : public ConcatOpGenericAdaptor<::mlir::ValueRange> {
4478public:
4481
4482 ::llvm::LogicalResult verify(::mlir::Location loc);
4483};
4484class 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> {
4485public:
4486 using Op::Op;
4487 using Op::print;
4489 template <typename RangeT>
4492 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4493 return {};
4494 }
4495
4496 static constexpr ::llvm::StringLiteral getOperationName() {
4497 return ::llvm::StringLiteral("smt.bv.concat");
4498 }
4499
4500 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4501 return {index, 1};
4502 }
4503
4504 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4505 auto valueRange = getODSOperandIndexAndLength(index);
4506 return {std::next(getOperation()->operand_begin(), valueRange.first),
4507 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4508 }
4509
4510 ::mlir::TypedValue<::llzk::smt::BitVectorType> getLhs() {
4511 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
4512 }
4513
4514 ::mlir::TypedValue<::llzk::smt::BitVectorType> getRhs() {
4515 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(1).begin());
4516 }
4517
4518 ::mlir::OpOperand &getLhsMutable() {
4519 auto range = getODSOperandIndexAndLength(0);
4520 return getOperation()->getOpOperand(range.first);
4521 }
4522
4523 ::mlir::OpOperand &getRhsMutable() {
4524 auto range = getODSOperandIndexAndLength(1);
4525 return getOperation()->getOpOperand(range.first);
4526 }
4527
4528 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4529 return {index, 1};
4530 }
4531
4532 ::mlir::Operation::result_range getODSResults(unsigned index) {
4533 auto valueRange = getODSResultIndexAndLength(index);
4534 return {std::next(getOperation()->result_begin(), valueRange.first),
4535 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4536 }
4537
4538 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
4539 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
4540 }
4541
4542 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
4543 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
4544 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
4545 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4546 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4547 ::llvm::LogicalResult verifyInvariantsImpl();
4548 ::llvm::LogicalResult verifyInvariants();
4549 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);
4550 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4551 void print(::mlir::OpAsmPrinter &_odsPrinter);
4552 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4553public:
4554};
4555} // namespace smt
4556} // namespace llzk
4557MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ConcatOp)
4558
4559namespace llzk {
4560namespace smt {
4561
4562//===----------------------------------------------------------------------===//
4563// ::llzk::smt::DeclareFunOp declarations
4564//===----------------------------------------------------------------------===//
4565
4566namespace detail {
4568public:
4569 struct Properties {
4570 using namePrefixTy = ::mlir::StringAttr;
4572
4574 auto &propStorage = this->namePrefix;
4575 return ::llvm::dyn_cast_or_null<::mlir::StringAttr>(propStorage);
4576 }
4577 void setNamePrefix(const ::mlir::StringAttr &propValue) {
4578 this->namePrefix = propValue;
4579 }
4580 bool operator==(const Properties &rhs) const {
4581 return
4582 rhs.namePrefix == this->namePrefix &&
4583 true;
4584 }
4585 bool operator!=(const Properties &rhs) const {
4586 return !(*this == rhs);
4587 }
4588 };
4589protected:
4590 ::mlir::DictionaryAttr odsAttrs;
4591 ::std::optional<::mlir::OperationName> odsOpName;
4593 ::mlir::RegionRange odsRegions;
4594public:
4595 DeclareFunOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
4596 odsOpName.emplace("smt.declare_fun", odsAttrs.getContext());
4597 }
4598
4600
4601 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
4602 return {index, 1};
4603 }
4604
4606 return properties;
4607 }
4608
4609 ::mlir::DictionaryAttr getAttributes() {
4610 return odsAttrs;
4611 }
4612
4613 ::mlir::StringAttr getNamePrefixAttr() {
4614 auto attr = ::llvm::dyn_cast_or_null<::mlir::StringAttr>(getProperties().namePrefix);
4615 return attr;
4616 }
4617
4618 ::std::optional< ::llvm::StringRef > getNamePrefix();
4619};
4620} // namespace detail
4621template <typename RangeT>
4623 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4625public:
4626 DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4627
4628 DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : DeclareFunOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
4629
4630 DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : DeclareFunOpGenericAdaptor(values, attrs, Properties{}, {}) {}
4631
4632 DeclareFunOpGenericAdaptor(RangeT values, const DeclareFunOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4633
4634 template <typename LateInst = DeclareFunOp, typename = std::enable_if_t<std::is_same_v<LateInst, DeclareFunOp>>>
4635 DeclareFunOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4636
4637 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4638 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4639 }
4640
4641 RangeT getODSOperands(unsigned index) {
4642 auto valueRange = getODSOperandIndexAndLength(index);
4643 return {std::next(odsOperands.begin(), valueRange.first),
4644 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4645 }
4646
4647 RangeT getOperands() {
4648 return odsOperands;
4649 }
4650
4651private:
4652 RangeT odsOperands;
4653};
4654class DeclareFunOpAdaptor : public DeclareFunOpGenericAdaptor<::mlir::ValueRange> {
4655public:
4658
4659 ::llvm::LogicalResult verify(::mlir::Location loc);
4660};
4661class 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> {
4662public:
4663 using Op::Op;
4664 using Op::print;
4666 template <typename RangeT>
4670 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4671 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("namePrefix")};
4672 return ::llvm::ArrayRef(attrNames);
4673 }
4674
4675 ::mlir::StringAttr getNamePrefixAttrName() {
4676 return getAttributeNameForIndex(0);
4677 }
4678
4679 static ::mlir::StringAttr getNamePrefixAttrName(::mlir::OperationName name) {
4680 return getAttributeNameForIndex(name, 0);
4681 }
4682
4683 static constexpr ::llvm::StringLiteral getOperationName() {
4684 return ::llvm::StringLiteral("smt.declare_fun");
4685 }
4686
4687 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4688 return {index, 1};
4689 }
4690
4691 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4692 auto valueRange = getODSOperandIndexAndLength(index);
4693 return {std::next(getOperation()->operand_begin(), valueRange.first),
4694 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4695 }
4696
4697 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4698 return {index, 1};
4699 }
4700
4701 ::mlir::Operation::result_range getODSResults(unsigned index) {
4702 auto valueRange = getODSResultIndexAndLength(index);
4703 return {std::next(getOperation()->result_begin(), valueRange.first),
4704 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4705 }
4706
4707 ::mlir::TypedValue<::mlir::Type> getResult() {
4708 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
4709 }
4710
4711 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4712 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
4713 static llvm::hash_code computePropertiesHash(const Properties &prop);
4714 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
4715 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
4716 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
4717 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
4718 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
4719 void writeProperties(::mlir::DialectBytecodeWriter &writer);
4720 ::mlir::StringAttr getNamePrefixAttr() {
4721 return ::llvm::dyn_cast_or_null<::mlir::StringAttr>(getProperties().namePrefix);
4722 }
4723
4724 ::std::optional< ::llvm::StringRef > getNamePrefix();
4725 void setNamePrefixAttr(::mlir::StringAttr attr) {
4726 getProperties().namePrefix = attr;
4727 }
4728
4729 void setNamePrefix(::std::optional<::llvm::StringRef> attrValue);
4730 ::mlir::Attribute removeNamePrefixAttr() {
4731 auto &attr = getProperties().namePrefix;
4732 attr = {};
4733 return attr;
4734 }
4735
4736 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Type type);
4737 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, /*optional*/::mlir::StringAttr namePrefix);
4738 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, /*optional*/::mlir::StringAttr namePrefix);
4739 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4740 ::llvm::LogicalResult verifyInvariantsImpl();
4741 ::llvm::LogicalResult verifyInvariants();
4742 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
4743 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4744 void print(::mlir::OpAsmPrinter &_odsPrinter);
4745 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4746private:
4747 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
4748 return getAttributeNameForIndex((*this)->getName(), index);
4749 }
4750
4751 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
4752 assert(index < 1 && "invalid attribute index");
4753 assert(name.getStringRef() == getOperationName() && "invalid operation name");
4754 assert(name.isRegistered() && "Operation isn't registered, missing a "
4755 "dependent dialect loading?");
4756 return name.getAttributeNames()[index];
4757 }
4758
4759public:
4760};
4761} // namespace smt
4762} // namespace llzk
4763MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::DeclareFunOp)
4764
4765namespace llzk {
4766namespace smt {
4767
4768//===----------------------------------------------------------------------===//
4769// ::llzk::smt::DistinctOp declarations
4770//===----------------------------------------------------------------------===//
4771
4772namespace detail {
4774public:
4775protected:
4776 ::mlir::DictionaryAttr odsAttrs;
4777 ::std::optional<::mlir::OperationName> odsOpName;
4778 ::mlir::RegionRange odsRegions;
4779public:
4780 DistinctOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4781 odsOpName.emplace("smt.distinct", odsAttrs.getContext());
4782 }
4783
4784 DistinctOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4785
4786 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
4787 ::mlir::DictionaryAttr getAttributes() {
4788 return odsAttrs;
4789 }
4790
4791};
4792} // namespace detail
4793template <typename RangeT>
4795 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4797public:
4798 DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4799
4800 DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : DistinctOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4801
4802 DistinctOpGenericAdaptor(RangeT values, const DistinctOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4803
4804 template <typename LateInst = DistinctOp, typename = std::enable_if_t<std::is_same_v<LateInst, DistinctOp>>>
4805 DistinctOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4806
4807 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4808 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4809 }
4810
4811 RangeT getODSOperands(unsigned index) {
4812 auto valueRange = getODSOperandIndexAndLength(index);
4813 return {std::next(odsOperands.begin(), valueRange.first),
4814 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4815 }
4816
4817 RangeT getInputs() {
4818 return getODSOperands(0);
4819 }
4820
4821 RangeT getOperands() {
4822 return odsOperands;
4823 }
4824
4825private:
4826 RangeT odsOperands;
4827};
4828class DistinctOpAdaptor : public DistinctOpGenericAdaptor<::mlir::ValueRange> {
4829public:
4832
4833 ::llvm::LogicalResult verify(::mlir::Location loc);
4834};
4835class 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> {
4836public:
4837 using Op::Op;
4838 using Op::print;
4840 template <typename RangeT>
4843 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4844 return {};
4845 }
4846
4847 static constexpr ::llvm::StringLiteral getOperationName() {
4848 return ::llvm::StringLiteral("smt.distinct");
4849 }
4850
4851 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
4852 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4853 auto valueRange = getODSOperandIndexAndLength(index);
4854 return {std::next(getOperation()->operand_begin(), valueRange.first),
4855 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4856 }
4857
4858 ::mlir::Operation::operand_range getInputs() {
4859 return getODSOperands(0);
4860 }
4861
4862 ::mlir::MutableOperandRange getInputsMutable();
4863 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4864 return {index, 1};
4865 }
4866
4867 ::mlir::Operation::result_range getODSResults(unsigned index) {
4868 auto valueRange = getODSResultIndexAndLength(index);
4869 return {std::next(getOperation()->result_begin(), valueRange.first),
4870 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
4871 }
4872
4873 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
4874 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
4875 }
4876
4877 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
4878 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
4879 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4880 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
4881 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
4882 void print(::mlir::OpAsmPrinter &p);
4883 ::llvm::LogicalResult verifyInvariantsImpl();
4884 ::llvm::LogicalResult verifyInvariants();
4885 ::llvm::LogicalResult verify();
4886 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);
4887 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
4888public:
4889};
4890} // namespace smt
4891} // namespace llzk
4892MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::DistinctOp)
4893
4894namespace llzk {
4895namespace smt {
4896
4897//===----------------------------------------------------------------------===//
4898// ::llzk::smt::EqOp declarations
4899//===----------------------------------------------------------------------===//
4900
4901namespace detail {
4903public:
4904protected:
4905 ::mlir::DictionaryAttr odsAttrs;
4906 ::std::optional<::mlir::OperationName> odsOpName;
4907 ::mlir::RegionRange odsRegions;
4908public:
4909 EqOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
4910 odsOpName.emplace("smt.eq", odsAttrs.getContext());
4911 }
4912
4913 EqOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
4914
4915 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
4916 ::mlir::DictionaryAttr getAttributes() {
4917 return odsAttrs;
4918 }
4919
4920};
4921} // namespace detail
4922template <typename RangeT>
4924 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
4925 using Base = detail::EqOpGenericAdaptorBase;
4926public:
4927 EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
4928
4929 EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : EqOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
4930
4931 EqOpGenericAdaptor(RangeT values, const EqOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
4932
4933 template <typename LateInst = EqOp, typename = std::enable_if_t<std::is_same_v<LateInst, EqOp>>>
4934 EqOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
4935
4936 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
4937 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
4938 }
4939
4940 RangeT getODSOperands(unsigned index) {
4941 auto valueRange = getODSOperandIndexAndLength(index);
4942 return {std::next(odsOperands.begin(), valueRange.first),
4943 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
4944 }
4945
4946 RangeT getInputs() {
4947 return getODSOperands(0);
4948 }
4949
4950 RangeT getOperands() {
4951 return odsOperands;
4952 }
4953
4954private:
4955 RangeT odsOperands;
4956};
4957class EqOpAdaptor : public EqOpGenericAdaptor<::mlir::ValueRange> {
4958public:
4960 EqOpAdaptor(EqOp op);
4961
4962 ::llvm::LogicalResult verify(::mlir::Location loc);
4963};
4964class 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> {
4965public:
4966 using Op::Op;
4967 using Op::print;
4969 template <typename RangeT>
4972 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
4973 return {};
4974 }
4975
4976 static constexpr ::llvm::StringLiteral getOperationName() {
4977 return ::llvm::StringLiteral("smt.eq");
4978 }
4979
4980 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
4981 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
4982 auto valueRange = getODSOperandIndexAndLength(index);
4983 return {std::next(getOperation()->operand_begin(), valueRange.first),
4984 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
4985 }
4986
4987 ::mlir::Operation::operand_range getInputs() {
4988 return getODSOperands(0);
4989 }
4990
4991 ::mlir::MutableOperandRange getInputsMutable();
4992 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
4993 return {index, 1};
4994 }
4995
4996 ::mlir::Operation::result_range getODSResults(unsigned index) {
4997 auto valueRange = getODSResultIndexAndLength(index);
4998 return {std::next(getOperation()->result_begin(), valueRange.first),
4999 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5000 }
5001
5002 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5003 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5004 }
5005
5006 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
5007 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
5008 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5009 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5010 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5011 void print(::mlir::OpAsmPrinter &p);
5012 ::llvm::LogicalResult verifyInvariantsImpl();
5013 ::llvm::LogicalResult verifyInvariants();
5014 ::llvm::LogicalResult verify();
5015 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);
5016 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
5017public:
5018};
5019} // namespace smt
5020} // namespace llzk
5021MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::EqOp)
5022
5023namespace llzk {
5024namespace smt {
5025
5026//===----------------------------------------------------------------------===//
5027// ::llzk::smt::ExistsOp declarations
5028//===----------------------------------------------------------------------===//
5029
5030namespace detail {
5032public:
5033 struct Properties {
5034 using boundVarNamesTy = ::mlir::ArrayAttr;
5036
5038 auto &propStorage = this->boundVarNames;
5039 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
5040 }
5041 void setBoundVarNames(const ::mlir::ArrayAttr &propValue) {
5042 this->boundVarNames = propValue;
5043 }
5044 using noPatternTy = ::mlir::UnitAttr;
5046
5048 auto &propStorage = this->noPattern;
5049 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
5050 }
5051 void setNoPattern(const ::mlir::UnitAttr &propValue) {
5052 this->noPattern = propValue;
5053 }
5054 using weightTy = ::mlir::IntegerAttr;
5056
5057 auto getWeight() {
5058 auto &propStorage = this->weight;
5059 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(propStorage);
5060 }
5061 void setWeight(const ::mlir::IntegerAttr &propValue) {
5062 this->weight = propValue;
5063 }
5064 bool operator==(const Properties &rhs) const {
5065 return
5066 rhs.boundVarNames == this->boundVarNames &&
5067 rhs.noPattern == this->noPattern &&
5068 rhs.weight == this->weight &&
5069 true;
5070 }
5071 bool operator!=(const Properties &rhs) const {
5072 return !(*this == rhs);
5073 }
5074 };
5075protected:
5076 ::mlir::DictionaryAttr odsAttrs;
5077 ::std::optional<::mlir::OperationName> odsOpName;
5079 ::mlir::RegionRange odsRegions;
5080public:
5081 ExistsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
5082 odsOpName.emplace("smt.exists", odsAttrs.getContext());
5083 }
5084
5086
5087 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5088 return {index, 1};
5089 }
5090
5092 return properties;
5093 }
5094
5095 ::mlir::DictionaryAttr getAttributes() {
5096 return odsAttrs;
5097 }
5098
5099 ::mlir::IntegerAttr getWeightAttr();
5100 uint32_t getWeight();
5101 ::mlir::UnitAttr getNoPatternAttr();
5102 bool getNoPattern();
5103 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5104 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5105 return attr;
5106 }
5107
5108 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5109 ::mlir::Region &getBody() {
5110 return *odsRegions[0];
5111 }
5112
5113 ::mlir::RegionRange getPatterns() {
5114 return odsRegions.drop_front(1);
5115 }
5116
5117 ::mlir::RegionRange getRegions() {
5118 return odsRegions;
5119 }
5120
5121};
5122} // namespace detail
5123template <typename RangeT>
5125 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5127public:
5128 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5129
5130 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ExistsOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
5131
5132 ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ExistsOpGenericAdaptor(values, attrs, Properties{}, {}) {}
5133
5134 ExistsOpGenericAdaptor(RangeT values, const ExistsOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5135
5136 template <typename LateInst = ExistsOp, typename = std::enable_if_t<std::is_same_v<LateInst, ExistsOp>>>
5137 ExistsOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5138
5139 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5140 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5141 }
5142
5143 RangeT getODSOperands(unsigned index) {
5144 auto valueRange = getODSOperandIndexAndLength(index);
5145 return {std::next(odsOperands.begin(), valueRange.first),
5146 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5147 }
5148
5149 RangeT getOperands() {
5150 return odsOperands;
5151 }
5152
5153private:
5154 RangeT odsOperands;
5155};
5156class ExistsOpAdaptor : public ExistsOpGenericAdaptor<::mlir::ValueRange> {
5157public:
5160
5161 ::llvm::LogicalResult verify(::mlir::Location loc);
5162};
5163class 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> {
5164public:
5165 using Op::Op;
5166 using Op::print;
5168 template <typename RangeT>
5172 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5173 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("boundVarNames"), ::llvm::StringRef("noPattern"), ::llvm::StringRef("weight")};
5174 return ::llvm::ArrayRef(attrNames);
5175 }
5176
5177 ::mlir::StringAttr getBoundVarNamesAttrName() {
5178 return getAttributeNameForIndex(0);
5179 }
5180
5181 static ::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name) {
5182 return getAttributeNameForIndex(name, 0);
5183 }
5184
5185 ::mlir::StringAttr getNoPatternAttrName() {
5186 return getAttributeNameForIndex(1);
5187 }
5188
5189 static ::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name) {
5190 return getAttributeNameForIndex(name, 1);
5191 }
5192
5193 ::mlir::StringAttr getWeightAttrName() {
5194 return getAttributeNameForIndex(2);
5195 }
5196
5197 static ::mlir::StringAttr getWeightAttrName(::mlir::OperationName name) {
5198 return getAttributeNameForIndex(name, 2);
5199 }
5200
5201 static constexpr ::llvm::StringLiteral getOperationName() {
5202 return ::llvm::StringLiteral("smt.exists");
5203 }
5204
5205 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5206 return {index, 1};
5207 }
5208
5209 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5210 auto valueRange = getODSOperandIndexAndLength(index);
5211 return {std::next(getOperation()->operand_begin(), valueRange.first),
5212 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5213 }
5214
5215 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5216 return {index, 1};
5217 }
5218
5219 ::mlir::Operation::result_range getODSResults(unsigned index) {
5220 auto valueRange = getODSResultIndexAndLength(index);
5221 return {std::next(getOperation()->result_begin(), valueRange.first),
5222 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5223 }
5224
5225 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5226 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5227 }
5228
5229 ::mlir::Region &getBody() {
5230 return (*this)->getRegion(0);
5231 }
5232
5233 ::mlir::MutableArrayRef<::mlir::Region> getPatterns() {
5234 return (*this)->getRegions().drop_front(1);
5235 }
5236
5237 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5238 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
5239 static llvm::hash_code computePropertiesHash(const Properties &prop);
5240 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
5241 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
5242 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
5243 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5244 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
5245 void writeProperties(::mlir::DialectBytecodeWriter &writer);
5246 ::mlir::IntegerAttr getWeightAttr() {
5247 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(getProperties().weight);
5248 }
5249
5250 uint32_t getWeight();
5251 ::mlir::UnitAttr getNoPatternAttr() {
5252 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().noPattern);
5253 }
5254
5255 bool getNoPattern();
5256 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5257 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5258 }
5259
5260 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5261 void setWeightAttr(::mlir::IntegerAttr attr) {
5262 getProperties().weight = attr;
5263 }
5264
5265 void setWeight(uint32_t attrValue);
5266 void setNoPatternAttr(::mlir::UnitAttr attr) {
5267 getProperties().noPattern = attr;
5268 }
5269
5270 void setNoPattern(bool attrValue);
5271 void setBoundVarNamesAttr(::mlir::ArrayAttr attr) {
5272 getProperties().boundVarNames = attr;
5273 }
5274
5275 ::mlir::Attribute removeNoPatternAttr() {
5276 auto &attr = getProperties().noPattern;
5277 attr = {};
5278 return attr;
5279 }
5280
5281 ::mlir::Attribute removeBoundVarNamesAttr() {
5282 auto &attr = getProperties().boundVarNames;
5283 attr = {};
5284 return attr;
5285 }
5286
5287 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);
5288 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
5289 ::llvm::LogicalResult verifyInvariantsImpl();
5290 ::llvm::LogicalResult verifyInvariants();
5291 ::llvm::LogicalResult verify();
5292 ::llvm::LogicalResult verifyRegions();
5293 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);
5294 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5295 void print(::mlir::OpAsmPrinter &_odsPrinter);
5296private:
5297 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
5298 return getAttributeNameForIndex((*this)->getName(), index);
5299 }
5300
5301 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
5302 assert(index < 3 && "invalid attribute index");
5303 assert(name.getStringRef() == getOperationName() && "invalid operation name");
5304 assert(name.isRegistered() && "Operation isn't registered, missing a "
5305 "dependent dialect loading?");
5306 return name.getAttributeNames()[index];
5307 }
5308
5309public:
5310};
5311} // namespace smt
5312} // namespace llzk
5313MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ExistsOp)
5314
5315namespace llzk {
5316namespace smt {
5317
5318//===----------------------------------------------------------------------===//
5319// ::llzk::smt::ExtractOp declarations
5320//===----------------------------------------------------------------------===//
5321
5322namespace detail {
5324public:
5325 struct Properties {
5326 using lowBitTy = ::mlir::IntegerAttr;
5328
5329 auto getLowBit() {
5330 auto &propStorage = this->lowBit;
5331 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
5332 }
5333 void setLowBit(const ::mlir::IntegerAttr &propValue) {
5334 this->lowBit = propValue;
5335 }
5336 bool operator==(const Properties &rhs) const {
5337 return
5338 rhs.lowBit == this->lowBit &&
5339 true;
5340 }
5341 bool operator!=(const Properties &rhs) const {
5342 return !(*this == rhs);
5343 }
5344 };
5345protected:
5346 ::mlir::DictionaryAttr odsAttrs;
5347 ::std::optional<::mlir::OperationName> odsOpName;
5349 ::mlir::RegionRange odsRegions;
5350public:
5351 ExtractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
5352 odsOpName.emplace("smt.bv.extract", odsAttrs.getContext());
5353 }
5354
5356
5357 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5358 return {index, 1};
5359 }
5360
5362 return properties;
5363 }
5364
5365 ::mlir::DictionaryAttr getAttributes() {
5366 return odsAttrs;
5367 }
5368
5369 ::mlir::IntegerAttr getLowBitAttr() {
5370 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().lowBit);
5371 return attr;
5372 }
5373
5374 uint32_t getLowBit();
5375};
5376} // namespace detail
5377template <typename RangeT>
5379 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5381public:
5382 ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5383
5384 ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ExtractOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
5385
5386 ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ExtractOpGenericAdaptor(values, attrs, Properties{}, {}) {}
5387
5388 ExtractOpGenericAdaptor(RangeT values, const ExtractOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5389
5390 template <typename LateInst = ExtractOp, typename = std::enable_if_t<std::is_same_v<LateInst, ExtractOp>>>
5391 ExtractOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5392
5393 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5394 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5395 }
5396
5397 RangeT getODSOperands(unsigned index) {
5398 auto valueRange = getODSOperandIndexAndLength(index);
5399 return {std::next(odsOperands.begin(), valueRange.first),
5400 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5401 }
5402
5403 ValueT getInput() {
5404 return (*getODSOperands(0).begin());
5405 }
5406
5407 RangeT getOperands() {
5408 return odsOperands;
5409 }
5410
5411private:
5412 RangeT odsOperands;
5413};
5414class ExtractOpAdaptor : public ExtractOpGenericAdaptor<::mlir::ValueRange> {
5415public:
5418
5419 ::llvm::LogicalResult verify(::mlir::Location loc);
5420};
5421class 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> {
5422public:
5423 using Op::Op;
5424 using Op::print;
5426 template <typename RangeT>
5430 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5431 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("lowBit")};
5432 return ::llvm::ArrayRef(attrNames);
5433 }
5434
5435 ::mlir::StringAttr getLowBitAttrName() {
5436 return getAttributeNameForIndex(0);
5437 }
5438
5439 static ::mlir::StringAttr getLowBitAttrName(::mlir::OperationName name) {
5440 return getAttributeNameForIndex(name, 0);
5441 }
5442
5443 static constexpr ::llvm::StringLiteral getOperationName() {
5444 return ::llvm::StringLiteral("smt.bv.extract");
5445 }
5446
5447 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5448 return {index, 1};
5449 }
5450
5451 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5452 auto valueRange = getODSOperandIndexAndLength(index);
5453 return {std::next(getOperation()->operand_begin(), valueRange.first),
5454 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5455 }
5456
5457 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
5458 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
5459 }
5460
5461 ::mlir::OpOperand &getInputMutable() {
5462 auto range = getODSOperandIndexAndLength(0);
5463 return getOperation()->getOpOperand(range.first);
5464 }
5465
5466 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5467 return {index, 1};
5468 }
5469
5470 ::mlir::Operation::result_range getODSResults(unsigned index) {
5471 auto valueRange = getODSResultIndexAndLength(index);
5472 return {std::next(getOperation()->result_begin(), valueRange.first),
5473 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5474 }
5475
5476 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
5477 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
5478 }
5479
5480 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5481 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
5482 static llvm::hash_code computePropertiesHash(const Properties &prop);
5483 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
5484 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
5485 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
5486 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5487 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
5488 void writeProperties(::mlir::DialectBytecodeWriter &writer);
5489 ::mlir::IntegerAttr getLowBitAttr() {
5490 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().lowBit);
5491 }
5492
5493 uint32_t getLowBit();
5494 void setLowBitAttr(::mlir::IntegerAttr attr) {
5495 getProperties().lowBit = attr;
5496 }
5497
5498 void setLowBit(uint32_t attrValue);
5499 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr lowBit, ::mlir::Value input);
5500 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr lowBit, ::mlir::Value input);
5501 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, uint32_t lowBit, ::mlir::Value input);
5502 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, uint32_t lowBit, ::mlir::Value input);
5503 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5504 ::llvm::LogicalResult verifyInvariantsImpl();
5505 ::llvm::LogicalResult verifyInvariants();
5506 ::llvm::LogicalResult verify();
5507 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5508 void print(::mlir::OpAsmPrinter &_odsPrinter);
5509 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
5510private:
5511 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
5512 return getAttributeNameForIndex((*this)->getName(), index);
5513 }
5514
5515 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
5516 assert(index < 1 && "invalid attribute index");
5517 assert(name.getStringRef() == getOperationName() && "invalid operation name");
5518 assert(name.isRegistered() && "Operation isn't registered, missing a "
5519 "dependent dialect loading?");
5520 return name.getAttributeNames()[index];
5521 }
5522
5523public:
5524};
5525} // namespace smt
5526} // namespace llzk
5527MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ExtractOp)
5528
5529namespace llzk {
5530namespace smt {
5531
5532//===----------------------------------------------------------------------===//
5533// ::llzk::smt::ForallOp declarations
5534//===----------------------------------------------------------------------===//
5535
5536namespace detail {
5538public:
5539 struct Properties {
5540 using boundVarNamesTy = ::mlir::ArrayAttr;
5542
5544 auto &propStorage = this->boundVarNames;
5545 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
5546 }
5547 void setBoundVarNames(const ::mlir::ArrayAttr &propValue) {
5548 this->boundVarNames = propValue;
5549 }
5550 using noPatternTy = ::mlir::UnitAttr;
5552
5554 auto &propStorage = this->noPattern;
5555 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
5556 }
5557 void setNoPattern(const ::mlir::UnitAttr &propValue) {
5558 this->noPattern = propValue;
5559 }
5560 using weightTy = ::mlir::IntegerAttr;
5562
5563 auto getWeight() {
5564 auto &propStorage = this->weight;
5565 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(propStorage);
5566 }
5567 void setWeight(const ::mlir::IntegerAttr &propValue) {
5568 this->weight = propValue;
5569 }
5570 bool operator==(const Properties &rhs) const {
5571 return
5572 rhs.boundVarNames == this->boundVarNames &&
5573 rhs.noPattern == this->noPattern &&
5574 rhs.weight == this->weight &&
5575 true;
5576 }
5577 bool operator!=(const Properties &rhs) const {
5578 return !(*this == rhs);
5579 }
5580 };
5581protected:
5582 ::mlir::DictionaryAttr odsAttrs;
5583 ::std::optional<::mlir::OperationName> odsOpName;
5585 ::mlir::RegionRange odsRegions;
5586public:
5587 ForallOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
5588 odsOpName.emplace("smt.forall", odsAttrs.getContext());
5589 }
5590
5592
5593 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5594 return {index, 1};
5595 }
5596
5598 return properties;
5599 }
5600
5601 ::mlir::DictionaryAttr getAttributes() {
5602 return odsAttrs;
5603 }
5604
5605 ::mlir::IntegerAttr getWeightAttr();
5606 uint32_t getWeight();
5607 ::mlir::UnitAttr getNoPatternAttr();
5608 bool getNoPattern();
5609 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5610 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5611 return attr;
5612 }
5613
5614 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5615 ::mlir::Region &getBody() {
5616 return *odsRegions[0];
5617 }
5618
5619 ::mlir::RegionRange getPatterns() {
5620 return odsRegions.drop_front(1);
5621 }
5622
5623 ::mlir::RegionRange getRegions() {
5624 return odsRegions;
5625 }
5626
5627};
5628} // namespace detail
5629template <typename RangeT>
5631 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5633public:
5634 ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5635
5636 ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ForallOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
5637
5638 ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ForallOpGenericAdaptor(values, attrs, Properties{}, {}) {}
5639
5640 ForallOpGenericAdaptor(RangeT values, const ForallOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5641
5642 template <typename LateInst = ForallOp, typename = std::enable_if_t<std::is_same_v<LateInst, ForallOp>>>
5643 ForallOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5644
5645 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5646 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5647 }
5648
5649 RangeT getODSOperands(unsigned index) {
5650 auto valueRange = getODSOperandIndexAndLength(index);
5651 return {std::next(odsOperands.begin(), valueRange.first),
5652 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5653 }
5654
5655 RangeT getOperands() {
5656 return odsOperands;
5657 }
5658
5659private:
5660 RangeT odsOperands;
5661};
5662class ForallOpAdaptor : public ForallOpGenericAdaptor<::mlir::ValueRange> {
5663public:
5666
5667 ::llvm::LogicalResult verify(::mlir::Location loc);
5668};
5669class 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> {
5670public:
5671 using Op::Op;
5672 using Op::print;
5674 template <typename RangeT>
5678 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5679 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("boundVarNames"), ::llvm::StringRef("noPattern"), ::llvm::StringRef("weight")};
5680 return ::llvm::ArrayRef(attrNames);
5681 }
5682
5683 ::mlir::StringAttr getBoundVarNamesAttrName() {
5684 return getAttributeNameForIndex(0);
5685 }
5686
5687 static ::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name) {
5688 return getAttributeNameForIndex(name, 0);
5689 }
5690
5691 ::mlir::StringAttr getNoPatternAttrName() {
5692 return getAttributeNameForIndex(1);
5693 }
5694
5695 static ::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name) {
5696 return getAttributeNameForIndex(name, 1);
5697 }
5698
5699 ::mlir::StringAttr getWeightAttrName() {
5700 return getAttributeNameForIndex(2);
5701 }
5702
5703 static ::mlir::StringAttr getWeightAttrName(::mlir::OperationName name) {
5704 return getAttributeNameForIndex(name, 2);
5705 }
5706
5707 static constexpr ::llvm::StringLiteral getOperationName() {
5708 return ::llvm::StringLiteral("smt.forall");
5709 }
5710
5711 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5712 return {index, 1};
5713 }
5714
5715 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5716 auto valueRange = getODSOperandIndexAndLength(index);
5717 return {std::next(getOperation()->operand_begin(), valueRange.first),
5718 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5719 }
5720
5721 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5722 return {index, 1};
5723 }
5724
5725 ::mlir::Operation::result_range getODSResults(unsigned index) {
5726 auto valueRange = getODSResultIndexAndLength(index);
5727 return {std::next(getOperation()->result_begin(), valueRange.first),
5728 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5729 }
5730
5731 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5732 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5733 }
5734
5735 ::mlir::Region &getBody() {
5736 return (*this)->getRegion(0);
5737 }
5738
5739 ::mlir::MutableArrayRef<::mlir::Region> getPatterns() {
5740 return (*this)->getRegions().drop_front(1);
5741 }
5742
5743 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5744 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
5745 static llvm::hash_code computePropertiesHash(const Properties &prop);
5746 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
5747 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
5748 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
5749 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
5750 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
5751 void writeProperties(::mlir::DialectBytecodeWriter &writer);
5752 ::mlir::IntegerAttr getWeightAttr() {
5753 return ::llvm::dyn_cast_or_null<::mlir::IntegerAttr>(getProperties().weight);
5754 }
5755
5756 uint32_t getWeight();
5757 ::mlir::UnitAttr getNoPatternAttr() {
5758 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().noPattern);
5759 }
5760
5761 bool getNoPattern();
5762 ::mlir::ArrayAttr getBoundVarNamesAttr() {
5763 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().boundVarNames);
5764 }
5765
5766 ::std::optional< ::mlir::ArrayAttr > getBoundVarNames();
5767 void setWeightAttr(::mlir::IntegerAttr attr) {
5768 getProperties().weight = attr;
5769 }
5770
5771 void setWeight(uint32_t attrValue);
5772 void setNoPatternAttr(::mlir::UnitAttr attr) {
5773 getProperties().noPattern = attr;
5774 }
5775
5776 void setNoPattern(bool attrValue);
5777 void setBoundVarNamesAttr(::mlir::ArrayAttr attr) {
5778 getProperties().boundVarNames = attr;
5779 }
5780
5781 ::mlir::Attribute removeNoPatternAttr() {
5782 auto &attr = getProperties().noPattern;
5783 attr = {};
5784 return attr;
5785 }
5786
5787 ::mlir::Attribute removeBoundVarNamesAttr() {
5788 auto &attr = getProperties().boundVarNames;
5789 attr = {};
5790 return attr;
5791 }
5792
5793 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);
5794 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
5795 ::llvm::LogicalResult verifyInvariantsImpl();
5796 ::llvm::LogicalResult verifyInvariants();
5797 ::llvm::LogicalResult verify();
5798 ::llvm::LogicalResult verifyRegions();
5799 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);
5800 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5801 void print(::mlir::OpAsmPrinter &_odsPrinter);
5802private:
5803 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
5804 return getAttributeNameForIndex((*this)->getName(), index);
5805 }
5806
5807 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
5808 assert(index < 3 && "invalid attribute index");
5809 assert(name.getStringRef() == getOperationName() && "invalid operation name");
5810 assert(name.isRegistered() && "Operation isn't registered, missing a "
5811 "dependent dialect loading?");
5812 return name.getAttributeNames()[index];
5813 }
5814
5815public:
5816};
5817} // namespace smt
5818} // namespace llzk
5819MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ForallOp)
5820
5821namespace llzk {
5822namespace smt {
5823
5824//===----------------------------------------------------------------------===//
5825// ::llzk::smt::ImpliesOp declarations
5826//===----------------------------------------------------------------------===//
5827
5828namespace detail {
5830public:
5831protected:
5832 ::mlir::DictionaryAttr odsAttrs;
5833 ::std::optional<::mlir::OperationName> odsOpName;
5834 ::mlir::RegionRange odsRegions;
5835public:
5836 ImpliesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
5837 odsOpName.emplace("smt.implies", odsAttrs.getContext());
5838 }
5839
5840 ImpliesOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
5841
5842 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5843 return {index, 1};
5844 }
5845
5846 ::mlir::DictionaryAttr getAttributes() {
5847 return odsAttrs;
5848 }
5849
5850};
5851} // namespace detail
5852template <typename RangeT>
5854 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
5856public:
5857 ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
5858
5859 ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ImpliesOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
5860
5861 ImpliesOpGenericAdaptor(RangeT values, const ImpliesOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
5862
5863 template <typename LateInst = ImpliesOp, typename = std::enable_if_t<std::is_same_v<LateInst, ImpliesOp>>>
5864 ImpliesOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
5865
5866 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5867 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
5868 }
5869
5870 RangeT getODSOperands(unsigned index) {
5871 auto valueRange = getODSOperandIndexAndLength(index);
5872 return {std::next(odsOperands.begin(), valueRange.first),
5873 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
5874 }
5875
5876 ValueT getLhs() {
5877 return (*getODSOperands(0).begin());
5878 }
5879
5880 ValueT getRhs() {
5881 return (*getODSOperands(1).begin());
5882 }
5883
5884 RangeT getOperands() {
5885 return odsOperands;
5886 }
5887
5888private:
5889 RangeT odsOperands;
5890};
5891class ImpliesOpAdaptor : public ImpliesOpGenericAdaptor<::mlir::ValueRange> {
5892public:
5895
5896 ::llvm::LogicalResult verify(::mlir::Location loc);
5897};
5898class 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> {
5899public:
5900 using Op::Op;
5901 using Op::print;
5903 template <typename RangeT>
5906 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
5907 return {};
5908 }
5909
5910 static constexpr ::llvm::StringLiteral getOperationName() {
5911 return ::llvm::StringLiteral("smt.implies");
5912 }
5913
5914 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
5915 return {index, 1};
5916 }
5917
5918 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
5919 auto valueRange = getODSOperandIndexAndLength(index);
5920 return {std::next(getOperation()->operand_begin(), valueRange.first),
5921 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
5922 }
5923
5924 ::mlir::TypedValue<::llzk::smt::BoolType> getLhs() {
5925 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
5926 }
5927
5928 ::mlir::TypedValue<::llzk::smt::BoolType> getRhs() {
5929 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(1).begin());
5930 }
5931
5932 ::mlir::OpOperand &getLhsMutable() {
5933 auto range = getODSOperandIndexAndLength(0);
5934 return getOperation()->getOpOperand(range.first);
5935 }
5936
5937 ::mlir::OpOperand &getRhsMutable() {
5938 auto range = getODSOperandIndexAndLength(1);
5939 return getOperation()->getOpOperand(range.first);
5940 }
5941
5942 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
5943 return {index, 1};
5944 }
5945
5946 ::mlir::Operation::result_range getODSResults(unsigned index) {
5947 auto valueRange = getODSResultIndexAndLength(index);
5948 return {std::next(getOperation()->result_begin(), valueRange.first),
5949 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
5950 }
5951
5952 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
5953 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
5954 }
5955
5956 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
5957 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
5958 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
5959 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5960 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
5961 ::llvm::LogicalResult verifyInvariantsImpl();
5962 ::llvm::LogicalResult verifyInvariants();
5963 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);
5964 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
5965 void print(::mlir::OpAsmPrinter &_odsPrinter);
5966 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
5967public:
5968};
5969} // namespace smt
5970} // namespace llzk
5971MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ImpliesOp)
5972
5973namespace llzk {
5974namespace smt {
5975
5976//===----------------------------------------------------------------------===//
5977// ::llzk::smt::Int2BVOp declarations
5978//===----------------------------------------------------------------------===//
5979
5980namespace detail {
5982public:
5983protected:
5984 ::mlir::DictionaryAttr odsAttrs;
5985 ::std::optional<::mlir::OperationName> odsOpName;
5986 ::mlir::RegionRange odsRegions;
5987public:
5988 Int2BVOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
5989 odsOpName.emplace("smt.int2bv", odsAttrs.getContext());
5990 }
5991
5992 Int2BVOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
5993
5994 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
5995 return {index, 1};
5996 }
5997
5998 ::mlir::DictionaryAttr getAttributes() {
5999 return odsAttrs;
6000 }
6001
6002};
6003} // namespace detail
6004template <typename RangeT>
6006 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6008public:
6009 Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6010
6011 Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : Int2BVOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6012
6013 Int2BVOpGenericAdaptor(RangeT values, const Int2BVOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6014
6015 template <typename LateInst = Int2BVOp, typename = std::enable_if_t<std::is_same_v<LateInst, Int2BVOp>>>
6016 Int2BVOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6017
6018 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6019 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6020 }
6021
6022 RangeT getODSOperands(unsigned index) {
6023 auto valueRange = getODSOperandIndexAndLength(index);
6024 return {std::next(odsOperands.begin(), valueRange.first),
6025 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6026 }
6027
6028 ValueT getInput() {
6029 return (*getODSOperands(0).begin());
6030 }
6031
6032 RangeT getOperands() {
6033 return odsOperands;
6034 }
6035
6036private:
6037 RangeT odsOperands;
6038};
6039class Int2BVOpAdaptor : public Int2BVOpGenericAdaptor<::mlir::ValueRange> {
6040public:
6043
6044 ::llvm::LogicalResult verify(::mlir::Location loc);
6045};
6046class 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> {
6047public:
6048 using Op::Op;
6049 using Op::print;
6051 template <typename RangeT>
6054 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6055 return {};
6056 }
6057
6058 static constexpr ::llvm::StringLiteral getOperationName() {
6059 return ::llvm::StringLiteral("smt.int2bv");
6060 }
6061
6062 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6063 return {index, 1};
6064 }
6065
6066 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6067 auto valueRange = getODSOperandIndexAndLength(index);
6068 return {std::next(getOperation()->operand_begin(), valueRange.first),
6069 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6070 }
6071
6072 ::mlir::TypedValue<::llzk::smt::IntType> getInput() {
6073 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6074 }
6075
6076 ::mlir::OpOperand &getInputMutable() {
6077 auto range = getODSOperandIndexAndLength(0);
6078 return getOperation()->getOpOperand(range.first);
6079 }
6080
6081 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6082 return {index, 1};
6083 }
6084
6085 ::mlir::Operation::result_range getODSResults(unsigned index) {
6086 auto valueRange = getODSResultIndexAndLength(index);
6087 return {std::next(getOperation()->result_begin(), valueRange.first),
6088 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6089 }
6090
6091 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
6092 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
6093 }
6094
6095 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
6096 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
6097 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6098 ::llvm::LogicalResult verifyInvariantsImpl();
6099 ::llvm::LogicalResult verifyInvariants();
6100 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6101 void print(::mlir::OpAsmPrinter &_odsPrinter);
6102 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6103public:
6104};
6105} // namespace smt
6106} // namespace llzk
6107MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::Int2BVOp)
6108
6109namespace llzk {
6110namespace smt {
6111
6112//===----------------------------------------------------------------------===//
6113// ::llzk::smt::IntAbsOp declarations
6114//===----------------------------------------------------------------------===//
6115
6116namespace detail {
6118public:
6119protected:
6120 ::mlir::DictionaryAttr odsAttrs;
6121 ::std::optional<::mlir::OperationName> odsOpName;
6122 ::mlir::RegionRange odsRegions;
6123public:
6124 IntAbsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6125 odsOpName.emplace("smt.int.abs", odsAttrs.getContext());
6126 }
6127
6128 IntAbsOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6129
6130 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6131 return {index, 1};
6132 }
6133
6134 ::mlir::DictionaryAttr getAttributes() {
6135 return odsAttrs;
6136 }
6137
6138};
6139} // namespace detail
6140template <typename RangeT>
6142 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6144public:
6145 IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6146
6147 IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntAbsOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6148
6149 IntAbsOpGenericAdaptor(RangeT values, const IntAbsOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6150
6151 template <typename LateInst = IntAbsOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntAbsOp>>>
6152 IntAbsOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6153
6154 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6155 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6156 }
6157
6158 RangeT getODSOperands(unsigned index) {
6159 auto valueRange = getODSOperandIndexAndLength(index);
6160 return {std::next(odsOperands.begin(), valueRange.first),
6161 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6162 }
6163
6164 ValueT getInput() {
6165 return (*getODSOperands(0).begin());
6166 }
6167
6168 RangeT getOperands() {
6169 return odsOperands;
6170 }
6171
6172private:
6173 RangeT odsOperands;
6174};
6175class IntAbsOpAdaptor : public IntAbsOpGenericAdaptor<::mlir::ValueRange> {
6176public:
6179
6180 ::llvm::LogicalResult verify(::mlir::Location loc);
6181};
6182class 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> {
6183public:
6184 using Op::Op;
6185 using Op::print;
6187 template <typename RangeT>
6190 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6191 return {};
6192 }
6193
6194 static constexpr ::llvm::StringLiteral getOperationName() {
6195 return ::llvm::StringLiteral("smt.int.abs");
6196 }
6197
6198 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6199 return {index, 1};
6200 }
6201
6202 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6203 auto valueRange = getODSOperandIndexAndLength(index);
6204 return {std::next(getOperation()->operand_begin(), valueRange.first),
6205 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6206 }
6207
6208 ::mlir::TypedValue<::llzk::smt::IntType> getInput() {
6209 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6210 }
6211
6212 ::mlir::OpOperand &getInputMutable() {
6213 auto range = getODSOperandIndexAndLength(0);
6214 return getOperation()->getOpOperand(range.first);
6215 }
6216
6217 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6218 return {index, 1};
6219 }
6220
6221 ::mlir::Operation::result_range getODSResults(unsigned index) {
6222 auto valueRange = getODSResultIndexAndLength(index);
6223 return {std::next(getOperation()->result_begin(), valueRange.first),
6224 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6225 }
6226
6227 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6228 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6229 }
6230
6231 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
6232 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
6233 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
6234 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6235 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6236 ::llvm::LogicalResult verifyInvariantsImpl();
6237 ::llvm::LogicalResult verifyInvariants();
6238 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);
6239 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6240 void print(::mlir::OpAsmPrinter &_odsPrinter);
6241 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6242public:
6243};
6244} // namespace smt
6245} // namespace llzk
6246MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntAbsOp)
6247
6248namespace llzk {
6249namespace smt {
6250
6251//===----------------------------------------------------------------------===//
6252// ::llzk::smt::IntAddOp declarations
6253//===----------------------------------------------------------------------===//
6254
6255namespace detail {
6257public:
6258protected:
6259 ::mlir::DictionaryAttr odsAttrs;
6260 ::std::optional<::mlir::OperationName> odsOpName;
6261 ::mlir::RegionRange odsRegions;
6262public:
6263 IntAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6264 odsOpName.emplace("smt.int.add", odsAttrs.getContext());
6265 }
6266
6267 IntAddOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6268
6269 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
6270 ::mlir::DictionaryAttr getAttributes() {
6271 return odsAttrs;
6272 }
6273
6274};
6275} // namespace detail
6276template <typename RangeT>
6278 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6280public:
6281 IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6282
6283 IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntAddOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6284
6285 IntAddOpGenericAdaptor(RangeT values, const IntAddOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6286
6287 template <typename LateInst = IntAddOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntAddOp>>>
6288 IntAddOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6289
6290 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6291 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6292 }
6293
6294 RangeT getODSOperands(unsigned index) {
6295 auto valueRange = getODSOperandIndexAndLength(index);
6296 return {std::next(odsOperands.begin(), valueRange.first),
6297 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6298 }
6299
6300 RangeT getInputs() {
6301 return getODSOperands(0);
6302 }
6303
6304 RangeT getOperands() {
6305 return odsOperands;
6306 }
6307
6308private:
6309 RangeT odsOperands;
6310};
6311class IntAddOpAdaptor : public IntAddOpGenericAdaptor<::mlir::ValueRange> {
6312public:
6315
6316 ::llvm::LogicalResult verify(::mlir::Location loc);
6317};
6318class 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> {
6319public:
6320 using Op::Op;
6321 using Op::print;
6323 template <typename RangeT>
6326 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6327 return {};
6328 }
6329
6330 static constexpr ::llvm::StringLiteral getOperationName() {
6331 return ::llvm::StringLiteral("smt.int.add");
6332 }
6333
6334 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
6335 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6336 auto valueRange = getODSOperandIndexAndLength(index);
6337 return {std::next(getOperation()->operand_begin(), valueRange.first),
6338 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6339 }
6340
6341 ::mlir::Operation::operand_range getInputs() {
6342 return getODSOperands(0);
6343 }
6344
6345 ::mlir::MutableOperandRange getInputsMutable();
6346 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6347 return {index, 1};
6348 }
6349
6350 ::mlir::Operation::result_range getODSResults(unsigned index) {
6351 auto valueRange = getODSResultIndexAndLength(index);
6352 return {std::next(getOperation()->result_begin(), valueRange.first),
6353 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6354 }
6355
6356 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6357 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6358 }
6359
6360 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
6361 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6362 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6363 ::llvm::LogicalResult verifyInvariantsImpl();
6364 ::llvm::LogicalResult verifyInvariants();
6365 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);
6366 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6367 void print(::mlir::OpAsmPrinter &_odsPrinter);
6368 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6369public:
6370};
6371} // namespace smt
6372} // namespace llzk
6373MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntAddOp)
6374
6375namespace llzk {
6376namespace smt {
6377
6378//===----------------------------------------------------------------------===//
6379// ::llzk::smt::IntCmpOp declarations
6380//===----------------------------------------------------------------------===//
6381
6382namespace detail {
6384public:
6385 struct Properties {
6388
6389 auto getPred() {
6390 auto &propStorage = this->pred;
6391 return ::llvm::cast<::llzk::smt::IntPredicateAttr>(propStorage);
6392 }
6393 void setPred(const ::llzk::smt::IntPredicateAttr &propValue) {
6394 this->pred = propValue;
6395 }
6396 bool operator==(const Properties &rhs) const {
6397 return
6398 rhs.pred == this->pred &&
6399 true;
6400 }
6401 bool operator!=(const Properties &rhs) const {
6402 return !(*this == rhs);
6403 }
6404 };
6405protected:
6406 ::mlir::DictionaryAttr odsAttrs;
6407 ::std::optional<::mlir::OperationName> odsOpName;
6409 ::mlir::RegionRange odsRegions;
6410public:
6411 IntCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
6412 odsOpName.emplace("smt.int.cmp", odsAttrs.getContext());
6413 }
6414
6416
6417 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6418 return {index, 1};
6419 }
6420
6422 return properties;
6423 }
6424
6425 ::mlir::DictionaryAttr getAttributes() {
6426 return odsAttrs;
6427 }
6428
6430 auto attr = ::llvm::cast<::llzk::smt::IntPredicateAttr>(getProperties().pred);
6431 return attr;
6432 }
6433
6435};
6436} // namespace detail
6437template <typename RangeT>
6439 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6441public:
6442 IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6443
6444 IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntCmpOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
6445
6446 IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : IntCmpOpGenericAdaptor(values, attrs, Properties{}, {}) {}
6447
6448 IntCmpOpGenericAdaptor(RangeT values, const IntCmpOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6449
6450 template <typename LateInst = IntCmpOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntCmpOp>>>
6451 IntCmpOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6452
6453 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6454 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6455 }
6456
6457 RangeT getODSOperands(unsigned index) {
6458 auto valueRange = getODSOperandIndexAndLength(index);
6459 return {std::next(odsOperands.begin(), valueRange.first),
6460 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6461 }
6462
6463 ValueT getLhs() {
6464 return (*getODSOperands(0).begin());
6465 }
6466
6467 ValueT getRhs() {
6468 return (*getODSOperands(1).begin());
6469 }
6470
6471 RangeT getOperands() {
6472 return odsOperands;
6473 }
6474
6475private:
6476 RangeT odsOperands;
6477};
6478class IntCmpOpAdaptor : public IntCmpOpGenericAdaptor<::mlir::ValueRange> {
6479public:
6482
6483 ::llvm::LogicalResult verify(::mlir::Location loc);
6484};
6485class 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> {
6486public:
6487 using Op::Op;
6488 using Op::print;
6490 template <typename RangeT>
6494 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6495 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("pred")};
6496 return ::llvm::ArrayRef(attrNames);
6497 }
6498
6499 ::mlir::StringAttr getPredAttrName() {
6500 return getAttributeNameForIndex(0);
6501 }
6502
6503 static ::mlir::StringAttr getPredAttrName(::mlir::OperationName name) {
6504 return getAttributeNameForIndex(name, 0);
6505 }
6506
6507 static constexpr ::llvm::StringLiteral getOperationName() {
6508 return ::llvm::StringLiteral("smt.int.cmp");
6509 }
6510
6511 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6512 return {index, 1};
6513 }
6514
6515 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6516 auto valueRange = getODSOperandIndexAndLength(index);
6517 return {std::next(getOperation()->operand_begin(), valueRange.first),
6518 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6519 }
6520
6521 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
6522 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6523 }
6524
6525 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
6526 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
6527 }
6528
6529 ::mlir::OpOperand &getLhsMutable() {
6530 auto range = getODSOperandIndexAndLength(0);
6531 return getOperation()->getOpOperand(range.first);
6532 }
6533
6534 ::mlir::OpOperand &getRhsMutable() {
6535 auto range = getODSOperandIndexAndLength(1);
6536 return getOperation()->getOpOperand(range.first);
6537 }
6538
6539 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6540 return {index, 1};
6541 }
6542
6543 ::mlir::Operation::result_range getODSResults(unsigned index) {
6544 auto valueRange = getODSResultIndexAndLength(index);
6545 return {std::next(getOperation()->result_begin(), valueRange.first),
6546 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6547 }
6548
6549 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
6550 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
6551 }
6552
6553 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6554 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
6555 static llvm::hash_code computePropertiesHash(const Properties &prop);
6556 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
6557 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
6558 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
6559 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6560 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
6561 void writeProperties(::mlir::DialectBytecodeWriter &writer);
6563 return ::llvm::cast<::llzk::smt::IntPredicateAttr>(getProperties().pred);
6564 }
6565
6568 getProperties().pred = attr;
6569 }
6570
6571 void setPred(::llzk::smt::IntPredicate attrValue);
6572 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
6573 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
6574 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::IntPredicateAttr pred, ::mlir::Value lhs, ::mlir::Value rhs);
6575 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::smt::IntPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
6576 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::IntPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
6577 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::IntPredicate pred, ::mlir::Value lhs, ::mlir::Value rhs);
6578 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6579 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6580 ::llvm::LogicalResult verifyInvariantsImpl();
6581 ::llvm::LogicalResult verifyInvariants();
6582 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);
6583 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6584 void print(::mlir::OpAsmPrinter &_odsPrinter);
6585 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6586private:
6587 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
6588 return getAttributeNameForIndex((*this)->getName(), index);
6589 }
6590
6591 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
6592 assert(index < 1 && "invalid attribute index");
6593 assert(name.getStringRef() == getOperationName() && "invalid operation name");
6594 assert(name.isRegistered() && "Operation isn't registered, missing a "
6595 "dependent dialect loading?");
6596 return name.getAttributeNames()[index];
6597 }
6598
6599public:
6600};
6601} // namespace smt
6602} // namespace llzk
6603MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntCmpOp)
6604
6605namespace llzk {
6606namespace smt {
6607
6608//===----------------------------------------------------------------------===//
6609// ::llzk::smt::IntConstantOp declarations
6610//===----------------------------------------------------------------------===//
6611
6612namespace detail {
6614public:
6615 struct Properties {
6616 using valueTy = ::mlir::IntegerAttr;
6618
6619 auto getValue() {
6620 auto &propStorage = this->value;
6621 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
6622 }
6623 void setValue(const ::mlir::IntegerAttr &propValue) {
6624 this->value = propValue;
6625 }
6626 bool operator==(const Properties &rhs) const {
6627 return
6628 rhs.value == this->value &&
6629 true;
6630 }
6631 bool operator!=(const Properties &rhs) const {
6632 return !(*this == rhs);
6633 }
6634 };
6635protected:
6636 ::mlir::DictionaryAttr odsAttrs;
6637 ::std::optional<::mlir::OperationName> odsOpName;
6639 ::mlir::RegionRange odsRegions;
6640public:
6641 IntConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
6642 odsOpName.emplace("smt.int.constant", odsAttrs.getContext());
6643 }
6644
6646
6647 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6648 return {index, 1};
6649 }
6650
6652 return properties;
6653 }
6654
6655 ::mlir::DictionaryAttr getAttributes() {
6656 return odsAttrs;
6657 }
6658
6659 ::mlir::IntegerAttr getValueAttr() {
6660 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().value);
6661 return attr;
6662 }
6663
6664 ::mlir::APInt getValue();
6665};
6666} // namespace detail
6667template <typename RangeT>
6669 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6671public:
6672 IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6673
6674 IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntConstantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
6675
6676 IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : IntConstantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
6677
6678 IntConstantOpGenericAdaptor(RangeT values, const IntConstantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6679
6680 template <typename LateInst = IntConstantOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntConstantOp>>>
6681 IntConstantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6682
6683 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6684 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6685 }
6686
6687 RangeT getODSOperands(unsigned index) {
6688 auto valueRange = getODSOperandIndexAndLength(index);
6689 return {std::next(odsOperands.begin(), valueRange.first),
6690 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6691 }
6692
6693 RangeT getOperands() {
6694 return odsOperands;
6695 }
6696
6697private:
6698 RangeT odsOperands;
6699};
6700class IntConstantOpAdaptor : public IntConstantOpGenericAdaptor<::mlir::ValueRange> {
6701public:
6704
6705 ::llvm::LogicalResult verify(::mlir::Location loc);
6706};
6707class 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> {
6708public:
6709 using Op::Op;
6710 using Op::print;
6712 template <typename RangeT>
6716 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6717 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("value")};
6718 return ::llvm::ArrayRef(attrNames);
6719 }
6720
6721 ::mlir::StringAttr getValueAttrName() {
6722 return getAttributeNameForIndex(0);
6723 }
6724
6725 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
6726 return getAttributeNameForIndex(name, 0);
6727 }
6728
6729 static constexpr ::llvm::StringLiteral getOperationName() {
6730 return ::llvm::StringLiteral("smt.int.constant");
6731 }
6732
6733 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6734 return {index, 1};
6735 }
6736
6737 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6738 auto valueRange = getODSOperandIndexAndLength(index);
6739 return {std::next(getOperation()->operand_begin(), valueRange.first),
6740 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6741 }
6742
6743 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6744 return {index, 1};
6745 }
6746
6747 ::mlir::Operation::result_range getODSResults(unsigned index) {
6748 auto valueRange = getODSResultIndexAndLength(index);
6749 return {std::next(getOperation()->result_begin(), valueRange.first),
6750 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6751 }
6752
6753 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6754 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6755 }
6756
6757 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6758 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
6759 static llvm::hash_code computePropertiesHash(const Properties &prop);
6760 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
6761 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
6762 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
6763 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
6764 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
6765 void writeProperties(::mlir::DialectBytecodeWriter &writer);
6766 ::mlir::IntegerAttr getValueAttr() {
6767 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().value);
6768 }
6769
6770 ::mlir::APInt getValue();
6771 void setValueAttr(::mlir::IntegerAttr attr) {
6772 getProperties().value = attr;
6773 }
6774
6775 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr value);
6776 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr value);
6777 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr value);
6778 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6779 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6780 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6781 void print(::mlir::OpAsmPrinter &p);
6782 ::llvm::LogicalResult verifyInvariantsImpl();
6783 ::llvm::LogicalResult verifyInvariants();
6784 ::mlir::OpFoldResult fold(FoldAdaptor adaptor);
6785 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);
6786 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
6787 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6788private:
6789 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
6790 return getAttributeNameForIndex((*this)->getName(), index);
6791 }
6792
6793 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
6794 assert(index < 1 && "invalid attribute index");
6795 assert(name.getStringRef() == getOperationName() && "invalid operation name");
6796 assert(name.isRegistered() && "Operation isn't registered, missing a "
6797 "dependent dialect loading?");
6798 return name.getAttributeNames()[index];
6799 }
6800
6801public:
6802};
6803} // namespace smt
6804} // namespace llzk
6805MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntConstantOp)
6806
6807namespace llzk {
6808namespace smt {
6809
6810//===----------------------------------------------------------------------===//
6811// ::llzk::smt::IntDivOp declarations
6812//===----------------------------------------------------------------------===//
6813
6814namespace detail {
6816public:
6817protected:
6818 ::mlir::DictionaryAttr odsAttrs;
6819 ::std::optional<::mlir::OperationName> odsOpName;
6820 ::mlir::RegionRange odsRegions;
6821public:
6822 IntDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6823 odsOpName.emplace("smt.int.div", odsAttrs.getContext());
6824 }
6825
6826 IntDivOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6827
6828 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6829 return {index, 1};
6830 }
6831
6832 ::mlir::DictionaryAttr getAttributes() {
6833 return odsAttrs;
6834 }
6835
6836};
6837} // namespace detail
6838template <typename RangeT>
6840 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6842public:
6843 IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6844
6845 IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntDivOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6846
6847 IntDivOpGenericAdaptor(RangeT values, const IntDivOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
6848
6849 template <typename LateInst = IntDivOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntDivOp>>>
6850 IntDivOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
6851
6852 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6853 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
6854 }
6855
6856 RangeT getODSOperands(unsigned index) {
6857 auto valueRange = getODSOperandIndexAndLength(index);
6858 return {std::next(odsOperands.begin(), valueRange.first),
6859 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
6860 }
6861
6862 ValueT getLhs() {
6863 return (*getODSOperands(0).begin());
6864 }
6865
6866 ValueT getRhs() {
6867 return (*getODSOperands(1).begin());
6868 }
6869
6870 RangeT getOperands() {
6871 return odsOperands;
6872 }
6873
6874private:
6875 RangeT odsOperands;
6876};
6877class IntDivOpAdaptor : public IntDivOpGenericAdaptor<::mlir::ValueRange> {
6878public:
6881
6882 ::llvm::LogicalResult verify(::mlir::Location loc);
6883};
6884class 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> {
6885public:
6886 using Op::Op;
6887 using Op::print;
6889 template <typename RangeT>
6892 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
6893 return {};
6894 }
6895
6896 static constexpr ::llvm::StringLiteral getOperationName() {
6897 return ::llvm::StringLiteral("smt.int.div");
6898 }
6899
6900 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
6901 return {index, 1};
6902 }
6903
6904 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
6905 auto valueRange = getODSOperandIndexAndLength(index);
6906 return {std::next(getOperation()->operand_begin(), valueRange.first),
6907 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
6908 }
6909
6910 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
6911 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
6912 }
6913
6914 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
6915 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
6916 }
6917
6918 ::mlir::OpOperand &getLhsMutable() {
6919 auto range = getODSOperandIndexAndLength(0);
6920 return getOperation()->getOpOperand(range.first);
6921 }
6922
6923 ::mlir::OpOperand &getRhsMutable() {
6924 auto range = getODSOperandIndexAndLength(1);
6925 return getOperation()->getOpOperand(range.first);
6926 }
6927
6928 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
6929 return {index, 1};
6930 }
6931
6932 ::mlir::Operation::result_range getODSResults(unsigned index) {
6933 auto valueRange = getODSResultIndexAndLength(index);
6934 return {std::next(getOperation()->result_begin(), valueRange.first),
6935 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
6936 }
6937
6938 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
6939 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
6940 }
6941
6942 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
6943 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
6944 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
6945 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6946 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
6947 ::llvm::LogicalResult verifyInvariantsImpl();
6948 ::llvm::LogicalResult verifyInvariants();
6949 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);
6950 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
6951 void print(::mlir::OpAsmPrinter &_odsPrinter);
6952 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
6953public:
6954};
6955} // namespace smt
6956} // namespace llzk
6957MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntDivOp)
6958
6959namespace llzk {
6960namespace smt {
6961
6962//===----------------------------------------------------------------------===//
6963// ::llzk::smt::IntModOp declarations
6964//===----------------------------------------------------------------------===//
6965
6966namespace detail {
6968public:
6969protected:
6970 ::mlir::DictionaryAttr odsAttrs;
6971 ::std::optional<::mlir::OperationName> odsOpName;
6972 ::mlir::RegionRange odsRegions;
6973public:
6974 IntModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
6975 odsOpName.emplace("smt.int.mod", odsAttrs.getContext());
6976 }
6977
6978 IntModOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
6979
6980 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
6981 return {index, 1};
6982 }
6983
6984 ::mlir::DictionaryAttr getAttributes() {
6985 return odsAttrs;
6986 }
6987
6988};
6989} // namespace detail
6990template <typename RangeT>
6992 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
6994public:
6995 IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
6996
6997 IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntModOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
6998
6999 IntModOpGenericAdaptor(RangeT values, const IntModOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7000
7001 template <typename LateInst = IntModOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntModOp>>>
7002 IntModOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7003
7004 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7005 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7006 }
7007
7008 RangeT getODSOperands(unsigned index) {
7009 auto valueRange = getODSOperandIndexAndLength(index);
7010 return {std::next(odsOperands.begin(), valueRange.first),
7011 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7012 }
7013
7014 ValueT getLhs() {
7015 return (*getODSOperands(0).begin());
7016 }
7017
7018 ValueT getRhs() {
7019 return (*getODSOperands(1).begin());
7020 }
7021
7022 RangeT getOperands() {
7023 return odsOperands;
7024 }
7025
7026private:
7027 RangeT odsOperands;
7028};
7029class IntModOpAdaptor : public IntModOpGenericAdaptor<::mlir::ValueRange> {
7030public:
7033
7034 ::llvm::LogicalResult verify(::mlir::Location loc);
7035};
7036class 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> {
7037public:
7038 using Op::Op;
7039 using Op::print;
7041 template <typename RangeT>
7044 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7045 return {};
7046 }
7047
7048 static constexpr ::llvm::StringLiteral getOperationName() {
7049 return ::llvm::StringLiteral("smt.int.mod");
7050 }
7051
7052 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7053 return {index, 1};
7054 }
7055
7056 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7057 auto valueRange = getODSOperandIndexAndLength(index);
7058 return {std::next(getOperation()->operand_begin(), valueRange.first),
7059 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7060 }
7061
7062 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
7063 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
7064 }
7065
7066 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
7067 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
7068 }
7069
7070 ::mlir::OpOperand &getLhsMutable() {
7071 auto range = getODSOperandIndexAndLength(0);
7072 return getOperation()->getOpOperand(range.first);
7073 }
7074
7075 ::mlir::OpOperand &getRhsMutable() {
7076 auto range = getODSOperandIndexAndLength(1);
7077 return getOperation()->getOpOperand(range.first);
7078 }
7079
7080 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7081 return {index, 1};
7082 }
7083
7084 ::mlir::Operation::result_range getODSResults(unsigned index) {
7085 auto valueRange = getODSResultIndexAndLength(index);
7086 return {std::next(getOperation()->result_begin(), valueRange.first),
7087 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7088 }
7089
7090 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7091 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7092 }
7093
7094 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
7095 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
7096 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
7097 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7098 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7099 ::llvm::LogicalResult verifyInvariantsImpl();
7100 ::llvm::LogicalResult verifyInvariants();
7101 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);
7102 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7103 void print(::mlir::OpAsmPrinter &_odsPrinter);
7104 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7105public:
7106};
7107} // namespace smt
7108} // namespace llzk
7109MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntModOp)
7110
7111namespace llzk {
7112namespace smt {
7113
7114//===----------------------------------------------------------------------===//
7115// ::llzk::smt::IntMulOp declarations
7116//===----------------------------------------------------------------------===//
7117
7118namespace detail {
7120public:
7121protected:
7122 ::mlir::DictionaryAttr odsAttrs;
7123 ::std::optional<::mlir::OperationName> odsOpName;
7124 ::mlir::RegionRange odsRegions;
7125public:
7126 IntMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7127 odsOpName.emplace("smt.int.mul", odsAttrs.getContext());
7128 }
7129
7130 IntMulOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7131
7132 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
7133 ::mlir::DictionaryAttr getAttributes() {
7134 return odsAttrs;
7135 }
7136
7137};
7138} // namespace detail
7139template <typename RangeT>
7141 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7143public:
7144 IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7145
7146 IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntMulOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7147
7148 IntMulOpGenericAdaptor(RangeT values, const IntMulOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7149
7150 template <typename LateInst = IntMulOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntMulOp>>>
7151 IntMulOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7152
7153 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7154 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7155 }
7156
7157 RangeT getODSOperands(unsigned index) {
7158 auto valueRange = getODSOperandIndexAndLength(index);
7159 return {std::next(odsOperands.begin(), valueRange.first),
7160 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7161 }
7162
7163 RangeT getInputs() {
7164 return getODSOperands(0);
7165 }
7166
7167 RangeT getOperands() {
7168 return odsOperands;
7169 }
7170
7171private:
7172 RangeT odsOperands;
7173};
7174class IntMulOpAdaptor : public IntMulOpGenericAdaptor<::mlir::ValueRange> {
7175public:
7178
7179 ::llvm::LogicalResult verify(::mlir::Location loc);
7180};
7181class 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> {
7182public:
7183 using Op::Op;
7184 using Op::print;
7186 template <typename RangeT>
7189 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7190 return {};
7191 }
7192
7193 static constexpr ::llvm::StringLiteral getOperationName() {
7194 return ::llvm::StringLiteral("smt.int.mul");
7195 }
7196
7197 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
7198 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7199 auto valueRange = getODSOperandIndexAndLength(index);
7200 return {std::next(getOperation()->operand_begin(), valueRange.first),
7201 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7202 }
7203
7204 ::mlir::Operation::operand_range getInputs() {
7205 return getODSOperands(0);
7206 }
7207
7208 ::mlir::MutableOperandRange getInputsMutable();
7209 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7210 return {index, 1};
7211 }
7212
7213 ::mlir::Operation::result_range getODSResults(unsigned index) {
7214 auto valueRange = getODSResultIndexAndLength(index);
7215 return {std::next(getOperation()->result_begin(), valueRange.first),
7216 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7217 }
7218
7219 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7220 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7221 }
7222
7223 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
7224 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7225 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7226 ::llvm::LogicalResult verifyInvariantsImpl();
7227 ::llvm::LogicalResult verifyInvariants();
7228 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);
7229 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7230 void print(::mlir::OpAsmPrinter &_odsPrinter);
7231 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7232public:
7233};
7234} // namespace smt
7235} // namespace llzk
7236MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntMulOp)
7237
7238namespace llzk {
7239namespace smt {
7240
7241//===----------------------------------------------------------------------===//
7242// ::llzk::smt::IntNegOp declarations
7243//===----------------------------------------------------------------------===//
7244
7245namespace detail {
7247public:
7248protected:
7249 ::mlir::DictionaryAttr odsAttrs;
7250 ::std::optional<::mlir::OperationName> odsOpName;
7251 ::mlir::RegionRange odsRegions;
7252public:
7253 IntNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7254 odsOpName.emplace("smt.int.neg", odsAttrs.getContext());
7255 }
7256
7257 IntNegOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7258
7259 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7260 return {index, 1};
7261 }
7262
7263 ::mlir::DictionaryAttr getAttributes() {
7264 return odsAttrs;
7265 }
7266
7267};
7268} // namespace detail
7269template <typename RangeT>
7271 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7273public:
7274 IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7275
7276 IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntNegOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7277
7278 IntNegOpGenericAdaptor(RangeT values, const IntNegOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7279
7280 template <typename LateInst = IntNegOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntNegOp>>>
7281 IntNegOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7282
7283 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7284 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7285 }
7286
7287 RangeT getODSOperands(unsigned index) {
7288 auto valueRange = getODSOperandIndexAndLength(index);
7289 return {std::next(odsOperands.begin(), valueRange.first),
7290 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7291 }
7292
7293 ValueT getInput() {
7294 return (*getODSOperands(0).begin());
7295 }
7296
7297 RangeT getOperands() {
7298 return odsOperands;
7299 }
7300
7301private:
7302 RangeT odsOperands;
7303};
7304class IntNegOpAdaptor : public IntNegOpGenericAdaptor<::mlir::ValueRange> {
7305public:
7308
7309 ::llvm::LogicalResult verify(::mlir::Location loc);
7310};
7311class 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> {
7312public:
7313 using Op::Op;
7314 using Op::print;
7316 template <typename RangeT>
7319 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7320 return {};
7321 }
7322
7323 static constexpr ::llvm::StringLiteral getOperationName() {
7324 return ::llvm::StringLiteral("smt.int.neg");
7325 }
7326
7327 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7328 return {index, 1};
7329 }
7330
7331 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7332 auto valueRange = getODSOperandIndexAndLength(index);
7333 return {std::next(getOperation()->operand_begin(), valueRange.first),
7334 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7335 }
7336
7337 ::mlir::TypedValue<::llzk::smt::IntType> getInput() {
7338 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
7339 }
7340
7341 ::mlir::OpOperand &getInputMutable() {
7342 auto range = getODSOperandIndexAndLength(0);
7343 return getOperation()->getOpOperand(range.first);
7344 }
7345
7346 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7347 return {index, 1};
7348 }
7349
7350 ::mlir::Operation::result_range getODSResults(unsigned index) {
7351 auto valueRange = getODSResultIndexAndLength(index);
7352 return {std::next(getOperation()->result_begin(), valueRange.first),
7353 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7354 }
7355
7356 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7357 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7358 }
7359
7360 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
7361 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
7362 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
7363 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7364 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7365 ::llvm::LogicalResult verifyInvariantsImpl();
7366 ::llvm::LogicalResult verifyInvariants();
7367 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);
7368 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7369 void print(::mlir::OpAsmPrinter &_odsPrinter);
7370 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7371public:
7372};
7373} // namespace smt
7374} // namespace llzk
7375MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntNegOp)
7376
7377namespace llzk {
7378namespace smt {
7379
7380//===----------------------------------------------------------------------===//
7381// ::llzk::smt::IntSubOp declarations
7382//===----------------------------------------------------------------------===//
7383
7384namespace detail {
7386public:
7387protected:
7388 ::mlir::DictionaryAttr odsAttrs;
7389 ::std::optional<::mlir::OperationName> odsOpName;
7390 ::mlir::RegionRange odsRegions;
7391public:
7392 IntSubOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7393 odsOpName.emplace("smt.int.sub", odsAttrs.getContext());
7394 }
7395
7396 IntSubOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7397
7398 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7399 return {index, 1};
7400 }
7401
7402 ::mlir::DictionaryAttr getAttributes() {
7403 return odsAttrs;
7404 }
7405
7406};
7407} // namespace detail
7408template <typename RangeT>
7410 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7412public:
7413 IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7414
7415 IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IntSubOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7416
7417 IntSubOpGenericAdaptor(RangeT values, const IntSubOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7418
7419 template <typename LateInst = IntSubOp, typename = std::enable_if_t<std::is_same_v<LateInst, IntSubOp>>>
7420 IntSubOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7421
7422 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7423 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7424 }
7425
7426 RangeT getODSOperands(unsigned index) {
7427 auto valueRange = getODSOperandIndexAndLength(index);
7428 return {std::next(odsOperands.begin(), valueRange.first),
7429 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7430 }
7431
7432 ValueT getLhs() {
7433 return (*getODSOperands(0).begin());
7434 }
7435
7436 ValueT getRhs() {
7437 return (*getODSOperands(1).begin());
7438 }
7439
7440 RangeT getOperands() {
7441 return odsOperands;
7442 }
7443
7444private:
7445 RangeT odsOperands;
7446};
7447class IntSubOpAdaptor : public IntSubOpGenericAdaptor<::mlir::ValueRange> {
7448public:
7451
7452 ::llvm::LogicalResult verify(::mlir::Location loc);
7453};
7454class 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> {
7455public:
7456 using Op::Op;
7457 using Op::print;
7459 template <typename RangeT>
7462 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7463 return {};
7464 }
7465
7466 static constexpr ::llvm::StringLiteral getOperationName() {
7467 return ::llvm::StringLiteral("smt.int.sub");
7468 }
7469
7470 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7471 return {index, 1};
7472 }
7473
7474 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7475 auto valueRange = getODSOperandIndexAndLength(index);
7476 return {std::next(getOperation()->operand_begin(), valueRange.first),
7477 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7478 }
7479
7480 ::mlir::TypedValue<::llzk::smt::IntType> getLhs() {
7481 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(0).begin());
7482 }
7483
7484 ::mlir::TypedValue<::llzk::smt::IntType> getRhs() {
7485 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSOperands(1).begin());
7486 }
7487
7488 ::mlir::OpOperand &getLhsMutable() {
7489 auto range = getODSOperandIndexAndLength(0);
7490 return getOperation()->getOpOperand(range.first);
7491 }
7492
7493 ::mlir::OpOperand &getRhsMutable() {
7494 auto range = getODSOperandIndexAndLength(1);
7495 return getOperation()->getOpOperand(range.first);
7496 }
7497
7498 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7499 return {index, 1};
7500 }
7501
7502 ::mlir::Operation::result_range getODSResults(unsigned index) {
7503 auto valueRange = getODSResultIndexAndLength(index);
7504 return {std::next(getOperation()->result_begin(), valueRange.first),
7505 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7506 }
7507
7508 ::mlir::TypedValue<::llzk::smt::IntType> getResult() {
7509 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::IntType>>(*getODSResults(0).begin());
7510 }
7511
7512 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs);
7513 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value lhs, ::mlir::Value rhs);
7514 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value lhs, ::mlir::Value rhs);
7515 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7516 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7517 ::llvm::LogicalResult verifyInvariantsImpl();
7518 ::llvm::LogicalResult verifyInvariants();
7519 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);
7520 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7521 void print(::mlir::OpAsmPrinter &_odsPrinter);
7522 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7523public:
7524};
7525} // namespace smt
7526} // namespace llzk
7527MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IntSubOp)
7528
7529namespace llzk {
7530namespace smt {
7531
7532//===----------------------------------------------------------------------===//
7533// ::llzk::smt::IteOp declarations
7534//===----------------------------------------------------------------------===//
7535
7536namespace detail {
7538public:
7539protected:
7540 ::mlir::DictionaryAttr odsAttrs;
7541 ::std::optional<::mlir::OperationName> odsOpName;
7542 ::mlir::RegionRange odsRegions;
7543public:
7544 IteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7545 odsOpName.emplace("smt.ite", odsAttrs.getContext());
7546 }
7547
7548 IteOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7549
7550 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7551 return {index, 1};
7552 }
7553
7554 ::mlir::DictionaryAttr getAttributes() {
7555 return odsAttrs;
7556 }
7557
7558};
7559} // namespace detail
7560template <typename RangeT>
7562 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7564public:
7565 IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7566
7567 IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : IteOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7568
7569 IteOpGenericAdaptor(RangeT values, const IteOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7570
7571 template <typename LateInst = IteOp, typename = std::enable_if_t<std::is_same_v<LateInst, IteOp>>>
7572 IteOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7573
7574 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7575 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7576 }
7577
7578 RangeT getODSOperands(unsigned index) {
7579 auto valueRange = getODSOperandIndexAndLength(index);
7580 return {std::next(odsOperands.begin(), valueRange.first),
7581 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7582 }
7583
7584 ValueT getCond() {
7585 return (*getODSOperands(0).begin());
7586 }
7587
7588 ValueT getThenValue() {
7589 return (*getODSOperands(1).begin());
7590 }
7591
7592 ValueT getElseValue() {
7593 return (*getODSOperands(2).begin());
7594 }
7595
7596 RangeT getOperands() {
7597 return odsOperands;
7598 }
7599
7600private:
7601 RangeT odsOperands;
7602};
7603class IteOpAdaptor : public IteOpGenericAdaptor<::mlir::ValueRange> {
7604public:
7606 IteOpAdaptor(IteOp op);
7607
7608 ::llvm::LogicalResult verify(::mlir::Location loc);
7609};
7610class 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> {
7611public:
7612 using Op::Op;
7613 using Op::print;
7615 template <typename RangeT>
7618 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7619 return {};
7620 }
7621
7622 static constexpr ::llvm::StringLiteral getOperationName() {
7623 return ::llvm::StringLiteral("smt.ite");
7624 }
7625
7626 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7627 return {index, 1};
7628 }
7629
7630 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7631 auto valueRange = getODSOperandIndexAndLength(index);
7632 return {std::next(getOperation()->operand_begin(), valueRange.first),
7633 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7634 }
7635
7636 ::mlir::TypedValue<::llzk::smt::BoolType> getCond() {
7637 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
7638 }
7639
7640 ::mlir::TypedValue<::mlir::Type> getThenValue() {
7641 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
7642 }
7643
7644 ::mlir::TypedValue<::mlir::Type> getElseValue() {
7645 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(2).begin());
7646 }
7647
7648 ::mlir::OpOperand &getCondMutable() {
7649 auto range = getODSOperandIndexAndLength(0);
7650 return getOperation()->getOpOperand(range.first);
7651 }
7652
7653 ::mlir::OpOperand &getThenValueMutable() {
7654 auto range = getODSOperandIndexAndLength(1);
7655 return getOperation()->getOpOperand(range.first);
7656 }
7657
7658 ::mlir::OpOperand &getElseValueMutable() {
7659 auto range = getODSOperandIndexAndLength(2);
7660 return getOperation()->getOpOperand(range.first);
7661 }
7662
7663 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7664 return {index, 1};
7665 }
7666
7667 ::mlir::Operation::result_range getODSResults(unsigned index) {
7668 auto valueRange = getODSResultIndexAndLength(index);
7669 return {std::next(getOperation()->result_begin(), valueRange.first),
7670 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7671 }
7672
7673 ::mlir::TypedValue<::mlir::Type> getResult() {
7674 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
7675 }
7676
7677 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue);
7678 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue);
7679 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value cond, ::mlir::Value thenValue, ::mlir::Value elseValue);
7680 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7681 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7682 ::llvm::LogicalResult verifyInvariantsImpl();
7683 ::llvm::LogicalResult verifyInvariants();
7684 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);
7685 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7686 void print(::mlir::OpAsmPrinter &_odsPrinter);
7687 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7688public:
7689};
7690} // namespace smt
7691} // namespace llzk
7692MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::IteOp)
7693
7694namespace llzk {
7695namespace smt {
7696
7697//===----------------------------------------------------------------------===//
7698// ::llzk::smt::NotOp declarations
7699//===----------------------------------------------------------------------===//
7700
7701namespace detail {
7703public:
7704protected:
7705 ::mlir::DictionaryAttr odsAttrs;
7706 ::std::optional<::mlir::OperationName> odsOpName;
7707 ::mlir::RegionRange odsRegions;
7708public:
7709 NotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7710 odsOpName.emplace("smt.not", odsAttrs.getContext());
7711 }
7712
7713 NotOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7714
7715 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
7716 return {index, 1};
7717 }
7718
7719 ::mlir::DictionaryAttr getAttributes() {
7720 return odsAttrs;
7721 }
7722
7723};
7724} // namespace detail
7725template <typename RangeT>
7727 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7729public:
7730 NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7731
7732 NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : NotOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7733
7734 NotOpGenericAdaptor(RangeT values, const NotOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7735
7736 template <typename LateInst = NotOp, typename = std::enable_if_t<std::is_same_v<LateInst, NotOp>>>
7737 NotOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7738
7739 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7740 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7741 }
7742
7743 RangeT getODSOperands(unsigned index) {
7744 auto valueRange = getODSOperandIndexAndLength(index);
7745 return {std::next(odsOperands.begin(), valueRange.first),
7746 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7747 }
7748
7749 ValueT getInput() {
7750 return (*getODSOperands(0).begin());
7751 }
7752
7753 RangeT getOperands() {
7754 return odsOperands;
7755 }
7756
7757private:
7758 RangeT odsOperands;
7759};
7760class NotOpAdaptor : public NotOpGenericAdaptor<::mlir::ValueRange> {
7761public:
7763 NotOpAdaptor(NotOp op);
7764
7765 ::llvm::LogicalResult verify(::mlir::Location loc);
7766};
7767class 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> {
7768public:
7769 using Op::Op;
7770 using Op::print;
7772 template <typename RangeT>
7775 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7776 return {};
7777 }
7778
7779 static constexpr ::llvm::StringLiteral getOperationName() {
7780 return ::llvm::StringLiteral("smt.not");
7781 }
7782
7783 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7784 return {index, 1};
7785 }
7786
7787 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7788 auto valueRange = getODSOperandIndexAndLength(index);
7789 return {std::next(getOperation()->operand_begin(), valueRange.first),
7790 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7791 }
7792
7793 ::mlir::TypedValue<::llzk::smt::BoolType> getInput() {
7794 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSOperands(0).begin());
7795 }
7796
7797 ::mlir::OpOperand &getInputMutable() {
7798 auto range = getODSOperandIndexAndLength(0);
7799 return getOperation()->getOpOperand(range.first);
7800 }
7801
7802 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7803 return {index, 1};
7804 }
7805
7806 ::mlir::Operation::result_range getODSResults(unsigned index) {
7807 auto valueRange = getODSResultIndexAndLength(index);
7808 return {std::next(getOperation()->result_begin(), valueRange.first),
7809 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7810 }
7811
7812 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
7813 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
7814 }
7815
7816 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
7817 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input);
7818 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
7819 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7820 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7821 ::llvm::LogicalResult verifyInvariantsImpl();
7822 ::llvm::LogicalResult verifyInvariants();
7823 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);
7824 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7825 void print(::mlir::OpAsmPrinter &_odsPrinter);
7826 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7827public:
7828};
7829} // namespace smt
7830} // namespace llzk
7831MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::NotOp)
7832
7833namespace llzk {
7834namespace smt {
7835
7836//===----------------------------------------------------------------------===//
7837// ::llzk::smt::OrOp declarations
7838//===----------------------------------------------------------------------===//
7839
7840namespace detail {
7842public:
7843protected:
7844 ::mlir::DictionaryAttr odsAttrs;
7845 ::std::optional<::mlir::OperationName> odsOpName;
7846 ::mlir::RegionRange odsRegions;
7847public:
7848 OrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
7849 odsOpName.emplace("smt.or", odsAttrs.getContext());
7850 }
7851
7852 OrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
7853
7854 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
7855 ::mlir::DictionaryAttr getAttributes() {
7856 return odsAttrs;
7857 }
7858
7859};
7860} // namespace detail
7861template <typename RangeT>
7863 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
7864 using Base = detail::OrOpGenericAdaptorBase;
7865public:
7866 OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
7867
7868 OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : OrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
7869
7870 OrOpGenericAdaptor(RangeT values, const OrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
7871
7872 template <typename LateInst = OrOp, typename = std::enable_if_t<std::is_same_v<LateInst, OrOp>>>
7873 OrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
7874
7875 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
7876 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
7877 }
7878
7879 RangeT getODSOperands(unsigned index) {
7880 auto valueRange = getODSOperandIndexAndLength(index);
7881 return {std::next(odsOperands.begin(), valueRange.first),
7882 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
7883 }
7884
7885 RangeT getInputs() {
7886 return getODSOperands(0);
7887 }
7888
7889 RangeT getOperands() {
7890 return odsOperands;
7891 }
7892
7893private:
7894 RangeT odsOperands;
7895};
7896class OrOpAdaptor : public OrOpGenericAdaptor<::mlir::ValueRange> {
7897public:
7899 OrOpAdaptor(OrOp op);
7900
7901 ::llvm::LogicalResult verify(::mlir::Location loc);
7902};
7903class 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> {
7904public:
7905 using Op::Op;
7906 using Op::print;
7908 template <typename RangeT>
7911 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
7912 return {};
7913 }
7914
7915 static constexpr ::llvm::StringLiteral getOperationName() {
7916 return ::llvm::StringLiteral("smt.or");
7917 }
7918
7919 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
7920 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
7921 auto valueRange = getODSOperandIndexAndLength(index);
7922 return {std::next(getOperation()->operand_begin(), valueRange.first),
7923 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
7924 }
7925
7926 ::mlir::Operation::operand_range getInputs() {
7927 return getODSOperands(0);
7928 }
7929
7930 ::mlir::MutableOperandRange getInputsMutable();
7931 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
7932 return {index, 1};
7933 }
7934
7935 ::mlir::Operation::result_range getODSResults(unsigned index) {
7936 auto valueRange = getODSResultIndexAndLength(index);
7937 return {std::next(getOperation()->result_begin(), valueRange.first),
7938 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
7939 }
7940
7941 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
7942 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
7943 }
7944
7945 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
7946 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
7947 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7948 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
7949 ::llvm::LogicalResult verifyInvariantsImpl();
7950 ::llvm::LogicalResult verifyInvariants();
7951 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);
7952 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
7953 void print(::mlir::OpAsmPrinter &_odsPrinter);
7954 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
7955public:
7956};
7957} // namespace smt
7958} // namespace llzk
7959MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::OrOp)
7960
7961namespace llzk {
7962namespace smt {
7963
7964//===----------------------------------------------------------------------===//
7965// ::llzk::smt::PopOp declarations
7966//===----------------------------------------------------------------------===//
7967
7968namespace detail {
7970public:
7971 struct Properties {
7972 using countTy = ::mlir::IntegerAttr;
7974
7975 auto getCount() {
7976 auto &propStorage = this->count;
7977 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
7978 }
7979 void setCount(const ::mlir::IntegerAttr &propValue) {
7980 this->count = propValue;
7981 }
7982 bool operator==(const Properties &rhs) const {
7983 return
7984 rhs.count == this->count &&
7985 true;
7986 }
7987 bool operator!=(const Properties &rhs) const {
7988 return !(*this == rhs);
7989 }
7990 };
7991protected:
7992 ::mlir::DictionaryAttr odsAttrs;
7993 ::std::optional<::mlir::OperationName> odsOpName;
7995 ::mlir::RegionRange odsRegions;
7996public:
7997 PopOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
7998 odsOpName.emplace("smt.pop", odsAttrs.getContext());
7999 }
8000
8002
8003 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8004 return {index, 1};
8005 }
8006
8008 return properties;
8009 }
8010
8011 ::mlir::DictionaryAttr getAttributes() {
8012 return odsAttrs;
8013 }
8014
8015 ::mlir::IntegerAttr getCountAttr() {
8016 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8017 return attr;
8018 }
8019
8020 uint32_t getCount();
8021};
8022} // namespace detail
8023template <typename RangeT>
8025 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8027public:
8028 PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8029
8030 PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : PopOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8031
8032 PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : PopOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8033
8034 PopOpGenericAdaptor(RangeT values, const PopOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8035
8036 template <typename LateInst = PopOp, typename = std::enable_if_t<std::is_same_v<LateInst, PopOp>>>
8037 PopOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8038
8039 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8040 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8041 }
8042
8043 RangeT getODSOperands(unsigned index) {
8044 auto valueRange = getODSOperandIndexAndLength(index);
8045 return {std::next(odsOperands.begin(), valueRange.first),
8046 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8047 }
8048
8049 RangeT getOperands() {
8050 return odsOperands;
8051 }
8052
8053private:
8054 RangeT odsOperands;
8055};
8056class PopOpAdaptor : public PopOpGenericAdaptor<::mlir::ValueRange> {
8057public:
8059 PopOpAdaptor(PopOp op);
8060
8061 ::llvm::LogicalResult verify(::mlir::Location loc);
8062};
8063class PopOp : public ::mlir::Op<PopOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
8064public:
8065 using Op::Op;
8066 using Op::print;
8068 template <typename RangeT>
8072 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8073 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("count")};
8074 return ::llvm::ArrayRef(attrNames);
8075 }
8076
8077 ::mlir::StringAttr getCountAttrName() {
8078 return getAttributeNameForIndex(0);
8079 }
8080
8081 static ::mlir::StringAttr getCountAttrName(::mlir::OperationName name) {
8082 return getAttributeNameForIndex(name, 0);
8083 }
8084
8085 static constexpr ::llvm::StringLiteral getOperationName() {
8086 return ::llvm::StringLiteral("smt.pop");
8087 }
8088
8089 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8090 return {index, 1};
8091 }
8092
8093 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8094 auto valueRange = getODSOperandIndexAndLength(index);
8095 return {std::next(getOperation()->operand_begin(), valueRange.first),
8096 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8097 }
8098
8099 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8100 return {index, 1};
8101 }
8102
8103 ::mlir::Operation::result_range getODSResults(unsigned index) {
8104 auto valueRange = getODSResultIndexAndLength(index);
8105 return {std::next(getOperation()->result_begin(), valueRange.first),
8106 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8107 }
8108
8109 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8110 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8111 static llvm::hash_code computePropertiesHash(const Properties &prop);
8112 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8113 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8114 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8115 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8116 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8117 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8118 ::mlir::IntegerAttr getCountAttr() {
8119 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8120 }
8121
8122 uint32_t getCount();
8123 void setCountAttr(::mlir::IntegerAttr attr) {
8124 getProperties().count = attr;
8125 }
8126
8127 void setCount(uint32_t attrValue);
8128 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count);
8129 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr count);
8130 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, uint32_t count);
8131 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, uint32_t count);
8132 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8133 ::llvm::LogicalResult verifyInvariantsImpl();
8134 ::llvm::LogicalResult verifyInvariants();
8135 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8136 void print(::mlir::OpAsmPrinter &_odsPrinter);
8137private:
8138 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
8139 return getAttributeNameForIndex((*this)->getName(), index);
8140 }
8141
8142 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
8143 assert(index < 1 && "invalid attribute index");
8144 assert(name.getStringRef() == getOperationName() && "invalid operation name");
8145 assert(name.isRegistered() && "Operation isn't registered, missing a "
8146 "dependent dialect loading?");
8147 return name.getAttributeNames()[index];
8148 }
8149
8150public:
8151};
8152} // namespace smt
8153} // namespace llzk
8154MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::PopOp)
8155
8156namespace llzk {
8157namespace smt {
8158
8159//===----------------------------------------------------------------------===//
8160// ::llzk::smt::PushOp declarations
8161//===----------------------------------------------------------------------===//
8162
8163namespace detail {
8165public:
8166 struct Properties {
8167 using countTy = ::mlir::IntegerAttr;
8169
8170 auto getCount() {
8171 auto &propStorage = this->count;
8172 return ::llvm::cast<::mlir::IntegerAttr>(propStorage);
8173 }
8174 void setCount(const ::mlir::IntegerAttr &propValue) {
8175 this->count = propValue;
8176 }
8177 bool operator==(const Properties &rhs) const {
8178 return
8179 rhs.count == this->count &&
8180 true;
8181 }
8182 bool operator!=(const Properties &rhs) const {
8183 return !(*this == rhs);
8184 }
8185 };
8186protected:
8187 ::mlir::DictionaryAttr odsAttrs;
8188 ::std::optional<::mlir::OperationName> odsOpName;
8190 ::mlir::RegionRange odsRegions;
8191public:
8192 PushOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
8193 odsOpName.emplace("smt.push", odsAttrs.getContext());
8194 }
8195
8197
8198 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8199 return {index, 1};
8200 }
8201
8203 return properties;
8204 }
8205
8206 ::mlir::DictionaryAttr getAttributes() {
8207 return odsAttrs;
8208 }
8209
8210 ::mlir::IntegerAttr getCountAttr() {
8211 auto attr = ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8212 return attr;
8213 }
8214
8215 uint32_t getCount();
8216};
8217} // namespace detail
8218template <typename RangeT>
8220 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8222public:
8223 PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8224
8225 PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : PushOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8226
8227 PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : PushOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8228
8229 PushOpGenericAdaptor(RangeT values, const PushOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8230
8231 template <typename LateInst = PushOp, typename = std::enable_if_t<std::is_same_v<LateInst, PushOp>>>
8232 PushOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8233
8234 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8235 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8236 }
8237
8238 RangeT getODSOperands(unsigned index) {
8239 auto valueRange = getODSOperandIndexAndLength(index);
8240 return {std::next(odsOperands.begin(), valueRange.first),
8241 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8242 }
8243
8244 RangeT getOperands() {
8245 return odsOperands;
8246 }
8247
8248private:
8249 RangeT odsOperands;
8250};
8251class PushOpAdaptor : public PushOpGenericAdaptor<::mlir::ValueRange> {
8252public:
8255
8256 ::llvm::LogicalResult verify(::mlir::Location loc);
8257};
8258class PushOp : public ::mlir::Op<PushOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
8259public:
8260 using Op::Op;
8261 using Op::print;
8263 template <typename RangeT>
8267 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8268 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("count")};
8269 return ::llvm::ArrayRef(attrNames);
8270 }
8271
8272 ::mlir::StringAttr getCountAttrName() {
8273 return getAttributeNameForIndex(0);
8274 }
8275
8276 static ::mlir::StringAttr getCountAttrName(::mlir::OperationName name) {
8277 return getAttributeNameForIndex(name, 0);
8278 }
8279
8280 static constexpr ::llvm::StringLiteral getOperationName() {
8281 return ::llvm::StringLiteral("smt.push");
8282 }
8283
8284 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8285 return {index, 1};
8286 }
8287
8288 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8289 auto valueRange = getODSOperandIndexAndLength(index);
8290 return {std::next(getOperation()->operand_begin(), valueRange.first),
8291 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8292 }
8293
8294 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8295 return {index, 1};
8296 }
8297
8298 ::mlir::Operation::result_range getODSResults(unsigned index) {
8299 auto valueRange = getODSResultIndexAndLength(index);
8300 return {std::next(getOperation()->result_begin(), valueRange.first),
8301 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8302 }
8303
8304 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8305 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8306 static llvm::hash_code computePropertiesHash(const Properties &prop);
8307 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8308 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8309 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8310 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8311 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8312 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8313 ::mlir::IntegerAttr getCountAttr() {
8314 return ::llvm::cast<::mlir::IntegerAttr>(getProperties().count);
8315 }
8316
8317 uint32_t getCount();
8318 void setCountAttr(::mlir::IntegerAttr attr) {
8319 getProperties().count = attr;
8320 }
8321
8322 void setCount(uint32_t attrValue);
8323 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count);
8324 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::IntegerAttr count);
8325 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, uint32_t count);
8326 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, uint32_t count);
8327 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8328 ::llvm::LogicalResult verifyInvariantsImpl();
8329 ::llvm::LogicalResult verifyInvariants();
8330 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8331 void print(::mlir::OpAsmPrinter &_odsPrinter);
8332private:
8333 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
8334 return getAttributeNameForIndex((*this)->getName(), index);
8335 }
8336
8337 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
8338 assert(index < 1 && "invalid attribute index");
8339 assert(name.getStringRef() == getOperationName() && "invalid operation name");
8340 assert(name.isRegistered() && "Operation isn't registered, missing a "
8341 "dependent dialect loading?");
8342 return name.getAttributeNames()[index];
8343 }
8344
8345public:
8346};
8347} // namespace smt
8348} // namespace llzk
8349MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::PushOp)
8350
8351namespace llzk {
8352namespace smt {
8353
8354//===----------------------------------------------------------------------===//
8355// ::llzk::smt::RepeatOp declarations
8356//===----------------------------------------------------------------------===//
8357
8358namespace detail {
8360public:
8361protected:
8362 ::mlir::DictionaryAttr odsAttrs;
8363 ::std::optional<::mlir::OperationName> odsOpName;
8364 ::mlir::RegionRange odsRegions;
8365public:
8366 RepeatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
8367 odsOpName.emplace("smt.bv.repeat", odsAttrs.getContext());
8368 }
8369
8370 RepeatOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
8371
8372 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8373 return {index, 1};
8374 }
8375
8376 ::mlir::DictionaryAttr getAttributes() {
8377 return odsAttrs;
8378 }
8379
8380};
8381} // namespace detail
8382template <typename RangeT>
8384 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8386public:
8387 RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8388
8389 RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : RepeatOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
8390
8391 RepeatOpGenericAdaptor(RangeT values, const RepeatOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8392
8393 template <typename LateInst = RepeatOp, typename = std::enable_if_t<std::is_same_v<LateInst, RepeatOp>>>
8394 RepeatOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8395
8396 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8397 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8398 }
8399
8400 RangeT getODSOperands(unsigned index) {
8401 auto valueRange = getODSOperandIndexAndLength(index);
8402 return {std::next(odsOperands.begin(), valueRange.first),
8403 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8404 }
8405
8406 ValueT getInput() {
8407 return (*getODSOperands(0).begin());
8408 }
8409
8410 RangeT getOperands() {
8411 return odsOperands;
8412 }
8413
8414private:
8415 RangeT odsOperands;
8416};
8417class RepeatOpAdaptor : public RepeatOpGenericAdaptor<::mlir::ValueRange> {
8418public:
8421
8422 ::llvm::LogicalResult verify(::mlir::Location loc);
8423};
8424class 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> {
8425public:
8426 using Op::Op;
8427 using Op::print;
8429 template <typename RangeT>
8432 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8433 return {};
8434 }
8435
8436 static constexpr ::llvm::StringLiteral getOperationName() {
8437 return ::llvm::StringLiteral("smt.bv.repeat");
8438 }
8439
8440 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8441 return {index, 1};
8442 }
8443
8444 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8445 auto valueRange = getODSOperandIndexAndLength(index);
8446 return {std::next(getOperation()->operand_begin(), valueRange.first),
8447 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8448 }
8449
8450 ::mlir::TypedValue<::llzk::smt::BitVectorType> getInput() {
8451 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSOperands(0).begin());
8452 }
8453
8454 ::mlir::OpOperand &getInputMutable() {
8455 auto range = getODSOperandIndexAndLength(0);
8456 return getOperation()->getOpOperand(range.first);
8457 }
8458
8459 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8460 return {index, 1};
8461 }
8462
8463 ::mlir::Operation::result_range getODSResults(unsigned index) {
8464 auto valueRange = getODSResultIndexAndLength(index);
8465 return {std::next(getOperation()->result_begin(), valueRange.first),
8466 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8467 }
8468
8469 ::mlir::TypedValue<::llzk::smt::BitVectorType> getResult() {
8470 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BitVectorType>>(*getODSResults(0).begin());
8471 }
8472
8473 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, unsigned count, mlir::Value input);
8474 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input);
8475 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value input);
8476 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8477 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8478 void print(::mlir::OpAsmPrinter &p);
8479 ::llvm::LogicalResult verifyInvariantsImpl();
8480 ::llvm::LogicalResult verifyInvariants();
8481 ::llvm::LogicalResult verify();
8482 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
8483public:
8485 unsigned getCount();
8486};
8487} // namespace smt
8488} // namespace llzk
8489MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::RepeatOp)
8490
8491namespace llzk {
8492namespace smt {
8493
8494//===----------------------------------------------------------------------===//
8495// ::llzk::smt::ResetOp declarations
8496//===----------------------------------------------------------------------===//
8497
8498namespace detail {
8500public:
8501protected:
8502 ::mlir::DictionaryAttr odsAttrs;
8503 ::std::optional<::mlir::OperationName> odsOpName;
8504 ::mlir::RegionRange odsRegions;
8505public:
8506 ResetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
8507 odsOpName.emplace("smt.reset", odsAttrs.getContext());
8508 }
8509
8510 ResetOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
8511
8512 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8513 return {index, 1};
8514 }
8515
8516 ::mlir::DictionaryAttr getAttributes() {
8517 return odsAttrs;
8518 }
8519
8520};
8521} // namespace detail
8522template <typename RangeT>
8524 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8526public:
8527 ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8528
8529 ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ResetOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
8530
8531 ResetOpGenericAdaptor(RangeT values, const ResetOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8532
8533 template <typename LateInst = ResetOp, typename = std::enable_if_t<std::is_same_v<LateInst, ResetOp>>>
8534 ResetOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8535
8536 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8537 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8538 }
8539
8540 RangeT getODSOperands(unsigned index) {
8541 auto valueRange = getODSOperandIndexAndLength(index);
8542 return {std::next(odsOperands.begin(), valueRange.first),
8543 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8544 }
8545
8546 RangeT getOperands() {
8547 return odsOperands;
8548 }
8549
8550private:
8551 RangeT odsOperands;
8552};
8553class ResetOpAdaptor : public ResetOpGenericAdaptor<::mlir::ValueRange> {
8554public:
8557
8558 ::llvm::LogicalResult verify(::mlir::Location loc);
8559};
8560class ResetOp : public ::mlir::Op<ResetOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants> {
8561public:
8562 using Op::Op;
8563 using Op::print;
8565 template <typename RangeT>
8568 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8569 return {};
8570 }
8571
8572 static constexpr ::llvm::StringLiteral getOperationName() {
8573 return ::llvm::StringLiteral("smt.reset");
8574 }
8575
8576 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8577 return {index, 1};
8578 }
8579
8580 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8581 auto valueRange = getODSOperandIndexAndLength(index);
8582 return {std::next(getOperation()->operand_begin(), valueRange.first),
8583 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8584 }
8585
8586 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8587 return {index, 1};
8588 }
8589
8590 ::mlir::Operation::result_range getODSResults(unsigned index) {
8591 auto valueRange = getODSResultIndexAndLength(index);
8592 return {std::next(getOperation()->result_begin(), valueRange.first),
8593 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8594 }
8595
8596 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
8597 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
8598 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8599 ::llvm::LogicalResult verifyInvariantsImpl();
8600 ::llvm::LogicalResult verifyInvariants();
8601 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8602 void print(::mlir::OpAsmPrinter &_odsPrinter);
8603public:
8604};
8605} // namespace smt
8606} // namespace llzk
8607MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::ResetOp)
8608
8609namespace llzk {
8610namespace smt {
8611
8612//===----------------------------------------------------------------------===//
8613// ::llzk::smt::SetInfoOp declarations
8614//===----------------------------------------------------------------------===//
8615
8616namespace detail {
8618public:
8619 struct Properties {
8620 using keyTy = ::llzk::smt::KeywordAttr;
8622
8623 auto getKey() {
8624 auto &propStorage = this->key;
8625 return ::llvm::cast<::llzk::smt::KeywordAttr>(propStorage);
8626 }
8627 void setKey(const ::llzk::smt::KeywordAttr &propValue) {
8628 this->key = propValue;
8629 }
8630 using valueTy = ::mlir::Attribute;
8632
8633 auto getValue() {
8634 auto &propStorage = this->value;
8635 return ::llvm::cast<::mlir::Attribute>(propStorage);
8636 }
8637 void setValue(const ::mlir::Attribute &propValue) {
8638 this->value = propValue;
8639 }
8640 bool operator==(const Properties &rhs) const {
8641 return
8642 rhs.key == this->key &&
8643 rhs.value == this->value &&
8644 true;
8645 }
8646 bool operator!=(const Properties &rhs) const {
8647 return !(*this == rhs);
8648 }
8649 };
8650protected:
8651 ::mlir::DictionaryAttr odsAttrs;
8652 ::std::optional<::mlir::OperationName> odsOpName;
8654 ::mlir::RegionRange odsRegions;
8655public:
8656 SetInfoOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
8657 odsOpName.emplace("smt.set_info", odsAttrs.getContext());
8658 }
8659
8661
8662 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8663 return {index, 1};
8664 }
8665
8667 return properties;
8668 }
8669
8670 ::mlir::DictionaryAttr getAttributes() {
8671 return odsAttrs;
8672 }
8673
8674 ::llzk::smt::KeywordAttr getKeyAttr() {
8675 auto attr = ::llvm::cast<::llzk::smt::KeywordAttr>(getProperties().key);
8676 return attr;
8677 }
8678
8679 ::llzk::smt::KeywordAttr getKey();
8680 ::mlir::Attribute getValueAttr() {
8681 auto attr = ::llvm::cast<::mlir::Attribute>(getProperties().value);
8682 return attr;
8683 }
8684
8685 ::mlir::Attribute getValue();
8686};
8687} // namespace detail
8688template <typename RangeT>
8690 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8692public:
8693 SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8694
8695 SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SetInfoOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8696
8697 SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : SetInfoOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8698
8699 SetInfoOpGenericAdaptor(RangeT values, const SetInfoOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8700
8701 template <typename LateInst = SetInfoOp, typename = std::enable_if_t<std::is_same_v<LateInst, SetInfoOp>>>
8702 SetInfoOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8703
8704 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8705 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8706 }
8707
8708 RangeT getODSOperands(unsigned index) {
8709 auto valueRange = getODSOperandIndexAndLength(index);
8710 return {std::next(odsOperands.begin(), valueRange.first),
8711 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8712 }
8713
8714 RangeT getOperands() {
8715 return odsOperands;
8716 }
8717
8718private:
8719 RangeT odsOperands;
8720};
8721class SetInfoOpAdaptor : public SetInfoOpGenericAdaptor<::mlir::ValueRange> {
8722public:
8725
8726 ::llvm::LogicalResult verify(::mlir::Location loc);
8727};
8728class SetInfoOp : public ::mlir::Op<SetInfoOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
8729public:
8730 using Op::Op;
8731 using Op::print;
8733 template <typename RangeT>
8737 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8738 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("key"), ::llvm::StringRef("value")};
8739 return ::llvm::ArrayRef(attrNames);
8740 }
8741
8742 ::mlir::StringAttr getKeyAttrName() {
8743 return getAttributeNameForIndex(0);
8744 }
8745
8746 static ::mlir::StringAttr getKeyAttrName(::mlir::OperationName name) {
8747 return getAttributeNameForIndex(name, 0);
8748 }
8749
8750 ::mlir::StringAttr getValueAttrName() {
8751 return getAttributeNameForIndex(1);
8752 }
8753
8754 static ::mlir::StringAttr getValueAttrName(::mlir::OperationName name) {
8755 return getAttributeNameForIndex(name, 1);
8756 }
8757
8758 static constexpr ::llvm::StringLiteral getOperationName() {
8759 return ::llvm::StringLiteral("smt.set_info");
8760 }
8761
8762 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8763 return {index, 1};
8764 }
8765
8766 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8767 auto valueRange = getODSOperandIndexAndLength(index);
8768 return {std::next(getOperation()->operand_begin(), valueRange.first),
8769 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8770 }
8771
8772 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8773 return {index, 1};
8774 }
8775
8776 ::mlir::Operation::result_range getODSResults(unsigned index) {
8777 auto valueRange = getODSResultIndexAndLength(index);
8778 return {std::next(getOperation()->result_begin(), valueRange.first),
8779 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8780 }
8781
8782 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8783 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8784 static llvm::hash_code computePropertiesHash(const Properties &prop);
8785 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8786 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8787 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8788 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8789 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8790 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8791 ::llzk::smt::KeywordAttr getKeyAttr() {
8792 return ::llvm::cast<::llzk::smt::KeywordAttr>(getProperties().key);
8793 }
8794
8795 ::llzk::smt::KeywordAttr getKey();
8796 ::mlir::Attribute getValueAttr() {
8797 return ::llvm::cast<::mlir::Attribute>(getProperties().value);
8798 }
8799
8800 ::mlir::Attribute getValue();
8801 void setKeyAttr(::llzk::smt::KeywordAttr attr) {
8802 getProperties().key = attr;
8803 }
8804
8805 void setValueAttr(::mlir::Attribute attr) {
8806 getProperties().value = attr;
8807 }
8808
8809 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::KeywordAttr key, ::mlir::Attribute value);
8810 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::smt::KeywordAttr key, ::mlir::Attribute value);
8811 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
8812 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
8813 void print(::mlir::OpAsmPrinter &p);
8814 ::llvm::LogicalResult verifyInvariantsImpl();
8815 ::llvm::LogicalResult verifyInvariants();
8816 ::llvm::LogicalResult verify();
8817private:
8818 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
8819 return getAttributeNameForIndex((*this)->getName(), index);
8820 }
8821
8822 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
8823 assert(index < 2 && "invalid attribute index");
8824 assert(name.getStringRef() == getOperationName() && "invalid operation name");
8825 assert(name.isRegistered() && "Operation isn't registered, missing a "
8826 "dependent dialect loading?");
8827 return name.getAttributeNames()[index];
8828 }
8829
8830public:
8831};
8832} // namespace smt
8833} // namespace llzk
8834MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::SetInfoOp)
8835
8836namespace llzk {
8837namespace smt {
8838
8839//===----------------------------------------------------------------------===//
8840// ::llzk::smt::SetLogicOp declarations
8841//===----------------------------------------------------------------------===//
8842
8843namespace detail {
8845public:
8846 struct Properties {
8847 using logicTy = ::mlir::StringAttr;
8849
8850 auto getLogic() {
8851 auto &propStorage = this->logic;
8852 return ::llvm::cast<::mlir::StringAttr>(propStorage);
8853 }
8854 void setLogic(const ::mlir::StringAttr &propValue) {
8855 this->logic = propValue;
8856 }
8857 bool operator==(const Properties &rhs) const {
8858 return
8859 rhs.logic == this->logic &&
8860 true;
8861 }
8862 bool operator!=(const Properties &rhs) const {
8863 return !(*this == rhs);
8864 }
8865 };
8866protected:
8867 ::mlir::DictionaryAttr odsAttrs;
8868 ::std::optional<::mlir::OperationName> odsOpName;
8870 ::mlir::RegionRange odsRegions;
8871public:
8872 SetLogicOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
8873 odsOpName.emplace("smt.set_logic", odsAttrs.getContext());
8874 }
8875
8877
8878 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
8879 return {index, 1};
8880 }
8881
8883 return properties;
8884 }
8885
8886 ::mlir::DictionaryAttr getAttributes() {
8887 return odsAttrs;
8888 }
8889
8890 ::mlir::StringAttr getLogicAttr() {
8891 auto attr = ::llvm::cast<::mlir::StringAttr>(getProperties().logic);
8892 return attr;
8893 }
8894
8895 ::llvm::StringRef getLogic();
8896};
8897} // namespace detail
8898template <typename RangeT>
8900 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
8902public:
8903 SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
8904
8905 SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SetLogicOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
8906
8907 SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : SetLogicOpGenericAdaptor(values, attrs, Properties{}, {}) {}
8908
8909 SetLogicOpGenericAdaptor(RangeT values, const SetLogicOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
8910
8911 template <typename LateInst = SetLogicOp, typename = std::enable_if_t<std::is_same_v<LateInst, SetLogicOp>>>
8912 SetLogicOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
8913
8914 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8915 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
8916 }
8917
8918 RangeT getODSOperands(unsigned index) {
8919 auto valueRange = getODSOperandIndexAndLength(index);
8920 return {std::next(odsOperands.begin(), valueRange.first),
8921 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
8922 }
8923
8924 RangeT getOperands() {
8925 return odsOperands;
8926 }
8927
8928private:
8929 RangeT odsOperands;
8930};
8931class SetLogicOpAdaptor : public SetLogicOpGenericAdaptor<::mlir::ValueRange> {
8932public:
8935
8936 ::llvm::LogicalResult verify(::mlir::Location loc);
8937};
8938class 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> {
8939public:
8940 using Op::Op;
8941 using Op::print;
8943 template <typename RangeT>
8947 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
8948 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("logic")};
8949 return ::llvm::ArrayRef(attrNames);
8950 }
8951
8952 ::mlir::StringAttr getLogicAttrName() {
8953 return getAttributeNameForIndex(0);
8954 }
8955
8956 static ::mlir::StringAttr getLogicAttrName(::mlir::OperationName name) {
8957 return getAttributeNameForIndex(name, 0);
8958 }
8959
8960 static constexpr ::llvm::StringLiteral getOperationName() {
8961 return ::llvm::StringLiteral("smt.set_logic");
8962 }
8963
8964 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
8965 return {index, 1};
8966 }
8967
8968 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
8969 auto valueRange = getODSOperandIndexAndLength(index);
8970 return {std::next(getOperation()->operand_begin(), valueRange.first),
8971 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
8972 }
8973
8974 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
8975 return {index, 1};
8976 }
8977
8978 ::mlir::Operation::result_range getODSResults(unsigned index) {
8979 auto valueRange = getODSResultIndexAndLength(index);
8980 return {std::next(getOperation()->result_begin(), valueRange.first),
8981 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
8982 }
8983
8984 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8985 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
8986 static llvm::hash_code computePropertiesHash(const Properties &prop);
8987 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
8988 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
8989 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
8990 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
8991 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
8992 void writeProperties(::mlir::DialectBytecodeWriter &writer);
8993 ::mlir::StringAttr getLogicAttr() {
8994 return ::llvm::cast<::mlir::StringAttr>(getProperties().logic);
8995 }
8996
8997 ::llvm::StringRef getLogic();
8998 void setLogicAttr(::mlir::StringAttr attr) {
8999 getProperties().logic = attr;
9000 }
9001
9002 void setLogic(::llvm::StringRef attrValue);
9003 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr logic);
9004 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr logic);
9005 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef logic);
9006 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef logic);
9007 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9008 ::llvm::LogicalResult verifyInvariantsImpl();
9009 ::llvm::LogicalResult verifyInvariants();
9010 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
9011 void print(::mlir::OpAsmPrinter &_odsPrinter);
9012private:
9013 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
9014 return getAttributeNameForIndex((*this)->getName(), index);
9015 }
9016
9017 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
9018 assert(index < 1 && "invalid attribute index");
9019 assert(name.getStringRef() == getOperationName() && "invalid operation name");
9020 assert(name.isRegistered() && "Operation isn't registered, missing a "
9021 "dependent dialect loading?");
9022 return name.getAttributeNames()[index];
9023 }
9024
9025public:
9026};
9027} // namespace smt
9028} // namespace llzk
9029MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::SetLogicOp)
9030
9031namespace llzk {
9032namespace smt {
9033
9034//===----------------------------------------------------------------------===//
9035// ::llzk::smt::SolverOp declarations
9036//===----------------------------------------------------------------------===//
9037
9038namespace detail {
9040public:
9041protected:
9042 ::mlir::DictionaryAttr odsAttrs;
9043 ::std::optional<::mlir::OperationName> odsOpName;
9044 ::mlir::RegionRange odsRegions;
9045public:
9046 SolverOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
9047 odsOpName.emplace("smt.solver", odsAttrs.getContext());
9048 }
9049
9050 SolverOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
9051
9052 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
9053 ::mlir::DictionaryAttr getAttributes() {
9054 return odsAttrs;
9055 }
9056
9057 ::mlir::Region &getBodyRegion() {
9058 return *odsRegions[0];
9059 }
9060
9061 ::mlir::RegionRange getRegions() {
9062 return odsRegions;
9063 }
9064
9065};
9066} // namespace detail
9067template <typename RangeT>
9069 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
9071public:
9072 SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
9073
9074 SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : SolverOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
9075
9076 SolverOpGenericAdaptor(RangeT values, const SolverOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
9077
9078 template <typename LateInst = SolverOp, typename = std::enable_if_t<std::is_same_v<LateInst, SolverOp>>>
9079 SolverOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
9080
9081 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
9082 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
9083 }
9084
9085 RangeT getODSOperands(unsigned index) {
9086 auto valueRange = getODSOperandIndexAndLength(index);
9087 return {std::next(odsOperands.begin(), valueRange.first),
9088 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
9089 }
9090
9091 RangeT getInputs() {
9092 return getODSOperands(0);
9093 }
9094
9095 RangeT getOperands() {
9096 return odsOperands;
9097 }
9098
9099private:
9100 RangeT odsOperands;
9101};
9102class SolverOpAdaptor : public SolverOpGenericAdaptor<::mlir::ValueRange> {
9103public:
9106
9107 ::llvm::LogicalResult verify(::mlir::Location loc);
9108};
9109class 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> {
9110public:
9111 using Op::Op;
9112 using Op::print;
9114 template <typename RangeT>
9117 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
9118 return {};
9119 }
9120
9121 static constexpr ::llvm::StringLiteral getOperationName() {
9122 return ::llvm::StringLiteral("smt.solver");
9123 }
9124
9125 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
9126 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
9127 auto valueRange = getODSOperandIndexAndLength(index);
9128 return {std::next(getOperation()->operand_begin(), valueRange.first),
9129 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
9130 }
9131
9132 ::mlir::Operation::operand_range getInputs() {
9133 return getODSOperands(0);
9134 }
9135
9136 ::mlir::MutableOperandRange getInputsMutable();
9137 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index);
9138 ::mlir::Operation::result_range getODSResults(unsigned index) {
9139 auto valueRange = getODSResultIndexAndLength(index);
9140 return {std::next(getOperation()->result_begin(), valueRange.first),
9141 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
9142 }
9143
9144 ::mlir::Operation::result_range getResults() {
9145 return getODSResults(0);
9146 }
9147
9148 ::mlir::Region &getBodyRegion() {
9149 return (*this)->getRegion(0);
9150 }
9151
9152 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9153 ::llvm::LogicalResult verifyInvariantsImpl();
9154 ::llvm::LogicalResult verifyInvariants();
9155 ::llvm::LogicalResult verifyRegions();
9156 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
9157 void print(::mlir::OpAsmPrinter &_odsPrinter);
9158public:
9159};
9160} // namespace smt
9161} // namespace llzk
9162MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::SolverOp)
9163
9164namespace llzk {
9165namespace smt {
9166
9167//===----------------------------------------------------------------------===//
9168// ::llzk::smt::XOrOp declarations
9169//===----------------------------------------------------------------------===//
9170
9171namespace detail {
9173public:
9174protected:
9175 ::mlir::DictionaryAttr odsAttrs;
9176 ::std::optional<::mlir::OperationName> odsOpName;
9177 ::mlir::RegionRange odsRegions;
9178public:
9179 XOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
9180 odsOpName.emplace("smt.xor", odsAttrs.getContext());
9181 }
9182
9183 XOrOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
9184
9185 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
9186 ::mlir::DictionaryAttr getAttributes() {
9187 return odsAttrs;
9188 }
9189
9190};
9191} // namespace detail
9192template <typename RangeT>
9194 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
9196public:
9197 XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
9198
9199 XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : XOrOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
9200
9201 XOrOpGenericAdaptor(RangeT values, const XOrOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
9202
9203 template <typename LateInst = XOrOp, typename = std::enable_if_t<std::is_same_v<LateInst, XOrOp>>>
9204 XOrOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
9205
9206 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
9207 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
9208 }
9209
9210 RangeT getODSOperands(unsigned index) {
9211 auto valueRange = getODSOperandIndexAndLength(index);
9212 return {std::next(odsOperands.begin(), valueRange.first),
9213 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
9214 }
9215
9216 RangeT getInputs() {
9217 return getODSOperands(0);
9218 }
9219
9220 RangeT getOperands() {
9221 return odsOperands;
9222 }
9223
9224private:
9225 RangeT odsOperands;
9226};
9227class XOrOpAdaptor : public XOrOpGenericAdaptor<::mlir::ValueRange> {
9228public:
9230 XOrOpAdaptor(XOrOp op);
9231
9232 ::llvm::LogicalResult verify(::mlir::Location loc);
9233};
9234class 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> {
9235public:
9236 using Op::Op;
9237 using Op::print;
9239 template <typename RangeT>
9242 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
9243 return {};
9244 }
9245
9246 static constexpr ::llvm::StringLiteral getOperationName() {
9247 return ::llvm::StringLiteral("smt.xor");
9248 }
9249
9250 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
9251 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
9252 auto valueRange = getODSOperandIndexAndLength(index);
9253 return {std::next(getOperation()->operand_begin(), valueRange.first),
9254 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
9255 }
9256
9257 ::mlir::Operation::operand_range getInputs() {
9258 return getODSOperands(0);
9259 }
9260
9261 ::mlir::MutableOperandRange getInputsMutable();
9262 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
9263 return {index, 1};
9264 }
9265
9266 ::mlir::Operation::result_range getODSResults(unsigned index) {
9267 auto valueRange = getODSResultIndexAndLength(index);
9268 return {std::next(getOperation()->result_begin(), valueRange.first),
9269 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
9270 }
9271
9272 ::mlir::TypedValue<::llzk::smt::BoolType> getResult() {
9273 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*getODSResults(0).begin());
9274 }
9275
9276 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs);
9277 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs);
9278 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9279 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9280 ::llvm::LogicalResult verifyInvariantsImpl();
9281 ::llvm::LogicalResult verifyInvariants();
9282 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);
9283 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
9284 void print(::mlir::OpAsmPrinter &_odsPrinter);
9285 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
9286public:
9287};
9288} // namespace smt
9289} // namespace llzk
9290MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::XOrOp)
9291
9292namespace llzk {
9293namespace smt {
9294
9295//===----------------------------------------------------------------------===//
9296// ::llzk::smt::YieldOp declarations
9297//===----------------------------------------------------------------------===//
9298
9299namespace detail {
9301public:
9302protected:
9303 ::mlir::DictionaryAttr odsAttrs;
9304 ::std::optional<::mlir::OperationName> odsOpName;
9305 ::mlir::RegionRange odsRegions;
9306public:
9307 YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
9308 odsOpName.emplace("smt.yield", odsAttrs.getContext());
9309 }
9310
9311 YieldOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
9312
9313 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
9314 ::mlir::DictionaryAttr getAttributes() {
9315 return odsAttrs;
9316 }
9317
9318};
9319} // namespace detail
9320template <typename RangeT>
9322 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
9324public:
9325 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
9326
9327 YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : YieldOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
9328
9329 YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
9330
9331 template <typename LateInst = YieldOp, typename = std::enable_if_t<std::is_same_v<LateInst, YieldOp>>>
9332 YieldOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
9333
9334 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
9335 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
9336 }
9337
9338 RangeT getODSOperands(unsigned index) {
9339 auto valueRange = getODSOperandIndexAndLength(index);
9340 return {std::next(odsOperands.begin(), valueRange.first),
9341 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
9342 }
9343
9344 RangeT getValues() {
9345 return getODSOperands(0);
9346 }
9347
9348 RangeT getOperands() {
9349 return odsOperands;
9350 }
9351
9352private:
9353 RangeT odsOperands;
9354};
9355class YieldOpAdaptor : public YieldOpGenericAdaptor<::mlir::ValueRange> {
9356public:
9359
9360 ::llvm::LogicalResult verify(::mlir::Location loc);
9361};
9362class 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> {
9363public:
9364 using Op::Op;
9365 using Op::print;
9367 template <typename RangeT>
9370 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
9371 return {};
9372 }
9373
9374 static constexpr ::llvm::StringLiteral getOperationName() {
9375 return ::llvm::StringLiteral("smt.yield");
9376 }
9377
9378 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
9379 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
9380 auto valueRange = getODSOperandIndexAndLength(index);
9381 return {std::next(getOperation()->operand_begin(), valueRange.first),
9382 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
9383 }
9384
9385 ::mlir::Operation::operand_range getValues() {
9386 return getODSOperands(0);
9387 }
9388
9389 ::mlir::MutableOperandRange getValuesMutable();
9390 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
9391 return {index, 1};
9392 }
9393
9394 ::mlir::Operation::result_range getODSResults(unsigned index) {
9395 auto valueRange = getODSResultIndexAndLength(index);
9396 return {std::next(getOperation()->result_begin(), valueRange.first),
9397 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
9398 }
9399
9400 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
9401 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange values);
9402 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
9403 ::llvm::LogicalResult verifyInvariantsImpl();
9404 ::llvm::LogicalResult verifyInvariants();
9405 ::mlir::MutableOperandRange getMutableSuccessorOperands(::mlir::RegionBranchPoint point);
9406 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
9407 void print(::mlir::OpAsmPrinter &_odsPrinter);
9408 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
9409public:
9410};
9411} // namespace smt
9412} // namespace llzk
9413MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::smt::YieldOp)
9414
9415
9416#endif // GET_OP_CLASSES
9417
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:411
AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:326
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:335
AndOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:333
AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:328
AndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:326
AndOpGenericAdaptor(RangeT values, const AndOpGenericAdaptorBase &base)
Definition SMT.h.inc:330
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:339
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:386
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:395
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:380
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:527
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:415
::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:499
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:370
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:371
AndOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:369
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:495
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:433
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:391
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:375
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:534
AndOpAdaptor Adaptor
Definition SMT.h.inc:367
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:401
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:439
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:473
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:507
ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:454
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:570
ApplyFuncOpAdaptor(ApplyFuncOp op)
Definition SMT.cpp.inc:568
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:467
ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:454
ApplyFuncOpGenericAdaptor(RangeT values, const ApplyFuncOpGenericAdaptorBase &base)
Definition SMT.h.inc:458
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:463
ApplyFuncOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:456
ApplyFuncOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:461
::mlir::MutableOperandRange getArgsMutable()
Definition SMT.cpp.inc:592
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:685
::mlir::OpOperand & getFuncMutable()
Definition SMT.h.inc:526
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:542
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:653
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:532
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value func, ::mlir::ValueRange args)
Definition SMT.cpp.inc:598
::mlir::TypedValue<::llzk::smt::SMTFuncType > getFunc()
Definition SMT.h.inc:518
::mlir::Operation::operand_range getArgs()
Definition SMT.h.inc:522
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:536
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:699
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:503
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:757
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:502
ApplyFuncOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:501
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:507
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:512
::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:689
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:574
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:744
ApplyFuncOpAdaptor Adaptor
Definition SMT.h.inc:499
ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:599
ArrayBroadcastOpAdaptor(ArrayBroadcastOp op)
Definition SMT.cpp.inc:773
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:775
ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:601
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:612
ArrayBroadcastOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:606
ArrayBroadcastOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:599
ArrayBroadcastOpGenericAdaptor(RangeT values, const ArrayBroadcastOpGenericAdaptorBase &base)
Definition SMT.h.inc:603
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:608
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:858
ArrayBroadcastOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:642
::mlir::TypedValue<::mlir::Type > getValue()
Definition SMT.h.inc:662
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:648
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:868
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:798
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:671
ArrayBroadcastOpAdaptor Adaptor
Definition SMT.h.inc:640
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:826
::mlir::TypedValue<::llzk::smt::ArrayType > getResult()
Definition SMT.h.inc:681
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:822
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
Definition SMT.cpp.inc:779
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:644
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:652
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:675
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:656
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:643
::mlir::OpOperand & getValueMutable()
Definition SMT.h.inc:666
ArraySelectOpAdaptor(ArraySelectOp op)
Definition SMT.cpp.inc:884
ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:735
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:886
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:748
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:744
ArraySelectOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:742
ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:735
ArraySelectOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:737
ArraySelectOpGenericAdaptor(RangeT values, const ArraySelectOpGenericAdaptorBase &base)
Definition SMT.h.inc:739
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:991
::mlir::TypedValue<::mlir::Type > getIndex()
Definition SMT.h.inc:806
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:824
ArraySelectOpAdaptor Adaptor
Definition SMT.h.inc:780
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1049
::mlir::OpOperand & getIndexMutable()
Definition SMT.h.inc:815
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:784
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value array, ::mlir::Value index)
Definition SMT.cpp.inc:890
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:820
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:783
::mlir::OpOperand & getArrayMutable()
Definition SMT.h.inc:810
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:792
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:796
ArraySelectOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:782
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1036
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:788
::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:981
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:945
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:977
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:830
::mlir::TypedValue<::llzk::smt::ArrayType > getArray()
Definition SMT.h.inc:802
ArrayStoreOpAdaptor(ArrayStoreOp op)
Definition SMT.cpp.inc:1065
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1067
ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:887
ArrayStoreOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:894
ArrayStoreOpGenericAdaptor(RangeT values, const ArrayStoreOpGenericAdaptorBase &base)
Definition SMT.h.inc:891
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:896
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:900
ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:889
ArrayStoreOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:887
ArrayStoreOpAdaptor Adaptor
Definition SMT.h.inc:936
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:985
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:939
::mlir::TypedValue<::mlir::Type > getValue()
Definition SMT.h.inc:966
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:948
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1239
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:944
::mlir::OpOperand & getIndexMutable()
Definition SMT.h.inc:975
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:952
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1255
::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:1173
::mlir::TypedValue<::llzk::smt::ArrayType > getArray()
Definition SMT.h.inc:958
::mlir::TypedValue<::llzk::smt::ArrayType > getResult()
Definition SMT.h.inc:995
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1183
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:989
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:940
::mlir::TypedValue<::mlir::Type > getIndex()
Definition SMT.h.inc:962
::mlir::OpOperand & getArrayMutable()
Definition SMT.h.inc:970
ArrayStoreOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:938
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1129
::mlir::OpOperand & getValueMutable()
Definition SMT.h.inc:980
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1169
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:1071
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1273
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1052
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1065
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1052
AssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1054
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1061
AssertOpGenericAdaptor(RangeT values, const AssertOpGenericAdaptorBase &base)
Definition SMT.h.inc:1056
AssertOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1059
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1312
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1096
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1295
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1331
AssertOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1095
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1128
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value input)
Definition SMT.cpp.inc:1277
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1105
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1101
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1124
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1109
::mlir::TypedValue<::llzk::smt::BoolType > getInput()
Definition SMT.h.inc:1115
AssertOpAdaptor Adaptor
Definition SMT.h.inc:1093
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1097
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1308
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:1119
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1210
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1369
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1212
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:1214
BV2IntOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1210
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1221
BV2IntOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1219
BV2IntOpGenericAdaptor(RangeT values, const BV2IntOpGenericAdaptorBase &base)
Definition SMT.h.inc:1216
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1225
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:1438
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1258
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1590
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1628
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:1285
void setIsSignedAttr(::mlir::UnitAttr attr)
Definition SMT.h.inc:1322
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:1447
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:1434
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1616
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1661
::mlir::UnitAttr getIsSignedAttr()
Definition SMT.h.inc:1317
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:1400
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1298
::mlir::StringAttr getIsSignedAttrName(::mlir::OperationName name)
Definition SMT.h.inc:1267
::mlir::StringAttr getIsSignedAttrName()
Definition SMT.h.inc:1263
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1294
::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:1620
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:1377
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1681
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:1416
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:1304
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:1421
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input, ::mlir::UnitAttr is_signed)
Definition SMT.cpp.inc:1475
::mlir::Attribute removeIsSignedAttr()
Definition SMT.h.inc:1327
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1275
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1271
FoldAdaptor::Properties Properties
Definition SMT.h.inc:1257
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:1454
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1279
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:1427
BV2IntOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1255
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:1289
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1256
BV2IntOpAdaptor Adaptor
Definition SMT.h.inc:1253
void setIsSigned(bool attrValue)
Definition SMT.cpp.inc:1467
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1699
BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1402
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1415
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1411
BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1402
BVAShrOpGenericAdaptor(RangeT values, const BVAShrOpGenericAdaptorBase &base)
Definition SMT.h.inc:1406
BVAShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1404
BVAShrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1409
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1800
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1491
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:1850
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1469
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1786
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1473
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1477
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1455
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1758
BVAShrOpAdaptor Adaptor
Definition SMT.h.inc:1447
::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:1790
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:1703
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1463
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1487
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:1497
BVAShrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1449
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1459
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:1837
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1450
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1482
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1451
BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1554
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:1868
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1563
BVAddOpGenericAdaptor(RangeT values, const BVAddOpGenericAdaptorBase &base)
Definition SMT.h.inc:1558
BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1556
BVAddOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1561
BVAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1554
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1567
::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:1959
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1639
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2006
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1611
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:1649
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1625
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:1955
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1629
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2019
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1602
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1615
BVAddOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1601
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1607
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:1872
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1603
BVAddOpAdaptor Adaptor
Definition SMT.h.inc:1599
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:1927
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1621
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1643
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:1969
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1634
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2037
BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1706
BVAndOpGenericAdaptor(RangeT values, const BVAndOpGenericAdaptorBase &base)
Definition SMT.h.inc:1710
BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1706
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1719
BVAndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1708
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1715
BVAndOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1713
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1773
BVAndOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1753
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1781
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2138
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2124
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1786
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2175
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1777
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1763
::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:2128
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:1801
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1755
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1767
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1795
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1759
BVAndOpAdaptor Adaptor
Definition SMT.h.inc:1751
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1754
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1791
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:2041
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2096
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2188
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1889
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2213
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1889
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1900
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:1893
BVCmpOpGenericAdaptor(RangeT values, const BVCmpOpGenericAdaptorBase &base)
Definition SMT.h.inc:1895
BVCmpOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:1898
BVCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1891
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:1904
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:2272
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2560
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:1941
BVCmpOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:1938
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2455
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:2313
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2539
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2467
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:1986
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:1972
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:1954
::mlir::StringAttr getPredAttrName(::mlir::OperationName name)
Definition SMT.h.inc:1950
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:2279
BVCmpOpAdaptor Adaptor
Definition SMT.h.inc:1936
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:1981
void setPredAttr(::llzk::smt::BVCmpPredicateAttr attr)
Definition SMT.h.inc:2014
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:2261
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:1958
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:1976
::mlir::StringAttr getPredAttrName()
Definition SMT.h.inc:1946
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:2299
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:1990
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:2245
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2283
FoldAdaptor::Properties Properties
Definition SMT.h.inc:1940
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2422
::llzk::smt::BVCmpPredicate getPred()
Definition SMT.cpp.inc:2304
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:2266
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:1939
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:1962
::llzk::smt::BVCmpPredicateAttr getPredAttr()
Definition SMT.h.inc:2009
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:2292
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:1996
::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:2459
void setPred(::llzk::smt::BVCmpPredicate attrValue)
Definition SMT.cpp.inc:2309
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:1968
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2222
BVConstantOpAdaptor(BVConstantOp op)
Definition SMT.cpp.inc:2583
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2119
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2585
BVConstantOpGenericAdaptor(RangeT values, const BVConstantOpGenericAdaptorBase &base)
Definition SMT.h.inc:2125
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2121
BVConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2128
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2130
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:2123
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2134
BVConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2119
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2176
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2184
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:128
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2163
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2655
::llzk::smt::BitVectorAttr getValue()
Definition SMT.cpp.inc:2676
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:2172
::llzk::smt::BitVectorAttr getValueAttr()
Definition SMT.h.inc:2213
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2194
void setValueAttr(::llzk::smt::BitVectorAttr attr)
Definition SMT.h.inc:2218
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2782
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:2168
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:2644
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2190
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition SMTOps.cpp:135
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2180
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2764
::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:119
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:2671
FoldAdaptor::Properties Properties
Definition SMT.h.inc:2162
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:2638
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2161
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:2664
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, const llvm::APInt &value)
Definition SMT.cpp.inc:2681
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2786
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:2594
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:2633
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2821
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2813
BVConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2160
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:2617
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:2651
BVConstantOpAdaptor Adaptor
Definition SMT.h.inc:2158
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2200
BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2292
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:2839
BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2294
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2301
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2305
BVLShrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2299
BVLShrOpGenericAdaptor(RangeT values, const BVLShrOpGenericAdaptorBase &base)
Definition SMT.h.inc:2296
BVLShrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2292
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:2898
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:2367
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:2843
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:2977
::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:2930
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2387
BVLShrOpAdaptor Adaptor
Definition SMT.h.inc:2337
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2381
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:2926
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:2372
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2349
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:2359
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2353
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:2940
BVLShrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2339
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2341
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2345
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2340
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:2363
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:2990
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2377
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3008
BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2444
BVMulOpGenericAdaptor(RangeT values, const BVMulOpGenericAdaptorBase &base)
Definition SMT.h.inc:2448
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2457
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2453
BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2444
BVMulOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2451
BVMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2446
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2497
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3095
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:2511
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2492
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2539
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2533
BVMulOpAdaptor Adaptor
Definition SMT.h.inc:2489
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2529
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3146
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3109
::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:3099
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:2515
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:2524
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:2519
BVMulOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2491
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2505
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3159
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2501
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3012
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2493
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3067
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3177
BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2596
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2609
BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2598
BVNegOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2603
BVNegOpGenericAdaptor(RangeT values, const BVNegOpGenericAdaptorBase &base)
Definition SMT.h.inc:2600
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2605
BVNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2596
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:2663
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3295
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2668
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2649
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2672
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3233
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2653
BVNegOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2639
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:2659
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3305
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3255
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2645
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2641
::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:3259
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2678
BVNegOpAdaptor Adaptor
Definition SMT.h.inc:2637
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2640
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:3181
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3269
BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2735
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3323
BVNotOpGenericAdaptor(RangeT values, const BVNotOpGenericAdaptorBase &base)
Definition SMT.h.inc:2739
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2748
BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2737
BVNotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2735
BVNotOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2742
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2744
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2784
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2788
BVNotOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2778
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2779
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3401
::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:3405
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2792
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3415
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2780
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3451
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3441
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2817
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:3327
BVNotOpAdaptor Adaptor
Definition SMT.h.inc:2776
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:2802
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2807
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2811
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:2798
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3379
BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2874
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3469
BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2874
BVOrOpGenericAdaptor(RangeT values, const BVOrOpGenericAdaptorBase &base)
Definition SMT.h.inc:2878
BVOrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:2881
BVOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2876
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2883
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:2887
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:2969
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3556
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:2922
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:2935
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:2927
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:2941
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3528
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:2959
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:2954
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:2949
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3473
BVOrOpAdaptor Adaptor
Definition SMT.h.inc:2919
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:2945
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:2963
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:2923
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3620
::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:3560
BVOrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:2921
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:2931
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3607
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3570
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3638
BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3026
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3039
BVSDivOpGenericAdaptor(RangeT values, const BVSDivOpGenericAdaptorBase &base)
Definition SMT.h.inc:3030
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3035
BVSDivOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3033
BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3026
BVSDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3028
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3074
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3115
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3697
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3083
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3101
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3079
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3725
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3097
BVSDivOpAdaptor Adaptor
Definition SMT.h.inc:3071
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3642
::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:3729
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3776
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3075
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3739
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3121
BVSDivOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3073
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3087
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3106
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3789
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3111
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3093
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3807
BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3178
BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3178
BVSModOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3185
BVSModOpGenericAdaptor(RangeT values, const BVSModOpGenericAdaptorBase &base)
Definition SMT.h.inc:3182
BVSModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3180
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3187
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3191
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3258
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3267
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:3866
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3235
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3226
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3245
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3249
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3263
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3253
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3227
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:3894
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3811
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:3908
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3239
BVSModOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3225
::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:3898
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:3958
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3273
BVSModOpAdaptor Adaptor
Definition SMT.h.inc:3223
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:3945
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3231
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:3976
BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3330
BVSRemOpGenericAdaptor(RangeT values, const BVSRemOpGenericAdaptorBase &base)
Definition SMT.h.inc:3334
BVSRemOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3337
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3339
BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3332
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3343
BVSRemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3330
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3379
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3419
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:3980
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3397
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4127
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4063
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3410
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4035
BVSRemOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3377
::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:4067
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3405
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3387
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3383
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4077
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3378
BVSRemOpAdaptor Adaptor
Definition SMT.h.inc:3375
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3401
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3415
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3391
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4114
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3425
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4145
BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3482
BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3484
BVShlOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3482
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3491
BVShlOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3489
BVShlOpGenericAdaptor(RangeT values, const BVShlOpGenericAdaptorBase &base)
Definition SMT.h.inc:3486
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3495
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3562
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3549
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4296
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3539
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4204
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3571
BVShlOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3529
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4232
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3535
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3553
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4149
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3543
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3530
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3577
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4246
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4283
::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:4236
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3567
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3557
BVShlOpAdaptor Adaptor
Definition SMT.h.inc:3527
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3531
BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3634
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4314
BVUDivOpGenericAdaptor(RangeT values, const BVUDivOpGenericAdaptorBase &base)
Definition SMT.h.inc:3638
BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3636
BVUDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3634
BVUDivOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3641
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3643
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3647
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4465
BVUDivOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3681
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3709
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3714
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3723
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3719
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3695
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3691
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4318
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3682
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4401
BVUDivOpAdaptor Adaptor
Definition SMT.h.inc:3679
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3705
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3683
::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:4405
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4415
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3729
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3687
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4373
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4452
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3701
BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3786
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4483
BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3786
BVURemOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3788
BVURemOpGenericAdaptor(RangeT values, const BVURemOpGenericAdaptorBase &base)
Definition SMT.h.inc:3790
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3799
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3795
BVURemOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3793
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3847
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:3861
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:3881
::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:4574
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:3853
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4584
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:3871
BVURemOpAdaptor Adaptor
Definition SMT.h.inc:3831
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:3875
BVURemOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3833
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:3857
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4634
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3835
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4542
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3839
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4570
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3843
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3834
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4487
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:3866
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4621
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4652
BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3938
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3947
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:3951
BVXOrOpGenericAdaptor(RangeT values, const BVXOrOpGenericAdaptorBase &base)
Definition SMT.h.inc:3942
BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3940
BVXOrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:3945
BVXOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3938
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:4009
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:4656
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:3999
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:3995
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:4013
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:4005
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:4753
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:4711
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4027
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:4790
BVXOrOpAdaptor Adaptor
Definition SMT.h.inc:3983
::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:4743
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:4033
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:4018
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:3987
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:4803
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:3986
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4023
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:3991
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:4739
BVXOrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:3985
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4121
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:4828
BoolConstantOpAdaptor(BoolConstantOp op)
Definition SMT.cpp.inc:4826
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4123
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:4125
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4136
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4132
BoolConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4121
BoolConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4130
BoolConstantOpGenericAdaptor(RangeT values, const BoolConstantOpGenericAdaptorBase &base)
Definition SMT.h.inc:4127
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:4907
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:4887
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4186
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4178
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:4876
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::BoolAttr value)
Definition SMT.cpp.inc:4928
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:4881
BoolConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4162
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4165
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5055
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4182
void setValueAttr(::mlir::BoolAttr attr)
Definition SMT.h.inc:4220
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5025
BoolConstantOpAdaptor Adaptor
Definition SMT.h.inc:4160
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4196
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5084
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:4170
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:4202
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4192
FoldAdaptor::Properties Properties
Definition SMT.h.inc:4164
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:4894
void setValue(bool attrValue)
Definition SMT.cpp.inc:4924
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:421
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4163
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5043
::mlir::BoolAttr getValueAttr()
Definition SMT.h.inc:4215
::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:5047
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:4860
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5076
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:4174
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:4914
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition SMTOps.cpp:425
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:4837
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:4898
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5102
CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4312
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4321
CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4314
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4325
CheckOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4312
CheckOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4319
CheckOpGenericAdaptor(RangeT values, const CheckOpGenericAdaptorBase &base)
Definition SMT.h.inc:4316
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4365
::mlir::Region & getUnsatRegion()
Definition SMT.h.inc:4390
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4361
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange results)
Definition SMT.cpp.inc:5124
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4357
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5172
CheckOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4351
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5140
::mlir::Region & getUnknownRegion()
Definition SMT.h.inc:4386
::mlir::Region & getSatRegion()
Definition SMT.h.inc:4382
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4353
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5168
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4352
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.cpp.inc:5106
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:212
::mlir::Operation::result_range getResults()
Definition SMT.h.inc:4378
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5215
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4372
CheckOpAdaptor Adaptor
Definition SMT.h.inc:4349
ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4443
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5279
ConcatOpGenericAdaptor(RangeT values, const ConcatOpGenericAdaptorBase &base)
Definition SMT.h.inc:4447
ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4443
ConcatOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4450
ConcatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4445
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4452
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4456
::mlir::TypedValue<::llzk::smt::BitVectorType > getRhs()
Definition SMT.h.inc:4514
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:4518
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5425
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4528
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4496
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4491
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:4538
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5338
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5366
ConcatOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4490
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4504
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5370
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:5283
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5412
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4492
::mlir::TypedValue<::llzk::smt::BitVectorType > getLhs()
Definition SMT.h.inc:4510
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:4523
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4532
::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:316
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4500
ConcatOpAdaptor Adaptor
Definition SMT.h.inc:4488
DeclareFunOpAdaptor(DeclareFunOp op)
Definition SMT.cpp.inc:5448
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4626
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5450
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:4630
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4641
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4637
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4626
DeclareFunOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4635
DeclareFunOpGenericAdaptor(RangeT values, const DeclareFunOpGenericAdaptorBase &base)
Definition SMT.h.inc:4632
DeclareFunOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4628
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:5458
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:5613
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5609
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:5644
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:5535
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4687
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:5528
void setNamePrefix(::std::optional<::llvm::StringRef > attrValue)
Definition SMT.cpp.inc:5546
::mlir::StringAttr getNamePrefixAttr()
Definition SMT.h.inc:4720
DeclareFunOpAdaptor Adaptor
Definition SMT.h.inc:4665
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:5508
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:5515
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:4707
::mlir::StringAttr getNamePrefixAttrName(::mlir::OperationName name)
Definition SMT.h.inc:4679
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:144
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:5502
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5657
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4697
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4670
::mlir::Attribute removeNamePrefixAttr()
Definition SMT.h.inc:4730
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5592
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:5481
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:5497
FoldAdaptor::Properties Properties
Definition SMT.h.inc:4669
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:5519
::std::optional< ::llvm::StringRef > getNamePrefix()
Definition SMT.cpp.inc:5541
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4683
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4668
::mlir::StringAttr getNamePrefixAttrName()
Definition SMT.h.inc:4675
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4691
void setNamePrefixAttr(::mlir::StringAttr attr)
Definition SMT.h.inc:4725
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Type type)
Definition SMT.cpp.inc:5554
DeclareFunOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4667
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4701
DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4798
DistinctOpAdaptor(DistinctOp op)
Definition SMT.cpp.inc:5697
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5699
DistinctOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4805
DistinctOpGenericAdaptor(RangeT values, const DistinctOpGenericAdaptorBase &base)
Definition SMT.h.inc:4802
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4811
DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4798
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4807
DistinctOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4800
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:4858
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4843
DistinctOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4841
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4852
DistinctOpAdaptor Adaptor
Definition SMT.h.inc:4839
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5783
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:4873
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4867
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:280
::llvm::LogicalResult verify()
Definition SMTOps.cpp:286
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:276
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4847
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:5703
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4842
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4863
::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:5789
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5761
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:5721
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:5727
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5797
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5833
EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4927
EqOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:4934
EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4929
EqOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4927
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:4936
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:4940
EqOpGenericAdaptor(RangeT values, const EqOpGenericAdaptorBase &base)
Definition SMT.h.inc:4931
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:5917
::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:5923
EqOpAdaptor Adaptor
Definition SMT.h.inc:4968
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:5837
EqOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:4970
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:4971
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:5855
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:4987
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5002
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:4976
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:5861
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:258
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:5895
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:254
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:4981
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:5931
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:4972
::llvm::LogicalResult verify()
Definition SMTOps.cpp:264
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:4992
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:4996
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:5980
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5128
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:5132
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5128
ExistsOpGenericAdaptor(RangeT values, const ExistsOpGenericAdaptorBase &base)
Definition SMT.h.inc:5134
ExistsOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5137
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5139
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5143
ExistsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5130
::mlir::Region & getBody()
Definition SMT.h.inc:5229
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:6250
FoldAdaptor::Properties Properties
Definition SMT.h.inc:5171
::llvm::LogicalResult verify()
Definition SMTOps.cpp:605
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:6113
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:6084
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:6096
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:614
::mlir::StringAttr getNoPatternAttrName()
Definition SMT.h.inc:5185
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:6200
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:6077
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:6142
::mlir::MutableArrayRef<::mlir::Region > getPatterns()
Definition SMT.h.inc:5233
void setWeightAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:5261
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5205
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:6317
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:6236
::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5189
::mlir::Attribute removeNoPatternAttr()
Definition SMT.h.inc:5275
void setNoPattern(bool attrValue)
Definition SMT.cpp.inc:6186
::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:6242
::mlir::UnitAttr getNoPatternAttr()
Definition SMT.h.inc:5251
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5219
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition SMT.cpp.inc:6194
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:6047
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5201
::mlir::ArrayAttr getBoundVarNamesAttr()
Definition SMT.h.inc:5256
ExistsOpAdaptor Adaptor
Definition SMT.h.inc:5167
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:6177
::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5181
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5215
::mlir::StringAttr getWeightAttrName()
Definition SMT.h.inc:5193
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)
ExistsOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5169
void setNoPatternAttr(::mlir::UnitAttr attr)
Definition SMT.h.inc:5266
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5170
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6121
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5209
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5172
::mlir::Attribute removeBoundVarNamesAttr()
Definition SMT.h.inc:5281
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:6155
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:5996
::mlir::StringAttr getBoundVarNamesAttrName()
Definition SMT.h.inc:5177
::mlir::IntegerAttr getWeightAttr()
Definition SMT.h.inc:5246
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5225
::mlir::StringAttr getWeightAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5197
void setBoundVarNamesAttr(::mlir::ArrayAttr attr)
Definition SMT.h.inc:5271
uint32_t getWeight()
Definition SMT.cpp.inc:6165
void setWeight(uint32_t attrValue)
Definition SMT.cpp.inc:6182
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5382
ExtractOpAdaptor(ExtractOp op)
Definition SMT.cpp.inc:6398
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:6400
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5384
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5382
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5397
ExtractOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5391
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5393
ExtractOpGenericAdaptor(RangeT values, const ExtractOpGenericAdaptorBase &base)
Definition SMT.h.inc:5388
ExtractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:5386
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5443
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5447
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:6577
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:6571
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:5461
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:5457
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5451
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6470
::mlir::StringAttr getLowBitAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5439
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:6618
::mlir::StringAttr getLowBitAttrName()
Definition SMT.h.inc:5435
void setLowBitAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:5494
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5430
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6409
ExtractOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5427
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:6432
FoldAdaptor::Properties Properties
Definition SMT.h.inc:5429
void setLowBit(uint32_t attrValue)
Definition SMT.cpp.inc:6496
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:6453
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5470
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:6448
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr lowBit, ::mlir::Value input)
Definition SMT.cpp.inc:6500
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:6486
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:6479
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5466
ExtractOpAdaptor Adaptor
Definition SMT.h.inc:5425
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:6466
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:6544
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:6632
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5428
::llvm::LogicalResult verify()
Definition SMTOps.cpp:298
::mlir::IntegerAttr getLowBitAttr()
Definition SMT.h.inc:5489
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:5476
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:6459
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5634
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:6681
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5636
ForallOpGenericAdaptor(RangeT values, const ForallOpGenericAdaptorBase &base)
Definition SMT.h.inc:5640
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5649
ForallOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5643
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:5638
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5645
ForallOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5634
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5711
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:6785
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:6878
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:586
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7018
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:6797
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:6951
void setBoundVarNamesAttr(::mlir::ArrayAttr attr)
Definition SMT.h.inc:5777
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5715
ForallOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5675
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:6814
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5707
::mlir::StringAttr getBoundVarNamesAttrName()
Definition SMT.h.inc:5683
void setNoPatternAttr(::mlir::UnitAttr attr)
Definition SMT.h.inc:5772
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5731
::llvm::LogicalResult verify()
Definition SMTOps.cpp:577
::mlir::Region & getBody()
Definition SMT.h.inc:5735
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6697
::mlir::ArrayAttr getBoundVarNamesAttr()
Definition SMT.h.inc:5762
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:6822
::mlir::IntegerAttr getWeightAttr()
Definition SMT.h.inc:5752
::mlir::StringAttr getBoundVarNamesAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5687
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5676
::mlir::StringAttr getWeightAttrName()
Definition SMT.h.inc:5699
uint32_t getWeight()
Definition SMT.cpp.inc:6866
::mlir::StringAttr getWeightAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5703
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:6856
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:588
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:6778
::mlir::StringAttr getNoPatternAttrName()
Definition SMT.h.inc:5691
::mlir::Attribute removeBoundVarNamesAttr()
Definition SMT.h.inc:5787
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:6901
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:6843
::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:6943
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5721
void setWeight(uint32_t attrValue)
Definition SMT.cpp.inc:6883
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5678
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5725
::mlir::UnitAttr getNoPatternAttr()
Definition SMT.h.inc:5757
ForallOpAdaptor Adaptor
Definition SMT.h.inc:5673
void setWeightAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:5767
::mlir::MutableArrayRef<::mlir::Region > getPatterns()
Definition SMT.h.inc:5739
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:6748
::mlir::Attribute removeNoPatternAttr()
Definition SMT.h.inc:5781
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition SMT.cpp.inc:6895
::mlir::StringAttr getNoPatternAttrName(::mlir::OperationName name)
Definition SMT.h.inc:5695
void setNoPattern(bool attrValue)
Definition SMT.cpp.inc:6887
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:6937
FoldAdaptor::Properties Properties
Definition SMT.h.inc:5677
ImpliesOpAdaptor(ImpliesOp op)
Definition SMT.cpp.inc:7092
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7094
ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5857
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5866
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:5870
ImpliesOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:5864
ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5857
ImpliesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5859
ImpliesOpGenericAdaptor(RangeT values, const ImpliesOpGenericAdaptorBase &base)
Definition SMT.h.inc:5861
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:5910
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7234
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7224
::mlir::TypedValue<::llzk::smt::BoolType > getRhs()
Definition SMT.h.inc:5928
::mlir::TypedValue<::llzk::smt::BoolType > getLhs()
Definition SMT.h.inc:5924
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:5905
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7193
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:7098
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7181
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:5937
ImpliesOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:5904
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7153
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:5952
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:5918
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:5914
::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:7185
ImpliesOpAdaptor Adaptor
Definition SMT.h.inc:5902
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:5906
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:5946
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:5932
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:5942
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7252
Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6009
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6022
Int2BVOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6016
Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6009
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6018
Int2BVOpGenericAdaptor(RangeT values, const Int2BVOpGenericAdaptorBase &base)
Definition SMT.h.inc:6013
Int2BVOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6011
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6054
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:6076
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6062
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6085
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7275
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6081
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7297
Int2BVOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6052
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7328
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:7256
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7301
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:6091
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6058
::mlir::TypedValue<::llzk::smt::IntType > getInput()
Definition SMT.h.inc:6072
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6066
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7338
Int2BVOpAdaptor Adaptor
Definition SMT.h.inc:6050
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6053
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7356
IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6145
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6158
IntAbsOpGenericAdaptor(RangeT values, const IntAbsOpGenericAdaptorBase &base)
Definition SMT.h.inc:6149
IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6147
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6154
IntAbsOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6145
IntAbsOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6152
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6190
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:6212
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7466
IntAbsOpAdaptor Adaptor
Definition SMT.h.inc:6186
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6194
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7446
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7473
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7412
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6227
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6217
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6221
::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:7438
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7434
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:7360
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6189
IntAbsOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6188
::mlir::TypedValue<::llzk::smt::IntType > getInput()
Definition SMT.h.inc:6208
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6202
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6198
IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6281
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7509
IntAddOpGenericAdaptor(RangeT values, const IntAddOpGenericAdaptorBase &base)
Definition SMT.h.inc:6285
IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6281
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6290
IntAddOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6283
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6294
IntAddOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6288
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6346
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6330
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:6341
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6335
::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:7592
IntAddOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6324
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs)
Definition SMT.cpp.inc:7537
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7627
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7566
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7620
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6326
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6356
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:7531
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6325
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6350
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:7513
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7588
IntAddOpAdaptor Adaptor
Definition SMT.h.inc:6322
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7600
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6442
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:7652
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6442
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6453
IntCmpOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6451
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:6446
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6457
IntCmpOpGenericAdaptor(RangeT values, const IntCmpOpGenericAdaptorBase &base)
Definition SMT.h.inc:6448
IntCmpOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6444
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6515
::mlir::StringAttr getPredAttrName()
Definition SMT.h.inc:6499
IntCmpOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6491
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:7861
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6539
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:7752
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:7722
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6511
void setPred(::llzk::smt::IntPredicate attrValue)
Definition SMT.cpp.inc:7748
FoldAdaptor::Properties Properties
Definition SMT.h.inc:6493
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:7700
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:7684
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:7990
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:6549
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6507
::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:7898
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:7718
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6494
void setPredAttr(::llzk::smt::IntPredicateAttr attr)
Definition SMT.h.inc:6567
::llzk::smt::IntPredicate getPred()
Definition SMT.cpp.inc:7743
IntCmpOpAdaptor Adaptor
Definition SMT.h.inc:6489
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:7711
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:7705
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:6525
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6492
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:7894
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:7661
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:7972
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:6534
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:7731
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6543
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:7906
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:7738
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:6521
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:6529
::llzk::smt::IntPredicateAttr getPredAttr()
Definition SMT.h.inc:6562
::mlir::StringAttr getPredAttrName(::mlir::OperationName name)
Definition SMT.h.inc:6503
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6672
IntConstantOpAdaptor(IntConstantOp op)
Definition SMT.cpp.inc:8013
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8015
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:6676
IntConstantOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6681
IntConstantOpGenericAdaptor(RangeT values, const IntConstantOpGenericAdaptorBase &base)
Definition SMT.h.inc:6678
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6683
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6672
IntConstantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6674
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6687
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:8094
::mlir::APInt getValue()
Definition SMT.cpp.inc:8106
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:446
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6716
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:8081
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6714
::mlir::OpFoldResult fold(FoldAdaptor adaptor)
Definition SMTOps.cpp:441
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6753
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8200
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition SMTOps.cpp:434
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:8085
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:451
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6737
::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:8204
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6729
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:8101
FoldAdaptor::Properties Properties
Definition SMT.h.inc:6715
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6743
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:8068
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:8047
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:8024
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:6725
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6747
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:8063
::mlir::IntegerAttr getValueAttr()
Definition SMT.h.inc:6766
IntConstantOpAdaptor Adaptor
Definition SMT.h.inc:6711
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8182
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:6721
IntConstantOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6713
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6733
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::IntegerAttr value)
Definition SMT.cpp.inc:8111
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8212
void setValueAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:6771
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:8074
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8230
IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6843
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6852
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:6856
IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6843
IntDivOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:6850
IntDivOpGenericAdaptor(RangeT values, const IntDivOpGenericAdaptorBase &base)
Definition SMT.h.inc:6847
IntDivOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6845
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8329
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:6914
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8370
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8317
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8289
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:6923
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:6892
IntDivOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:6890
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:8234
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:6938
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:6932
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:6891
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8360
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:6904
::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:8321
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:6918
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:6900
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:6896
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:6910
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:6928
IntDivOpAdaptor Adaptor
Definition SMT.h.inc:6888
IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6995
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8388
IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6995
IntModOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6997
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7008
IntModOpGenericAdaptor(RangeT values, const IntModOpGenericAdaptorBase &base)
Definition SMT.h.inc:6999
IntModOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7002
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7004
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:8392
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7048
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8475
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:7062
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7056
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7052
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8447
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8487
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7084
IntModOpAdaptor Adaptor
Definition SMT.h.inc:7040
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8528
::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:8479
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:7075
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:7070
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8518
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:7066
IntModOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7042
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7080
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7043
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7044
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7090
IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7144
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8564
IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7144
IntMulOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7146
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7157
IntMulOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7151
IntMulOpGenericAdaptor(RangeT values, const IntMulOpGenericAdaptorBase &base)
Definition SMT.h.inc:7148
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7153
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::ValueRange inputs)
Definition SMT.cpp.inc:8592
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7193
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7213
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7188
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7209
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:8568
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8643
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7219
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8655
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8682
IntMulOpAdaptor Adaptor
Definition SMT.h.inc:7185
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:7204
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8621
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7189
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8675
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7198
IntMulOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7187
::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:8647
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:8586
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8700
IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7274
IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7276
IntNegOpGenericAdaptor(RangeT values, const IntNegOpGenericAdaptorBase &base)
Definition SMT.h.inc:7278
IntNegOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7281
IntNegOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7274
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7287
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7283
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8810
IntNegOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7317
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8817
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7319
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7323
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7318
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8778
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7346
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8756
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7331
IntNegOpAdaptor Adaptor
Definition SMT.h.inc:7315
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8790
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:7341
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7327
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7350
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7356
::mlir::TypedValue<::llzk::smt::IntType > getInput()
Definition SMT.h.inc:7337
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:8704
::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:8782
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8835
IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7413
IntSubOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7420
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7422
IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7415
IntSubOpGenericAdaptor(RangeT values, const IntSubOpGenericAdaptorBase &base)
Definition SMT.h.inc:7417
IntSubOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7413
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7426
::mlir::TypedValue<::llzk::smt::IntType > getLhs()
Definition SMT.h.inc:7480
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value lhs, ::mlir::Value rhs)
Definition SMT.cpp.inc:8839
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7466
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:8965
IntSubOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7460
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:8894
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:8975
::mlir::OpOperand & getRhsMutable()
Definition SMT.h.inc:7493
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7474
::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:8926
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7470
::mlir::TypedValue<::llzk::smt::IntType > getRhs()
Definition SMT.h.inc:7484
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7498
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7502
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:8934
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7462
IntSubOpAdaptor Adaptor
Definition SMT.h.inc:7458
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:8922
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7461
::mlir::TypedValue<::llzk::smt::IntType > getResult()
Definition SMT.h.inc:7508
::mlir::OpOperand & getLhsMutable()
Definition SMT.h.inc:7488
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:8993
IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7565
IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7567
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7574
IteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7565
IteOpGenericAdaptor(RangeT values, const IteOpGenericAdaptorBase &base)
Definition SMT.h.inc:7569
IteOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7572
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7578
::mlir::OpOperand & getCondMutable()
Definition SMT.h.inc:7648
IteOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7616
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9170
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7663
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7618
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9154
::mlir::TypedValue<::mlir::Type > getElseValue()
Definition SMT.h.inc:7644
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7667
IteOpAdaptor Adaptor
Definition SMT.h.inc:7614
::mlir::TypedValue<::mlir::Type > getThenValue()
Definition SMT.h.inc:7640
::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:9095
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7617
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9091
::mlir::OpOperand & getThenValueMutable()
Definition SMT.h.inc:7653
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7630
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:8997
::mlir::TypedValue<::mlir::Type > getResult()
Definition SMT.h.inc:7673
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7626
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9055
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7622
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9105
::mlir::OpOperand & getElseValueMutable()
Definition SMT.h.inc:7658
::mlir::TypedValue<::llzk::smt::BoolType > getCond()
Definition SMT.h.inc:7636
NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7730
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9188
NotOpGenericAdaptor(RangeT values, const NotOpGenericAdaptorBase &base)
Definition SMT.h.inc:7734
NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7730
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7743
NotOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7732
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7739
NotOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7737
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9298
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7802
::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:9270
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7779
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7806
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9266
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7787
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9244
NotOpAdaptor Adaptor
Definition SMT.h.inc:7771
::mlir::TypedValue<::llzk::smt::BoolType > getInput()
Definition SMT.h.inc:7793
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7774
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9305
NotOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7773
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7783
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7775
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:7812
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9278
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value input)
Definition SMT.cpp.inc:9192
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:7797
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9341
OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7866
OrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:7873
OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7868
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:7875
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:7879
OrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7866
OrOpGenericAdaptor(RangeT values, const OrOpGenericAdaptorBase &base)
Definition SMT.h.inc:7870
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:7911
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:7941
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:7935
OrOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:7909
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:7931
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9457
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9425
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, mlir::Value lhs, mlir::Value rhs)
Definition SMT.cpp.inc:9369
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9437
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9403
::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:9429
::mlir::MutableOperandRange getInputsMutable()
Definition SMT.cpp.inc:9363
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:7910
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9464
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:7920
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:7915
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:7926
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.cpp.inc:9345
OrOpAdaptor Adaptor
Definition SMT.h.inc:7907
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8028
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9489
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8028
PopOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8037
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8043
PopOpGenericAdaptor(RangeT values, const PopOpGenericAdaptorBase &base)
Definition SMT.h.inc:8034
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8032
PopOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8030
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8039
::mlir::StringAttr getCountAttrName()
Definition SMT.h.inc:8077
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8071
::mlir::StringAttr getCountAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8081
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8103
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8089
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:9568
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9498
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:9575
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9627
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8099
uint32_t getCount()
Definition SMT.cpp.inc:9580
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9659
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:9555
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8085
void setCount(uint32_t attrValue)
Definition SMT.cpp.inc:9585
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8072
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8070
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9640
::mlir::IntegerAttr getCountAttr()
Definition SMT.h.inc:8118
PopOpAdaptor Adaptor
Definition SMT.h.inc:8067
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9636
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:9537
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count)
Definition SMT.cpp.inc:9589
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8093
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:9521
PopOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8069
void setCountAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:8123
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:9542
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:9548
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9559
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8223
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9689
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8227
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8223
PushOpGenericAdaptor(RangeT values, const PushOpGenericAdaptorBase &base)
Definition SMT.h.inc:8229
PushOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8232
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8238
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8234
PushOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8225
::mlir::StringAttr getCountAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8276
void setCountAttr(::mlir::IntegerAttr attr)
Definition SMT.h.inc:8318
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8265
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9827
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9836
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition SMT.cpp.inc:9748
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8298
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8288
PushOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8264
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition SMT.cpp.inc:9742
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8280
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9759
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::IntegerAttr count)
Definition SMT.cpp.inc:9789
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition SMT.cpp.inc:9775
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9840
PushOpAdaptor Adaptor
Definition SMT.h.inc:8262
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition SMT.cpp.inc:9721
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9859
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8294
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition SMT.cpp.inc:9768
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8267
uint32_t getCount()
Definition SMT.cpp.inc:9780
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8284
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8266
::mlir::StringAttr getCountAttrName()
Definition SMT.h.inc:8272
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition SMT.cpp.inc:9698
::mlir::IntegerAttr getCountAttr()
Definition SMT.h.inc:8313
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition SMT.cpp.inc:9737
void setCount(uint32_t attrValue)
Definition SMT.cpp.inc:9785
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition SMT.cpp.inc:9755
RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8387
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9882
RepeatOpGenericAdaptor(RangeT values, const RepeatOpGenericAdaptorBase &base)
Definition SMT.h.inc:8391
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8396
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8400
RepeatOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8394
RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8387
RepeatOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8389
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8431
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition SMT.cpp.inc:9933
::mlir::TypedValue<::llzk::smt::BitVectorType > getInput()
Definition SMT.h.inc:8450
::llvm::LogicalResult verify()
Definition SMTOps.cpp:334
::mlir::TypedValue<::llzk::smt::BitVectorType > getResult()
Definition SMT.h.inc:8469
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8440
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8432
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, unsigned count, mlir::Value input)
::mlir::OpOperand & getInputMutable()
Definition SMT.h.inc:8454
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8459
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8463
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:411
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8444
unsigned getCount()
Get the number of times the input operand is repeated.
Definition SMTOps.cpp:345
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8436
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9927
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:357
RepeatOpAdaptor Adaptor
Definition SMT.h.inc:8428
RepeatOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8430
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9905
ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8527
::llvm::LogicalResult verify(::mlir::Location loc)
Definition SMT.cpp.inc:9951
ResetOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8534
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8540
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8536
ResetOpGenericAdaptor(RangeT values, const ResetOpGenericAdaptorBase &base)
Definition SMT.h.inc:8531
ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8527
ResetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8529
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8568
ResetOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8566
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8586
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8567
::llvm::LogicalResult verifyInvariants()
Definition SMT.cpp.inc:9975
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition SMT.cpp.inc:9988
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8576
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8572
::llvm::LogicalResult verifyInvariantsImpl()
Definition SMT.cpp.inc:9971
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8580
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
Definition SMT.cpp.inc:9955
ResetOpAdaptor Adaptor
Definition SMT.h.inc:8564
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8590
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMT.cpp.inc:9979
::llvm::LogicalResult verify(::mlir::Location loc)
SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8693
SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8697
SetInfoOpGenericAdaptor(RangeT values, const SetInfoOpGenericAdaptorBase &base)
Definition SMT.h.inc:8699
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8704
SetInfoOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8702
SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8693
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8708
SetInfoOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8695
::mlir::Attribute getValue()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llzk::smt::KeywordAttr getKeyAttr()
Definition SMT.h.inc:8791
::llzk::smt::KeywordAttr getKey()
void setKeyAttr(::llzk::smt::KeywordAttr attr)
Definition SMT.h.inc:8801
void print(::mlir::OpAsmPrinter &p)
Definition SMTOps.cpp:190
::llvm::LogicalResult verifyInvariantsImpl()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::StringAttr getValueAttrName()
Definition SMT.h.inc:8750
::mlir::StringAttr getKeyAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8746
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8735
SetInfoOpAdaptor Adaptor
Definition SMT.h.inc:8732
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8776
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:8737
::llvm::LogicalResult verifyInvariants()
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8736
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition SMTOps.cpp:167
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8772
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8762
void writeProperties(::mlir::DialectBytecodeWriter &writer)
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8758
void setValueAttr(::mlir::Attribute attr)
Definition SMT.h.inc:8805
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Attribute getValueAttr()
Definition SMT.h.inc:8796
::mlir::StringAttr getValueAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8754
::llvm::LogicalResult verify()
Definition SMTOps.cpp:198
::mlir::StringAttr getKeyAttrName()
Definition SMT.h.inc:8742
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8766
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
SetInfoOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:8734
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::smt::KeywordAttr key, ::mlir::Attribute value)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8903
::llvm::LogicalResult verify(::mlir::Location loc)
SetLogicOpAdaptor(SetLogicOp op)
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:8918
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8914
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8903
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8905
SetLogicOpGenericAdaptor(RangeT values, const SetLogicOpGenericAdaptorBase &base)
Definition SMT.h.inc:8909
SetLogicOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:8912
SetLogicOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition SMT.h.inc:8907
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:8968
::llvm::StringRef getLogic()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:8960
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
SetLogicOpAdaptor Adaptor
Definition SMT.h.inc:8942
::mlir::StringAttr getLogicAttr()
Definition SMT.h.inc:8993
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:8978
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:8944
::llvm::LogicalResult verifyInvariants()
void setLogic(::llvm::StringRef attrValue)
::mlir::StringAttr getLogicAttrName()
Definition SMT.h.inc:8952
::mlir::StringAttr getLogicAttrName(::mlir::OperationName name)
Definition SMT.h.inc:8956
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:8974
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:8947
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:8945
FoldAdaptor::Properties Properties
Definition SMT.h.inc:8946
void setLogicAttr(::mlir::StringAttr attr)
Definition SMT.h.inc:8998
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:8964
::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:9072
SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9074
SolverOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:9079
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:9081
SolverOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9072
SolverOpGenericAdaptor(RangeT values, const SolverOpGenericAdaptorBase &base)
Definition SMT.h.inc:9076
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:9085
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:9138
::llvm::LogicalResult verifyInvariants()
SolverOpAdaptor Adaptor
Definition SMT.h.inc:9113
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:9144
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:9126
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyRegions()
Definition SMTOps.cpp:152
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:9121
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Region & getBodyRegion()
Definition SMT.h.inc:9148
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:9116
SolverOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:9115
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:9132
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:9117
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:9197
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:9210
XOrOpGenericAdaptor(RangeT values, const XOrOpGenericAdaptorBase &base)
Definition SMT.h.inc:9201
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:9206
XOrOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:9204
XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9199
XOrOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9197
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:9262
::mlir::TypedValue<::llzk::smt::BoolType > getResult()
Definition SMT.h.inc:9272
::mlir::Operation::result_range getODSResults(unsigned index)
Definition SMT.h.inc:9266
::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:9251
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition SMT.h.inc:9242
::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:9240
::mlir::MutableOperandRange getInputsMutable()
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:9246
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:9241
::mlir::Operation::operand_range getInputs()
Definition SMT.h.inc:9257
XOrOpAdaptor Adaptor
Definition SMT.h.inc:9238
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:9325
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition SMT.h.inc:9334
YieldOpGenericAdaptor(RangeT values, LateInst op)
Definition SMT.h.inc:9332
RangeT getODSOperands(unsigned index)
Definition SMT.h.inc:9338
YieldOpGenericAdaptor(RangeT values, const YieldOpGenericAdaptorBase &base)
Definition SMT.h.inc:9329
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9325
YieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9327
YieldOpGenericAdaptor< RangeT > GenericAdaptor
Definition SMT.h.inc:9368
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition SMT.h.inc:9369
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition SMT.h.inc:9390
::mlir::MutableOperandRange getValuesMutable()
YieldOpAdaptor Adaptor
Definition SMT.h.inc:9366
static constexpr ::llvm::StringLiteral getOperationName()
Definition SMT.h.inc:9374
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:9370
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition SMT.h.inc:9379
::mlir::Operation::operand_range getValues()
Definition SMT.h.inc:9385
::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:9394
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariantsImpl()
AndOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:312
AndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:308
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:390
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:315
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:305
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:549
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:433
ApplyFuncOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:436
ApplyFuncOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:440
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:584
ArrayBroadcastOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:582
ArrayBroadcastOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:578
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:575
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:720
ArraySelectOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:718
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:711
ArraySelectOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:714
ArrayStoreOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:866
ArrayStoreOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:870
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:863
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:872
AssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1031
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1037
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1028
AssertOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1035
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1189
BV2IntOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1183
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1179
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1387
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1378
BVAShrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1385
BVAShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1381
BVAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1533
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:1543
BVAddOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1537
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1530
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1539
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1691
BVAndOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:1689
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1682
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:1695
BVAndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1685
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:1864
::llzk::smt::BVCmpPredicateAttr getPredAttr()
Definition SMT.h.inc:1876
::llzk::smt::BVCmpPredicate getPred()
Definition SMT.cpp.inc:2205
BVCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:1858
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:1872
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:1854
::llzk::smt::BitVectorAttr getValueAttr()
Definition SMT.h.inc:2106
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2084
BVConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2088
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2094
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2268
BVLShrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2275
BVLShrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2271
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2277
BVMulOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2427
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2433
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2420
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2429
BVMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2423
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2585
BVNegOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2579
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2581
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2572
BVNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2575
BVNotOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2718
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2720
BVNotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2714
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2711
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2724
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:2859
BVOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:2853
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:2863
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:2850
BVOrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:2857
BVSDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3005
BVSDivOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3009
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3011
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3002
BVSModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3157
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3163
BVSModOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3161
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3154
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3315
BVSRemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3309
BVSRemOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3313
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3306
BVShlOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3461
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:3471
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3458
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3467
BVShlOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3465
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3619
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3610
BVUDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3613
BVUDivOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3617
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3771
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3762
BVURemOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3769
BVURemOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3765
BVXOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:3917
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:3927
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:3914
BVXOrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:3921
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:3923
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4086
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4096
BoolConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4090
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4281
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:4285
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4272
CheckOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4279
CheckOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4275
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4419
ConcatOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4426
ConcatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4422
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4428
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4591
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:4601
DeclareFunOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4595
::std::optional< ::llvm::StringRef > getNamePrefix()
Definition SMT.cpp.inc:5442
DistinctOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4784
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:5678
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4777
DistinctOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4780
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:4906
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:5812
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:4916
EqOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:4909
EqOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:4913
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:5972
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5087
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5077
ExistsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5081
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5357
ExtractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5351
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5347
::std::optional< ::mlir::ArrayAttr > getBoundVarNames()
Definition SMT.cpp.inc:6673
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5593
ForallOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5587
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5583
ImpliesOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:5840
ImpliesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5836
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5833
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5842
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:5985
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:5994
Int2BVOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:5992
Int2BVOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:5988
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6130
IntAbsOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6124
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6121
IntAbsOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6128
IntAddOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6267
IntAddOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6263
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:7488
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6260
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6407
::llzk::smt::IntPredicateAttr getPredAttr()
Definition SMT.h.inc:6429
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6417
IntCmpOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6411
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6647
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6637
IntConstantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6641
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6819
IntDivOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6826
IntDivOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6822
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6828
IntModOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:6974
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:6971
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:6980
IntModOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:6978
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7123
IntMulOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7130
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:8543
IntMulOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7126
IntNegOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7253
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7250
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7259
IntNegOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7257
IntSubOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7392
IntSubOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7396
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7398
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7389
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7550
IteOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7548
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:7554
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7541
IteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7544
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:7719
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7706
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:7715
NotOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7713
NotOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7709
OrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:7852
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.cpp.inc:9320
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:7855
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7845
OrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7848
PopOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:7997
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8003
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8011
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:7993
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8188
PushOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8192
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8198
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8206
RepeatOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8366
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8372
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8363
RepeatOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:8370
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8512
ResetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8506
ResetOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:8510
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8503
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:8516
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8652
SetInfoOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8656
::llzk::smt::KeywordAttr getKeyAttr()
Definition SMT.h.inc:8674
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8662
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition SMT.h.inc:8878
SetLogicOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition SMT.h.inc:8872
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:8868
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:9043
SolverOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9046
SolverOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:9050
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:9176
XOrOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:9183
XOrOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9179
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:9186
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
Definition SMT.h.inc:9304
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr getAttributes()
Definition SMT.h.inc:9314
YieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition SMT.h.inc:9307
YieldOpGenericAdaptorBase(::mlir::Operation *op)
Definition SMT.h.inc:9311
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
Definition OpHelpers.h:32
void setIsSigned(const ::mlir::UnitAttr &propValue)
Definition SMT.h.inc:1165
bool operator!=(const Properties &rhs) const
Definition SMT.h.inc:1848
void setPred(const ::llzk::smt::BVCmpPredicateAttr &propValue)
Definition SMT.h.inc:1840
bool operator==(const Properties &rhs) const
Definition SMT.h.inc:1843
void setValue(const ::llzk::smt::BitVectorAttr &propValue)
Definition SMT.h.inc:2070
void setValue(const ::mlir::BoolAttr &propValue)
Definition SMT.h.inc:4072
void setNamePrefix(const ::mlir::StringAttr &propValue)
Definition SMT.h.inc:4577
void setNoPattern(const ::mlir::UnitAttr &propValue)
Definition SMT.h.inc:5051
void setBoundVarNames(const ::mlir::ArrayAttr &propValue)
Definition SMT.h.inc:5041
void setWeight(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:5061
void setLowBit(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:5333
void setWeight(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:5567
void setNoPattern(const ::mlir::UnitAttr &propValue)
Definition SMT.h.inc:5557
void setBoundVarNames(const ::mlir::ArrayAttr &propValue)
Definition SMT.h.inc:5547
void setPred(const ::llzk::smt::IntPredicateAttr &propValue)
Definition SMT.h.inc:6393
void setValue(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:6623
void setCount(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:7979
bool operator!=(const Properties &rhs) const
Definition SMT.h.inc:7987
bool operator==(const Properties &rhs) const
Definition SMT.h.inc:7982
bool operator!=(const Properties &rhs) const
Definition SMT.h.inc:8182
bool operator==(const Properties &rhs) const
Definition SMT.h.inc:8177
void setCount(const ::mlir::IntegerAttr &propValue)
Definition SMT.h.inc:8174
void setValue(const ::mlir::Attribute &propValue)
Definition SMT.h.inc:8637
void setKey(const ::llzk::smt::KeywordAttr &propValue)
Definition SMT.h.inc:8627
void setLogic(const ::mlir::StringAttr &propValue)
Definition SMT.h.inc:8854