[all-commits] [llvm/llvm-project] 8e64e9: [mlir][ArmSME] Add support for vector.transfer_rea...
Cullen Rhodes via All-commits
all-commits at lists.llvm.org
Thu Sep 28 02:54:33 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8e64e9c365443bf9790fb04064bf3f1d3ff0bafc
https://github.com/llvm/llvm-project/commit/8e64e9c365443bf9790fb04064bf3f1d3ff0bafc
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2023-09-28 (Thu, 28 Sep 2023)
Changed paths:
M mlir/lib/Conversion/VectorToArmSME/VectorToArmSME.cpp
M mlir/test/Dialect/ArmSME/vector-ops-to-sme.mlir
Log Message:
-----------
[mlir][ArmSME] Add support for vector.transfer_read with transpose (#67527)
This patch adds support for lowering a vector.transfer_read with a
transpose permutation map to a vertical tile load, for example:
vector.transfer_read ... permutation_map: (d0, d1) -> (d1, d0)
is converted to:
arm_sme.tile_load ... <vertical>
On SME the transpose can be done in-flight, rather than as a separate
operation as in the TransferReadPermutationLowering, which would do the
following:
%0 = vector.transfer_read ...
vector.transpose %0, [1, 0] ...
The lowering doesn't support masking yet and the transfer_read must be
in-bounds. It also intentionally doesn't handle simple loads as
transfer_write currently does, as the generic
TransferReadToVectorLoadLowering can lower these to simple vector.load
ops, which can already be lowered to ArmSME.
A subsequent patch will update the existing transfer_write lowering,
this is a separate patch as there is currently no lowering for
vector.transfer_read.
More information about the All-commits
mailing list