[Mlir-commits] [mlir] [mlir][vector] Add more patterns to Vector Linearize transformation (PR #136193)

Nishant Patel llvmlistbot at llvm.org
Tue Apr 22 13:48:48 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 guess the users can run populateVectorLinearizeTypeConversionsAndLegality and populateVectorInsertExtractStridedSliceTransforms to convert to shuffle

https://github.com/llvm/llvm-project/pull/136193


More information about the Mlir-commits mailing list