This diff adds a transformation patter to rewrite linalg.fill as broadcasting a scaler into a vector.
It uses the same preconditioning as matmul (memory is contiguous).
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp | ||
---|---|---|
214 | nit: if (auto fillOp = dyn_cast<linalg::FillOp(op)) { |
Unit tests: pass. 62193 tests passed, 0 failed and 815 were skipped.
clang-tidy: pass.
clang-format: fail. Please format your changes with clang-format by running git-clang-format HEAD^ or applying this patch.
Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml
Pre-merge checks is in beta. Report issue. Please join beta or enable it for your project.
Looks good modulo Aart's comments.
Additional request for next pattern: 3rd time's a charm, let's please start refactoring the rewrites and template them on op types.
Unit tests: pass. 62193 tests passed, 0 failed and 815 were skipped.
clang-tidy: pass.
clang-format: pass.
Build artifacts: diff.json, clang-tidy.txt, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml
Pre-merge checks is in beta. Report issue. Please join beta or enable it for your project.
nit: if (auto fillOp = dyn_cast<linalg::FillOp(op)) {