@@ -14,6 +14,23 @@ using namespace mlir;
1414
1515MLIR_DEFINE_CAPI_DIALECT_REGISTRATION (EmitC, emitc, mlir::emitc::EmitCDialect)
1616
17+ // Ensure the C-API enums are uint64_t-castable to C++ equivalents.
18+ static_assert(static_cast <uint64_t >(MLIR_EMITC_CMP_PREDICATE_EQ) ==
19+ static_cast<uint64_t>(emitc::CmpPredicate::eq) &&
20+ static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_NE) ==
21+ static_cast<uint64_t>(emitc::CmpPredicate::ne) &&
22+ static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_LT) ==
23+ static_cast<uint64_t>(emitc::CmpPredicate::lt) &&
24+ static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_LE) ==
25+ static_cast<uint64_t>(emitc::CmpPredicate::le) &&
26+ static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_GT) ==
27+ static_cast<uint64_t>(emitc::CmpPredicate::gt) &&
28+ static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_GE) ==
29+ static_cast<uint64_t>(emitc::CmpPredicate::ge) &&
30+ static_cast<uint64_t>(MLIR_EMITC_CMP_PREDICATE_THREE_WAY) ==
31+ static_cast<uint64_t>(emitc::CmpPredicate::three_way),
32+ "MlirEmitCCmpPredicate (C-API) and CmpPredicate (C++) mismatch");
33+
1734// ===---------------------------------------------------------------------===//
1835// ArrayType
1936// ===---------------------------------------------------------------------===//
@@ -136,13 +153,14 @@ bool mlirAttributeIsAEmitCCmpPredicate(MlirAttribute attr) {
136153 return llvm::isa<emitc::CmpPredicateAttr>(unwrap (attr));
137154}
138155
139- MlirAttribute mlirEmitCCmpPredicateAttrGet (MlirContext ctx, uint64_t val) {
156+ MlirAttribute mlirEmitCCmpPredicateAttrGet (MlirContext ctx,
157+ MlirEmitCCmpPredicate val) {
140158 return wrap ((Attribute)emitc::CmpPredicateAttr::get (
141159 unwrap (ctx), static_cast <emitc::CmpPredicate>(val)));
142160}
143161
144- uint64_t mlirEmitCCmpPredicateAttrGetValue (MlirAttribute attr) {
145- return static_cast <uint64_t >(
162+ MlirEmitCCmpPredicate mlirEmitCCmpPredicateAttrGetValue (MlirAttribute attr) {
163+ return static_cast <MlirEmitCCmpPredicate >(
146164 llvm::cast<emitc::CmpPredicateAttr>(unwrap (attr)).getValue ());
147165}
148166
0 commit comments