mirror of
https://github.com/intel/llvm.git
synced 2026-01-25 10:55:58 +08:00
[MLIR][tensor] generate default builder for FromElementsOp
Removed builder is the same as default builder, with the added benefit that python bindings will be generated for the default builder. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D149508
This commit is contained in:
@@ -82,7 +82,6 @@ def testInferTypesInsertSlice():
|
||||
with Context() as ctx, Location.unknown():
|
||||
module = Module.create()
|
||||
f32Type = F32Type.get()
|
||||
indexType = IndexType.get()
|
||||
with InsertionPoint(module.body):
|
||||
|
||||
@func.FuncOp.from_py_func(
|
||||
@@ -92,8 +91,6 @@ def testInferTypesInsertSlice():
|
||||
# CHECK: tensor.insert_slice %arg0 into %arg1[0, 0] [1, 1] [0, 0] :
|
||||
# CHECK-SAME: tensor<1x1xf32> into tensor<1x1xf32>
|
||||
def f(source, dest):
|
||||
c0 = arith.ConstantOp(indexType, 0)
|
||||
c1 = arith.ConstantOp(indexType, 1)
|
||||
d0 = tensor.InsertSliceOp(source, dest, [], [], [],
|
||||
DenseI64ArrayAttr.get([0, 0]),
|
||||
DenseI64ArrayAttr.get([1, 1]),
|
||||
@@ -101,3 +98,32 @@ def testInferTypesInsertSlice():
|
||||
return [d0.result]
|
||||
|
||||
print(module)
|
||||
|
||||
|
||||
# CHECK-LABEL: TEST: testFromElementsOp
|
||||
@run
|
||||
def testFromElementsOp():
|
||||
with Context() as ctx, Location.unknown():
|
||||
module = Module.create()
|
||||
f32 = F32Type.get()
|
||||
with InsertionPoint(module.body):
|
||||
@func.FuncOp.from_py_func()
|
||||
def default_builder():
|
||||
c0 = arith.ConstantOp(f32, 0.0)
|
||||
# CHECK: %[[C0:.*]] = "arith.constant"() {value = 0.000000e+00 : f32} : () -> f32
|
||||
print(c0)
|
||||
c1 = arith.ConstantOp(f32, 1.0)
|
||||
# CHECK: %[[C1:.*]] = "arith.constant"() {value = 1.000000e+00 : f32} : () -> f32
|
||||
print(c1)
|
||||
|
||||
t = tensor.FromElementsOp(RankedTensorType.get((2,), f32), [c0, c1])
|
||||
# CHECK: %{{.*}} = "tensor.from_elements"(%[[C0]], %[[C1]]) : (f32, f32) -> tensor<2xf32>
|
||||
print(t)
|
||||
|
||||
t = tensor.FromElementsOp(RankedTensorType.get((2, 1), f32), [c0, c1])
|
||||
# CHECK: %{{.*}} = "tensor.from_elements"(%[[C0]], %[[C1]]) : (f32, f32) -> tensor<2x1xf32>
|
||||
print(t)
|
||||
|
||||
t = tensor.FromElementsOp(RankedTensorType.get((1, 2), f32), [c0, c1])
|
||||
# CHECK: %{{.*}} = "tensor.from_elements"(%[[C0]], %[[C1]]) : (f32, f32) -> tensor<1x2xf32>
|
||||
print(t)
|
||||
|
||||
Reference in New Issue
Block a user