[Mlir-commits] [mlir] [mlir][Vector] Improve support for vector.extract(broadcast) (PR #116234)
Andrzej WarzyĆski
llvmlistbot at llvm.org
Fri Jan 24 04:29:56 PST 2025
================
@@ -652,24 +652,44 @@ func.func @fold_extract_transpose(
// -----
-// CHECK-LABEL: fold_extract_broadcast
+// CHECK-LABEL: fold_extract_broadcast_same_type
// CHECK-SAME: %[[A:.*]]: f32
// CHECK: return %[[A]] : f32
-func.func @fold_extract_broadcast(%a : f32) -> f32 {
+func.func @fold_extract_broadcast_same_type(%a : f32,
+ %idx0 : index,
+ %idx1 : index) -> f32 {
%b = vector.broadcast %a : f32 to vector<1x2x4xf32>
- %r = vector.extract %b[0, 1, 2] : f32 from vector<1x2x4xf32>
+ // The indices don't batter for this folder, so we use mixed indices.
+ %r = vector.extract %b[%idx0, %idx1, 2] : f32 from vector<1x2x4xf32>
return %r : f32
}
// -----
-// CHECK-LABEL: fold_extract_broadcast_0dvec
+// CHECK-LABEL: fold_extract_broadcast_same_type_vec
+// CHECK-SAME: %[[A:.*]]: vector<4xf32>
+// CHECK: return %[[A]] : vector<4xf32>
+func.func @fold_extract_broadcast_same_type_vec(%a : vector<4xf32>,
+ %idx0 : index)
+ -> vector<4xf32> {
----------------
banach-space wrote:
[nit] You could use format similar to this:
https://github.com/llvm/llvm-project/blob/d839c06719128700bdd033361b20aa6899f6620a/mlir/test/Dialect/Vector/canonicalize.mlir#L2381-L2382
My suggestion (indentation is 4 spaces):
```mlir
func.func @fold_extract_broadcast_same_type_vec(
%a : vector<4xf32>, %idx0 : index) -> vector<4xf32> {
```
or
```mlir
func.func @fold_extract_broadcast_same_type_vec(
%a : vector<4xf32>, %idx0 : index)
-> vector<4xf32> {
```
We should really try being consistent within every file, but this file already mixes too many styles :(
What you proposed is a bit too sensitive to "test function name changes". We tend end up with things like this after renaming:
https://github.com/llvm/llvm-project/blob/d839c06719128700bdd033361b20aa6899f6620a/mlir/test/Dialect/Vector/canonicalize.mlir#L770-L771
https://github.com/llvm/llvm-project/pull/116234
More information about the Mlir-commits
mailing list