[Mlir-commits] [mlir] [mlir][SME] Add vector.splat -> SME conversion (PR #67659)
Cullen Rhodes
llvmlistbot at llvm.org
Thu Sep 28 05:02:08 PDT 2023
================
@@ -240,6 +240,63 @@ struct BroadcastOpToArmSMELowering
}
};
+/// Conversion pattern for vector.splat.
+///
+/// Example:
+///
+/// %splat_to_tile = vector.splat %src : i32 to vector<[4]x[4]xi32>
+///
+/// is converted to:
+///
+/// %broadcast_to_1d = vector.broadcast %src : i32 to vector<[4]xi32>
+/// scf.for %tile_slice_index = %c0 to %num_tile_slices step %c1 {
+/// arm_sme.move_vector_to_tile_slice %broadcast_to_1d, %tile,
+/// %tile_slice_index : vector<[4]xi32> into vector<[4]x[4]xi32>
+/// }
+///
+/// This should, in practice, be identical to vector.broadcast when
+/// broadcasting a scalar.
----------------
c-rhodes wrote:
It's identical, I think the ambiguity can be removed
```suggestion
/// This is identical to vector.broadcast of a scalar.
```
https://github.com/llvm/llvm-project/pull/67659
More information about the Mlir-commits
mailing list