[Mlir-commits] [mlir] [mlir][vector] Add pattern to rewrite contiguous ExtractStridedSlice into Extract (PR #111541)

Benoit Jacob llvmlistbot at llvm.org
Tue Oct 8 09:09:03 PDT 2024


================
@@ -0,0 +1,40 @@
+// RUN: mlir-opt -split-input-file -test-vector-contiguous-extract-strided-slice-to-extract %s | FileCheck %s
+
+// CHECK-LABEL: @extract_strided_slice_to_extract_i8
+// CHECK:       vector.extract {{.*}}[0, 0, 0, 0] : vector<8xi8> from vector<8x1x1x2x8xi8>
+
+func.func @extract_strided_slice_to_extract_i8(%arg0 : vector<8x1x1x2x8xi8>) -> vector<8xi8> {
+  %1 = vector.extract_strided_slice %arg0 {offsets = [0, 0, 0, 0, 0], sizes = [1, 1, 1, 1, 8], strides = [1, 1, 1, 1, 1]} : vector<8x1x1x2x8xi8> to vector<1x1x1x1x8xi8>
+  %2 = vector.shape_cast %1 : vector<1x1x1x1x8xi8> to vector<8xi8>
----------------
bjacob wrote:

The pattern itself generates `extract + shape_cast`. The generated `shape_cast` folds with the one here in the test source. So by including the `shape_cast` in the source, I remove the `shape_cast` in the output (that I would otherwise have to CHECK for) and I have the test ensure that the folding happens.

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


More information about the Mlir-commits mailing list