forked from OSchip/llvm-project
[MLIR][Shape] Add `shape.rank` operation
Add `shape.rank` operation to the shape dialect. Differential Revision: https://reviews.llvm.org/D82028
This commit is contained in:
parent
cd73081605
commit
2c061998b5
|
@ -169,6 +169,18 @@ def Shape_FromExtentTensorOp : Shape_Op<"from_extent_tensor", [NoSideEffect]> {
|
|||
let assemblyFormat = "attr-dict $input `:` type($input)";
|
||||
}
|
||||
|
||||
def Shape_RankOp : Shape_Op<"rank", [NoSideEffect]> {
|
||||
let summary = "Gets the rank of a shape";
|
||||
let description = [{
|
||||
Returns the rank of the shape, i.e. the number of extents.
|
||||
}];
|
||||
|
||||
let arguments = (ins Shape_ShapeType:$shape);
|
||||
let results = (outs Shape_SizeType:$rank);
|
||||
|
||||
let assemblyFormat = "attr-dict $shape";
|
||||
}
|
||||
|
||||
def Shape_ToExtentTensorOp : Shape_Op<"to_extent_tensor", [NoSideEffect]> {
|
||||
let summary = "Creates a dimension tensor from a shape";
|
||||
let description = [{
|
||||
|
|
|
@ -111,3 +111,8 @@ func @test_from_extent_tensor(%arg: tensor<?xindex>) -> !shape.shape {
|
|||
%0 = shape.from_extent_tensor %arg : tensor<?xindex>
|
||||
return %0 : !shape.shape
|
||||
}
|
||||
|
||||
func @rank(%shape : !shape.shape) -> !shape.size {
|
||||
%rank = shape.rank %shape
|
||||
return %rank : !shape.size
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue