26static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops1(
27 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
28 unsigned valueIndex) {
29 if (!((::llvm::isa<::llzk::felt::FeltType>(type)))) {
30 return op->emitOpError(valueKind) <<
" #" << valueIndex
31 <<
" must be finite field element, but got " << type;
33 return ::mlir::success();
36static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops2(
37 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
38 unsigned valueIndex) {
39 if (!((::llvm::isa<::mlir::IndexType>(type)))) {
40 return op->emitOpError(valueKind) <<
" #" << valueIndex
41 <<
" must be index, but got " << type;
43 return ::mlir::success();
46static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops3(
47 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
48 unsigned valueIndex) {
49 if (!(((type.isSignlessInteger(1))) || ((::llvm::isa<::mlir::IndexType>(type))))) {
50 return op->emitOpError(valueKind) <<
" #" << valueIndex
51 <<
" must be 1-bit signless integer or index, but got " << type;
53 return ::mlir::success();
56static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
57 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
58 if (attr && !((::llvm::isa<::llzk::cast::OverflowSemanticsAttr>(attr))))
59 return emitError() <<
"attribute '" << attrName
60 <<
"' failed to satisfy constraint: Specifies how a cast handles a source value outside the target's safe range. For a felt target with prime `p`, the safe range is `[0, p-1]`. For an index target with bitwidth `N`, it is `[0, 2^(N-1)-1]`.";
61 return ::mlir::success();
63static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
64 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
65 return __mlir_ods_local_attr_constraint_Ops1(attr, attrName, [op]() {
66 return op->emitOpError();
81 auto attr = ::llvm::dyn_cast_or_null<::llzk::cast::OverflowSemanticsAttr>(
getProperties().overflow);
87 return attr.getValue();
97 if (tblgen_overflow && !((::llvm::isa<::llzk::cast::OverflowSemanticsAttr>(tblgen_overflow))))
98 return emitError(loc,
"'cast.toindex' op attribute 'overflow' failed to satisfy constraint: Specifies how a cast handles a source value outside the target's safe range. For a felt target with prime `p`, the safe range is `[0, p-1]`. For an index target with bitwidth `N`, it is `[0, 2^(N-1)-1]`.");
99 return ::mlir::success();
103 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
105 emitError() <<
"expected DictionaryAttr to set properties";
106 return ::mlir::failure();
111 auto attr = dict.get(
"overflow");
113 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
115 propStorage = convertedAttr;
117 emitError() <<
"Invalid attribute `overflow` in property conversion: " << attr;
118 return ::mlir::failure();
122 return ::mlir::success();
126 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
127 ::mlir::Builder odsBuilder{ctx};
130 const auto &propStorage = prop.
overflow;
132 attrs.push_back(odsBuilder.getNamedAttr(
"overflow",
137 return odsBuilder.getDictionaryAttr(attrs);
142 using llvm::hash_value;
143 return llvm::hash_combine(
144 llvm::hash_value(prop.
overflow.getAsOpaquePointer()));
148 if (name ==
"overflow")
154 if (name ==
"overflow") {
155 prop.
overflow = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
overflow)>>(value);
167 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"overflow", emitError)))
168 return ::mlir::failure();
170 return ::mlir::success();
174 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
175 if (::mlir::failed(reader.readOptionalAttribute(prop.
overflow)))
176 return ::mlir::failure();
177 return ::mlir::success();
181 auto &prop = getProperties(); (void)prop;
183 writer.writeOptionalAttribute(prop.
overflow);
188 return attr.getValue();
192 getProperties().overflow = ::llzk::cast::OverflowSemanticsAttr::get(::mlir::Builder((*this)->getContext()).getContext(), attrValue);
195void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
196 odsState.addOperands(value);
198 odsState.getOrAddProperties<
Properties>().overflow = overflow;
200 odsState.addTypes(result);
205 build(builder, __state__, std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
206 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
207 assert(__res__ &&
"builder didn't return the right type");
212 return create(builder, builder.getLoc(), std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
215void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
216 odsState.addOperands(value);
218 odsState.getOrAddProperties<
Properties>().overflow = overflow;
221 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
223 odsState.location, odsState.operands,
224 odsState.attributes.getDictionary(odsState.getContext()),
225 odsState.getRawProperties(),
226 odsState.regions, inferredReturnTypes)))
227 odsState.addTypes(inferredReturnTypes);
229 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
235 build(builder, __state__, std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
236 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
237 assert(__res__ &&
"builder didn't return the right type");
242 return create(builder, builder.getLoc(), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
245void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
246 odsState.addOperands(value);
248 odsState.getOrAddProperties<
Properties>().overflow = overflow;
250 assert(resultTypes.size() == 1u &&
"mismatched number of results");
251 odsState.addTypes(resultTypes);
254FeltToIndexOp FeltToIndexOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
256 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
257 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
258 assert(__res__ &&
"builder didn't return the right type");
263 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
267 odsState.addOperands(value);
268 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
269 odsState.addTypes(result);
274 build(builder, __state__, std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
275 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
276 assert(__res__ &&
"builder didn't return the right type");
281 return create(builder, builder.getLoc(), std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
285 odsState.addOperands(value);
286 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
288 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
290 odsState.location, odsState.operands,
291 odsState.attributes.getDictionary(odsState.getContext()),
292 odsState.getRawProperties(),
293 odsState.regions, inferredReturnTypes)))
294 odsState.addTypes(inferredReturnTypes);
296 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
302 build(builder, __state__, std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
303 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
304 assert(__res__ &&
"builder didn't return the right type");
309 return create(builder, builder.getLoc(), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
313 odsState.addOperands(value);
314 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
315 assert(resultTypes.size() == 1u &&
"mismatched number of results");
316 odsState.addTypes(resultTypes);
321 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
322 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
323 assert(__res__ &&
"builder didn't return the right type");
328 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
331void FeltToIndexOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
332 assert(operands.size() == 1u &&
"mismatched number of parameters");
333 odsState.addOperands(operands);
334 odsState.addAttributes(attributes);
335 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
336 odsState.addTypes(resultTypes);
338 if (!attributes.empty()) {
340 ::mlir::PropertyRef properties = odsState.getRawProperties();
341 std::optional<::mlir::RegisteredOperationName> info =
342 odsState.name.getRegisteredInfo();
343 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
344 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
345 ::llvm::report_fatal_error(
"Property conversion failed.");
349FeltToIndexOp FeltToIndexOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
351 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
352 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
353 assert(__res__ &&
"builder didn't return the right type");
357FeltToIndexOp FeltToIndexOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
358 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
361void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
362 assert(operands.size() == 1u &&
"mismatched number of parameters");
363 odsState.addOperands(operands);
364 odsState.addAttributes(attributes);
366 if (!attributes.empty()) {
368 ::mlir::PropertyRef properties = odsState.getRawProperties();
369 std::optional<::mlir::RegisteredOperationName> info =
370 odsState.name.getRegisteredInfo();
371 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
372 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
373 ::llvm::report_fatal_error(
"Property conversion failed.");
375 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
377 odsState.location, operands,
378 odsState.attributes.getDictionary(odsState.getContext()),
379 odsState.getRawProperties(),
380 odsState.regions, inferredReturnTypes))) {
381 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
382 odsState.addTypes(inferredReturnTypes);
384 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
390 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
391 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
392 assert(__res__ &&
"builder didn't return the right type");
397 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
400void FeltToIndexOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
401 assert(operands.size() == 1u &&
"mismatched number of parameters");
402 odsState.addOperands(operands);
403 odsState.useProperties(
const_cast<Properties&
>(properties));
404 odsState.addAttributes(discardableAttributes);
405 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
406 odsState.addTypes(resultTypes);
409FeltToIndexOp FeltToIndexOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
411 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
412 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
413 assert(__res__ &&
"builder didn't return the right type");
418 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
421void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
422 assert(operands.size() == 1u &&
"mismatched number of parameters");
423 odsState.addOperands(operands);
424 odsState.useProperties(
const_cast<Properties &
>(properties));
425 odsState.addAttributes(discardableAttributes);
427 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
429 odsState.location, operands,
430 odsState.attributes.getDictionary(odsState.getContext()),
431 odsState.getRawProperties(),
432 odsState.regions, inferredReturnTypes))) {
433 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
434 odsState.addTypes(inferredReturnTypes);
436 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
442 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
443 auto __res__ = ::llvm::dyn_cast<FeltToIndexOp>(builder.create(__state__));
444 assert(__res__ &&
"builder didn't return the right type");
449 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
453 ::mlir::Builder odsBuilder(opName.getContext());
459 auto tblgen_overflow = getProperties().overflow; (void)tblgen_overflow;
461 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_overflow,
"overflow")))
462 return ::mlir::failure();
464 unsigned index = 0; (void)index;
467 for (
auto v : valueGroup0) {
468 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"operand", index++)))
469 return ::mlir::failure();
473 unsigned index = 0; (void)index;
476 for (
auto v : valueGroup0) {
477 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*
this, v.getType(),
"result", index++)))
478 return ::mlir::failure();
481 return ::mlir::success();
488::llvm::LogicalResult
FeltToIndexOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
489 inferredReturnTypes.resize(1);
490 ::mlir::Builder odsBuilder(context);
491 ::mlir::Type odsInferredType0 = odsBuilder.getIndexType();
492 inferredReturnTypes[0] = odsInferredType0;
493 return ::mlir::success();
497 ::llzk::cast::OverflowSemanticsAttr overflowAttr;
498 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
499 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
500 (void)valueOperandsLoc;
501 ::mlir::Type valueRawType{};
502 ::llvm::ArrayRef<::mlir::Type> valueTypes(&valueRawType, 1);
505 if (odsResult) return ::mlir::failure();
510 valueOperandsLoc = parser.getCurrentLocation();
511 if (parser.parseOperand(valueRawOperand))
512 return ::mlir::failure();
514 auto odsResult = parseInferredOrParsedType(parser, valueRawType,
true);
515 if (odsResult) return ::mlir::failure();
518 auto loc = parser.getCurrentLocation();(void)loc;
519 if (parser.parseOptionalAttrDict(result.attributes))
520 return ::mlir::failure();
522 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
524 return ::mlir::failure();
526 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIndexType();
527 result.addTypes(odsBuildableType0);
528 if (parser.resolveOperands(valueOperands, valueTypes, valueOperandsLoc, result.operands))
529 return ::mlir::failure();
530 return ::mlir::success();
537 printInferredOrParsedType(_odsPrinter, *
this,
getValue().getType(),
true);
538 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
539 elidedAttrs.push_back(
"overflow");
541 ::mlir::Builder odsBuilder(getContext());
544 elidedAttrs.push_back(
"overflow");
546 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
551 ::llvm::SmallVectorImpl<::mlir::MemoryEffects::EffectInstance> &effects
554 effects.emplace_back(::mlir::MemoryEffects::Write::get());
561 ? ::mlir::Speculation::NotSpeculatable
562 : ::mlir::Speculation::Speculatable;
581 auto attr = ::llvm::dyn_cast_or_null<::llzk::cast::OverflowSemanticsAttr>(
getProperties().overflow);
587 return attr.getValue();
597 if (tblgen_overflow && !((::llvm::isa<::llzk::cast::OverflowSemanticsAttr>(tblgen_overflow))))
598 return emitError(loc,
"'cast.tofelt' op attribute 'overflow' failed to satisfy constraint: Specifies how a cast handles a source value outside the target's safe range. For a felt target with prime `p`, the safe range is `[0, p-1]`. For an index target with bitwidth `N`, it is `[0, 2^(N-1)-1]`.");
599 return ::mlir::success();
603 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
605 emitError() <<
"expected DictionaryAttr to set properties";
606 return ::mlir::failure();
611 auto attr = dict.get(
"overflow");
613 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
615 propStorage = convertedAttr;
617 emitError() <<
"Invalid attribute `overflow` in property conversion: " << attr;
618 return ::mlir::failure();
622 return ::mlir::success();
626 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
627 ::mlir::Builder odsBuilder{ctx};
630 const auto &propStorage = prop.
overflow;
632 attrs.push_back(odsBuilder.getNamedAttr(
"overflow",
637 return odsBuilder.getDictionaryAttr(attrs);
642 using llvm::hash_value;
643 return llvm::hash_combine(
644 llvm::hash_value(prop.
overflow.getAsOpaquePointer()));
648 if (name ==
"overflow")
654 if (name ==
"overflow") {
655 prop.
overflow = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
overflow)>>(value);
664::llvm::LogicalResult
IntToFeltOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
667 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"overflow", emitError)))
668 return ::mlir::failure();
670 return ::mlir::success();
674 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
675 if (::mlir::failed(reader.readOptionalAttribute(prop.
overflow)))
676 return ::mlir::failure();
677 return ::mlir::success();
681 auto &prop = getProperties(); (void)prop;
683 writer.writeOptionalAttribute(prop.
overflow);
688 return attr.getValue();
692 getProperties().overflow = ::llzk::cast::OverflowSemanticsAttr::get(::mlir::Builder((*this)->getContext()).getContext(), attrValue);
695void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
696 odsState.addOperands(value);
698 odsState.getOrAddProperties<
Properties>().overflow = overflow;
700 odsState.addTypes(result);
703IntToFeltOp IntToFeltOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
705 build(builder, __state__, std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
706 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
707 assert(__res__ &&
"builder didn't return the right type");
712 return create(builder, builder.getLoc(), std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
715void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
716 odsState.addOperands(value);
718 odsState.getOrAddProperties<
Properties>().overflow = overflow;
721 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
723 odsState.location, odsState.operands,
724 odsState.attributes.getDictionary(odsState.getContext()),
725 odsState.getRawProperties(),
726 odsState.regions, inferredReturnTypes)))
727 odsState.addTypes(inferredReturnTypes);
729 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
735 build(builder, __state__, std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
736 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
737 assert(__res__ &&
"builder didn't return the right type");
742 return create(builder, builder.getLoc(), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
745void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
746 odsState.addOperands(value);
748 odsState.getOrAddProperties<
Properties>().overflow = overflow;
750 assert(resultTypes.size() == 1u &&
"mismatched number of results");
751 odsState.addTypes(resultTypes);
754IntToFeltOp IntToFeltOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
756 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
757 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
758 assert(__res__ &&
"builder didn't return the right type");
762IntToFeltOp IntToFeltOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
763 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
767 odsState.addOperands(value);
768 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
769 odsState.addTypes(result);
774 build(builder, __state__, std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
775 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
776 assert(__res__ &&
"builder didn't return the right type");
781 return create(builder, builder.getLoc(), std::forward<
decltype(result)>(result), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
785 odsState.addOperands(value);
786 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
788 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
790 odsState.location, odsState.operands,
791 odsState.attributes.getDictionary(odsState.getContext()),
792 odsState.getRawProperties(),
793 odsState.regions, inferredReturnTypes)))
794 odsState.addTypes(inferredReturnTypes);
796 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
802 build(builder, __state__, std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
803 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
804 assert(__res__ &&
"builder didn't return the right type");
809 return create(builder, builder.getLoc(), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
813 odsState.addOperands(value);
814 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
815 assert(resultTypes.size() == 1u &&
"mismatched number of results");
816 odsState.addTypes(resultTypes);
821 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
822 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
823 assert(__res__ &&
"builder didn't return the right type");
828 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(overflow)>(overflow), std::forward<
decltype(value)>(value));
831void IntToFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
832 assert(operands.size() == 1u &&
"mismatched number of parameters");
833 odsState.addOperands(operands);
834 odsState.addAttributes(attributes);
835 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
836 odsState.addTypes(resultTypes);
838 if (!attributes.empty()) {
840 ::mlir::PropertyRef properties = odsState.getRawProperties();
841 std::optional<::mlir::RegisteredOperationName> info =
842 odsState.name.getRegisteredInfo();
843 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
844 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
845 ::llvm::report_fatal_error(
"Property conversion failed.");
849IntToFeltOp IntToFeltOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
851 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
852 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
853 assert(__res__ &&
"builder didn't return the right type");
857IntToFeltOp IntToFeltOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
858 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
861void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
862 assert(operands.size() == 1u &&
"mismatched number of parameters");
863 odsState.addOperands(operands);
864 odsState.addAttributes(attributes);
866 if (!attributes.empty()) {
868 ::mlir::PropertyRef properties = odsState.getRawProperties();
869 std::optional<::mlir::RegisteredOperationName> info =
870 odsState.name.getRegisteredInfo();
871 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
872 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
873 ::llvm::report_fatal_error(
"Property conversion failed.");
875 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
877 odsState.location, operands,
878 odsState.attributes.getDictionary(odsState.getContext()),
879 odsState.getRawProperties(),
880 odsState.regions, inferredReturnTypes))) {
881 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
882 odsState.addTypes(inferredReturnTypes);
884 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
888IntToFeltOp IntToFeltOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
890 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
891 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
892 assert(__res__ &&
"builder didn't return the right type");
897 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
900void IntToFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
901 assert(operands.size() == 1u &&
"mismatched number of parameters");
902 odsState.addOperands(operands);
903 odsState.useProperties(
const_cast<Properties&
>(properties));
904 odsState.addAttributes(discardableAttributes);
905 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
906 odsState.addTypes(resultTypes);
909IntToFeltOp IntToFeltOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
911 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
912 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
913 assert(__res__ &&
"builder didn't return the right type");
917IntToFeltOp IntToFeltOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
918 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
921void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
922 assert(operands.size() == 1u &&
"mismatched number of parameters");
923 odsState.addOperands(operands);
924 odsState.useProperties(
const_cast<Properties &
>(properties));
925 odsState.addAttributes(discardableAttributes);
927 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
929 odsState.location, operands,
930 odsState.attributes.getDictionary(odsState.getContext()),
931 odsState.getRawProperties(),
932 odsState.regions, inferredReturnTypes))) {
933 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
934 odsState.addTypes(inferredReturnTypes);
936 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
942 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
943 auto __res__ = ::llvm::dyn_cast<IntToFeltOp>(builder.create(__state__));
944 assert(__res__ &&
"builder didn't return the right type");
949 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
953 ::mlir::Builder odsBuilder(opName.getContext());
959 auto tblgen_overflow = getProperties().overflow; (void)tblgen_overflow;
961 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_overflow,
"overflow")))
962 return ::mlir::failure();
964 unsigned index = 0; (void)index;
967 for (
auto v : valueGroup0) {
968 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
969 return ::mlir::failure();
973 unsigned index = 0; (void)index;
976 for (
auto v : valueGroup0) {
977 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"result", index++)))
978 return ::mlir::failure();
981 return ::mlir::success();
988::llvm::LogicalResult
IntToFeltOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
989 inferredReturnTypes.resize(1);
990 ::mlir::Builder odsBuilder(context);
992 inferredReturnTypes[0] = odsInferredType0;
993 return ::mlir::success();
997 ::llzk::cast::OverflowSemanticsAttr overflowAttr;
998 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
999 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
1000 (void)valueOperandsLoc;
1001 ::mlir::Type valueRawType{};
1002 ::llvm::ArrayRef<::mlir::Type> valueTypes(&valueRawType, 1);
1003 ::mlir::Type resultRawType{};
1004 ::llvm::ArrayRef<::mlir::Type> resultTypes(&resultRawType, 1);
1007 if (odsResult) return ::mlir::failure();
1012 valueOperandsLoc = parser.getCurrentLocation();
1013 if (parser.parseOperand(valueRawOperand))
1014 return ::mlir::failure();
1015 if (parser.parseColon())
1016 return ::mlir::failure();
1020 if (parser.parseCustomTypeWithFallback(type))
1021 return ::mlir::failure();
1022 valueRawType = type;
1025 auto odsResult = parseInferredOrParsedType(parser, resultRawType,
false);
1026 if (odsResult) return ::mlir::failure();
1029 auto loc = parser.getCurrentLocation();(void)loc;
1030 if (parser.parseOptionalAttrDict(result.attributes))
1031 return ::mlir::failure();
1033 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1035 return ::mlir::failure();
1037 result.addTypes(resultTypes);
1038 if (parser.resolveOperands(valueOperands, valueTypes, valueOperandsLoc, result.operands))
1039 return ::mlir::failure();
1040 return ::mlir::success();
1047 _odsPrinter <<
' ' <<
":";
1051 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
1052 _odsPrinter.printStrippedAttrOrType(validType);
1054 _odsPrinter << type;
1056 printInferredOrParsedType(_odsPrinter, *
this,
getResult().getType(),
false);
1057 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1058 elidedAttrs.push_back(
"overflow");
1060 ::mlir::Builder odsBuilder(getContext());
1063 elidedAttrs.push_back(
"overflow");
1065 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1070 ::llvm::SmallVectorImpl<::mlir::MemoryEffects::EffectInstance> &effects
1073 effects.emplace_back(::mlir::MemoryEffects::Write::get());
1080 ? ::mlir::Speculation::NotSpeculatable
1081 : ::mlir::Speculation::Speculatable;
::llvm::LogicalResult verify(::mlir::Location loc)
FeltToIndexOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
FeltToIndexOpAdaptor(FeltToIndexOp op)
::mlir::ValueRange getOperands()
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariants()
::llzk::cast::OverflowSemantics getOverflow()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Model possible assertion failure as program termination, like bool.assert.
static FeltToIndexOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::StringAttr getOverflowAttrName()
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
FoldAdaptor::Properties Properties
::mlir::Operation::result_range getODSResults(unsigned index)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::mlir::Speculation::Speculatability getSpeculatability()
Only infallible casts may execute on paths where they were not present.
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void printOptionalOverflowSemantics(::mlir::OpAsmPrinter &printer, FeltToIndexOp op, ::llzk::cast::OverflowSemanticsAttr overflow)
void setOverflow(::llzk::cast::OverflowSemantics attrValue)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::ParseResult parseOptionalOverflowSemantics(::mlir::OpAsmParser &parser, ::llzk::cast::OverflowSemanticsAttr &overflow)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult verify(::mlir::Location loc)
IntToFeltOpAdaptor(IntToFeltOp op)
IntToFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
void print(::mlir::OpAsmPrinter &_odsPrinter)
void setOverflow(::llzk::cast::OverflowSemantics attrValue)
::llvm::LogicalResult verifyInvariantsImpl()
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::StringAttr getOverflowAttrName()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Model possible assertion failure as program termination, like bool.assert.
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
static void printOptionalOverflowSemantics(::mlir::OpAsmPrinter &printer, IntToFeltOp op, ::llzk::cast::OverflowSemanticsAttr overflow)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::ParseResult parseOptionalOverflowSemantics(::mlir::OpAsmParser &parser, ::llzk::cast::OverflowSemanticsAttr &overflow)
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llzk::cast::OverflowSemantics getOverflow()
::mlir::Speculation::Speculatability getSpeculatability()
Only infallible casts may execute on paths where they were not present.
static IntToFeltOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariants()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
::mlir::TypedValue<::mlir::Type > getValue()
FeltToIndexOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
const Properties & getProperties()
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
::mlir::DictionaryAttr odsAttrs
::llzk::cast::OverflowSemantics getOverflow()
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
::llzk::cast::OverflowSemantics getOverflow()
::mlir::RegionRange odsRegions
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
const Properties & getProperties()
IntToFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
static FeltType get(::mlir::MLIRContext *context, ::mlir::StringAttr fieldName)
Common interface for constant parameter-like symbol operations that can be defined within a TemplateO...