# RUN: %PYTHON %s | FileCheck %s from mlir.ir import * import numpy as np import mlir.dialects.func as func import mlir.dialects.shape as shape def run(f): print("\nTEST:", f.__name__) f() return f # CHECK-LABEL: TEST: testConstShape @run def testConstShape(): with Context() as ctx, Location.unknown(): module = Module.create() f32 = F32Type.get() with InsertionPoint(module.body): @func.FuncOp.from_py_func( RankedTensorType.get((12, ShapedType.get_dynamic_size()), f32) ) def const_shape_tensor(arg): shape.ConstWitnessOp(False) shape.ConstSizeOp(30) shape.ConstSizeOp(IntegerAttr.get(IndexType.get(), 40)) x = shape.ConstShapeOp([1, 2]) shape.MeetOp(x, x, error="impossible") return shape.ConstShapeOp( DenseElementsAttr.get( np.array([3, 4], dtype=np.int64), type=IndexType.get() ) ) # CHECK-LABEL: func @const_shape_tensor(%arg0: tensor<12x?xf32>) # CHECK-DAG: shape.const_witness false # CHECK-DAG: shape.const_size 30 # CHECK-DAG: shape.const_size 40 # CHECK-DAG: shape.const_shape [1, 2] : tensor<2xindex> # CHECK-DAG: shape.const_shape [3, 4] : tensor<2xindex> print(module)