mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-01 18:12:44 +00:00
Allow !shape.size type operands in "shape.from_extents" op.
This expands the op to support error propagation and also makes it symmetric with "shape.get_extent" op. Reviewed By: silvas Differential Revision: https://reviews.llvm.org/D97261
This commit is contained in:
parent
a7d4826101
commit
c519460745
@ -198,10 +198,10 @@ def Shape_FromExtentsOp : Shape_Op<"from_extents", [NoSideEffect]> {
|
||||
%s1 = shape.from_extents
|
||||
```
|
||||
}];
|
||||
let arguments = (ins Variadic<Index>:$extents);
|
||||
let arguments = (ins Variadic<Shape_SizeOrIndexType>:$extents);
|
||||
let results = (outs Shape_ShapeType:$shape);
|
||||
|
||||
let assemblyFormat = "$extents attr-dict";
|
||||
let assemblyFormat = "$extents attr-dict `:` type($extents)";
|
||||
|
||||
let hasFolder = 1;
|
||||
}
|
||||
|
@ -173,7 +173,19 @@ func @f() -> !shape.shape {
|
||||
%e0 = constant 3 : index
|
||||
%e1 = constant 5 : index
|
||||
%e2 = constant 11 : index
|
||||
%ret = shape.from_extents %e0, %e1, %e2
|
||||
%ret = shape.from_extents %e0, %e1, %e2 : index, index, index
|
||||
return %ret : !shape.shape
|
||||
}
|
||||
|
||||
// -----
|
||||
|
||||
// fold_const_size
|
||||
// CHECK-LABEL: func @fold_const_size()
|
||||
func @fold_const_size() -> !shape.shape {
|
||||
// CHECK: shape.const_shape [3, 5] : !shape.shape
|
||||
%e0 = shape.const_size 3
|
||||
%e1 = shape.const_size 5
|
||||
%ret = shape.from_extents %e0, %e1 : !shape.size, !shape.size
|
||||
return %ret : !shape.shape
|
||||
}
|
||||
|
||||
@ -183,7 +195,7 @@ func @f() -> !shape.shape {
|
||||
func @no_fold(%arg0: index) -> !shape.shape {
|
||||
// CHECK-NOT: shape.const_shape
|
||||
%e0 = constant 3 : index
|
||||
%ret = shape.from_extents %e0, %arg0
|
||||
%ret = shape.from_extents %e0, %arg0 : index, index
|
||||
return %ret : !shape.shape
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user