Mercurial > hg > CbC > CbC_llvm
view mlir/test/mlir-tblgen/enums-python-bindings.td @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1f2b6ac9f198 |
children |
line wrap: on
line source
// RUN: mlir-tblgen -gen-python-enum-bindings %s -I %S/../../include | FileCheck %s include "mlir/IR/EnumAttr.td" // CHECK: Autogenerated by mlir-tblgen; don't manually edit. // CHECK: from enum import Enum // CHECK: from ._ods_common import _cext as _ods_cext // CHECK: _ods_ir = _ods_cext.ir def One : I32EnumAttrCase<"CaseOne", 1, "one">; def Two : I32EnumAttrCase<"CaseTwo", 2, "two">; def MyEnum : I32EnumAttr<"MyEnum", "An example 32-bit enum", [One, Two]>; // CHECK: def _register_attribute_builder(kind): // CHECK: def decorator_builder(func): // CHECK: _ods_ir.AttrBuilder.insert(kind, func) // CHECK: return func // CHECK: return decorator_builder // CHECK-LABEL: class MyEnum(Enum): // CHECK: """An example 32-bit enum""" // CHECK: CASE_ONE = 1 // CHECK: CASE_TWO = 2 // CHECK: def _as_int(self): // CHECK: if self is MyEnum.CASE_ONE: // CHECK: return 1 // CHECK: if self is MyEnum.CASE_TWO: // CHECK: return 2 // CHECK: assert False, "Unknown MyEnum enum entry." def One64 : I64EnumAttrCase<"CaseOne64", 1, "one">; def Two64 : I64EnumAttrCase<"CaseTwo64", 2, "two">; def MyEnum64 : I64EnumAttr<"MyEnum64", "An example 64-bit enum", [One64, Two64]>; // CHECK: @_register_attribute_builder("MyEnum") // CHECK: def _my_enum(x, context): // CHECK: return _ods_ir.IntegerAttr.get(_ods_ir.IntegerType.get_signless(32, context=context), x._as_int()) // CHECK-LABEL: class MyEnum64(Enum): // CHECK: """An example 64-bit enum""" // CHECK: CASE_ONE64 = 1 // CHECK: CASE_TWO64 = 2 // CHECK: def _as_int(self): // CHECK: if self is MyEnum64.CASE_ONE64: // CHECK: return 1 // CHECK: if self is MyEnum64.CASE_TWO64: // CHECK: return 2 // CHECK: assert False, "Unknown MyEnum64 enum entry." // CHECK: @_register_attribute_builder("MyEnum64") // CHECK: def _my_enum64(x, context): // CHECK: return _ods_ir.IntegerAttr.get(_ods_ir.IntegerType.get_signless(64, context=context), x._as_int())