aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorHugo Trachino <hugo.trachino@huawei.com>2024-06-21 13:34:37 +0100
committerGitHub <noreply@github.com>2024-06-21 13:34:37 +0100
commit9f0aa05bfb40c077a5b1c2ea8cac88fdd51f0c5c (patch)
tree8f03454721d4410b2d68da78711bf7721f5c66c8 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent138ea7d1fb82c2525da8dcc2f8ea73eae7b25f25 (diff)
downloadllvm-9f0aa05bfb40c077a5b1c2ea8cac88fdd51f0c5c.zip
llvm-9f0aa05bfb40c077a5b1c2ea8cac88fdd51f0c5c.tar.gz
llvm-9f0aa05bfb40c077a5b1c2ea8cac88fdd51f0c5c.tar.bz2
[mlir][vector] Add ElementwiseToOuterproduct (#93664)
1D multi-reduction are lowered to arith which can prevent some optimisations. I propose `ElementwiseToOuterproduct` matching a series of ops to generate `vector.outerproduct`. As part of some `ElementwiseToVectorOpsPatterns`, it could allow to fuse other elementwiseOps to vector dialect. Originally discussed https://discourse.llvm.org/t/on-improving-arm-sme-lowering-resilience-in-mlir/78543/24. quote @MacDue ``` %lhsBcast = vector.broadcast %lhsCast : vector<[4]xf32> to vector<[4]x[4]xf32> %lhsT = vector.transpose %lhsBcast, [1, 0] : vector<[4]x[4]xf32> to vector<[4]x[4]xf32> %rhsBcast = vector.broadcast %rhs : vector<[4]xf32> to vector<[4]x[4]xf32> %mul = arith.mulf %lhsT, %rhsBcast : vector<[4]x[4]xf32> ``` Can be rewritten as: ``` %mul = vector.outerproduct $lhs, $rhs : vector<[4]xf32>, vector<[4]xf32> ``` --------- Co-authored-by: Han-Chung Wang <hanhan0912@gmail.com>
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions