[Mlir-commits] [mlir] [mlir][vector] Add more patterns to Vector Linearize transformation (PR #136193)
Nishant Patel
llvmlistbot at llvm.org
Mon Apr 21 14:58:20 PDT 2025
================
@@ -273,6 +277,85 @@ struct LinearizeVectorExtractStridedSlice final
unsigned targetVectorBitWidth;
};
+/// This pattern linearizes the InsertStridedSliceOp by extracting rows from the
+/// source vector using ExtractStridedSliceOp and inserting them into the
+/// destination vector using InsertStridedSliceOp.
+/// Following,
+/// vector.insert_strided_slice %s, %d {offsets=[0, 0]}: vector<2x4xf32> into
+/// vector<4x4xf32>
+/// is converted to :
+/// %0 = vector.extract_strided_slice %s {offsets=[0], sizes=[4], strides=[1]}
+/// : vector<4xf32> from vector<8xf32> %1 = vector.insert_strided_slice %0, %d
+/// {offsets=[0], strides=[1]} : vector<4xf32> into vector<16xf32> %2 =
+/// vector.extract_strided_slice %s {offsets=[4], sizes=[4], strides=[1]} :
+/// vector<4xf32> from vector<8xf32> %3 = vector.insert_strided_slice %2, %1
+/// {offsets=[4], strides=[1]} : vector<4xf32> into vector<16xf32>
+struct LinearizeVectorInsertStridedSlice final
----------------
nbpatel wrote:
I think since this is not a pass and just a bunch of patterns, users can decide how they want to lower from this point
https://github.com/llvm/llvm-project/pull/136193
More information about the Mlir-commits
mailing list