
The Python bindings generated for "async" dialect didn't include any of the "async" dialect ops. This PR fixes issues with generation of Python bindings for "async" dialect and adds a test case to use them.
37 lines
995 B
Python
37 lines
995 B
Python
# RUN: %PYTHON %s | FileCheck %s
|
|
|
|
from mlir.ir import *
|
|
from mlir.dialects import arith
|
|
import mlir.dialects.async_dialect as async_dialect
|
|
import mlir.dialects.async_dialect.passes
|
|
from mlir.passmanager import *
|
|
|
|
|
|
def run(f):
|
|
print("\nTEST:", f.__name__)
|
|
f()
|
|
|
|
|
|
# CHECK-LABEL: TEST: testCreateGroupOp
|
|
@run
|
|
def testCreateGroupOp():
|
|
with Context() as ctx, Location.unknown():
|
|
module = Module.create()
|
|
with InsertionPoint(module.body):
|
|
i32 = IntegerType.get_signless(32)
|
|
group_size = arith.ConstantOp(i32, 4)
|
|
async_dialect.create_group(group_size)
|
|
# CHECK: %0 = "arith.constant"() <{value = 4 : i32}> : () -> i32
|
|
# CHECK: %1 = "async.create_group"(%0) : (i32) -> !async.group
|
|
print(module)
|
|
|
|
def testAsyncPass():
|
|
with Context() as context:
|
|
PassManager.parse("any(async-to-async-runtime)")
|
|
print("SUCCESS")
|
|
|
|
|
|
# CHECK-LABEL: testAsyncPass
|
|
# CHECK: SUCCESS
|
|
run(testAsyncPass)
|