[mlir][linalg] Swap extract_slice(fill(x)) ops
authorMatthias Springer <springerm@google.com>
Fri, 6 Jan 2023 10:59:41 +0000 (11:59 +0100)
committerMatthias Springer <springerm@google.com>
Fri, 6 Jan 2023 11:28:29 +0000 (12:28 +0100)
commitbcfd32adc4b658dc45aa8c338d5dd03837e2a0e4
tree3028393056a7007baf2332dfcdd8d8141d994230
parent5cf85323a0788ee5666099d6a34c55f70edbc934
[mlir][linalg] Swap extract_slice(fill(x)) ops

This pattern is similar to `FoldFillWithTensorReshape`, which performs the same swapping with reshapes.

Fill the smaller extracted tensor slice instead of `x`. This allows for additional simplifications in case `x` is the result of another extract_slice.

Differential Revision: https://reviews.llvm.org/D141117
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
mlir/test/Dialect/Linalg/canonicalize.mlir