1*bbb73adeSbixia1# RUN: %PYTHON %s | FileCheck %s 2*bbb73adeSbixia1 3*bbb73adeSbixia1# Naming this file with a `_dialect` suffix to avoid a naming conflict with 4*bbb73adeSbixia1# python package's math module (coming in from random.py). 5*bbb73adeSbixia1 6*bbb73adeSbixia1from mlir.ir import * 7*bbb73adeSbixia1import mlir.dialects.func as func 8*bbb73adeSbixia1import mlir.dialects.complex as mlir_complex 9*bbb73adeSbixia1 10*bbb73adeSbixia1 11*bbb73adeSbixia1def run(f): 12*bbb73adeSbixia1 print("\nTEST:", f.__name__) 13*bbb73adeSbixia1 f() 14*bbb73adeSbixia1 15*bbb73adeSbixia1 16*bbb73adeSbixia1# CHECK-LABEL: TEST: testComplexOps 17*bbb73adeSbixia1@run 18*bbb73adeSbixia1def testComplexOps(): 19*bbb73adeSbixia1 with Context() as ctx, Location.unknown(): 20*bbb73adeSbixia1 module = Module.create() 21*bbb73adeSbixia1 with InsertionPoint(module.body): 22*bbb73adeSbixia1 23*bbb73adeSbixia1 @func.FuncOp.from_py_func(ComplexType.get(F32Type.get())) 24*bbb73adeSbixia1 def emit_add(arg): 25*bbb73adeSbixia1 return mlir_complex.AddOp(arg, arg) 26*bbb73adeSbixia1 27*bbb73adeSbixia1 # CHECK-LABEL: func @emit_add( 28*bbb73adeSbixia1 # CHECK-SAME: %[[ARG:.*]]: complex<f32>) -> complex<f32> { 29*bbb73adeSbixia1 # CHECK: %[[RES:.*]] = complex.add %[[ARG]], %[[ARG]] : complex<f32> 30*bbb73adeSbixia1 # CHECK: return %[[RES]] : complex<f32> 31*bbb73adeSbixia1 # CHECK: } 32*bbb73adeSbixia1 print(module) 33