[all-commits] [llvm/llvm-project] eaf159: [mlir][ArmSME] Add support for vector.transpose (#...

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Mon Sep 25 04:15:25 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: eaf15900ff5b4c103b52acf7327e6e6f7e8b2ebe
      https://github.com/llvm/llvm-project/commit/eaf15900ff5b4c103b52acf7327e6e6f7e8b2ebe
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2023-09-25 (Mon, 25 Sep 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td
    M mlir/lib/Conversion/VectorToArmSME/VectorToArmSME.cpp
    M mlir/lib/Dialect/ArmSME/IR/ArmSME.cpp
    M mlir/lib/Dialect/ArmSME/IR/CMakeLists.txt
    M mlir/test/Dialect/ArmSME/vector-ops-to-sme.mlir
    A mlir/test/Integration/Dialect/Vector/CPU/ArmSME/test-transpose.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Add support for vector.transpose (#66760)

This patch adds support for lowering vector.transpose to ArmSME. It's
implemented by storing the input tile of the tranpose to memory and
reloading vertically, building on top of the tile slice layout support.

Tranposing via memory is obviously expensive, the current intention is
to avoid the transpose if possible, this is therefore intended as a
fallback and to provide base support for Vector ops. If it turns out
transposes can't be avoided then this should be replaced with a more
optimal implementation, perhaps with tile <-> vector (MOVA) ops.

Depends on https://github.com/llvm/llvm-project/pull/66758.




More information about the All-commits mailing list