[all-commits] [llvm/llvm-project] 6ff976: [mlir][ArmSME] Add custom get_tile_id and cast ops

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Tue Jul 18 00:42:17 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6ff9761a69df24d33f7c1047a956911bf28a754b
      https://github.com/llvm/llvm-project/commit/6ff9761a69df24d33f7c1047a956911bf28a754b
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/ArmSME/IR/ArmSME.td
    M mlir/include/mlir/IR/OpBase.td
    M mlir/lib/Dialect/ArmSME/IR/ArmSME.cpp
    M mlir/lib/Dialect/ArmSME/Transforms/LegalizeForLLVMExport.cpp
    A mlir/test/Dialect/ArmSME/canonicalize.mlir
    A mlir/test/Dialect/ArmSME/invalid.mlir
    A mlir/test/Dialect/ArmSME/roundtrip.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Add custom get_tile_id and cast ops

This patch adds three new custom ops to the ArmSME dialect:

  * arm_sme.get_tile_id - returns a scalar integer representing an SME
    "virtual tile" that is not in use.
  * arm_sme.cast_tile_to_vector - casts from a tile id to a 2-d scalable
    vector type, which represents an SME "virtual tile".
  * arm_sme.cast_vector_to_tile - casts from a 2-d scalable vector type,
    which represents an SME "virtual tile", to a tile id.

The 'arm_sme.get_tile_id' op currently only supports tile 0, a follow-up
patch will implement proper tile allocation. A further follow-up patch
will demonstrate load/store to/from ZA using these ops.

See the op descriptions for further details and examples.

Thanks to @paulwalker-arm and @awarzynski for helping drive this.

Reviewed By: awarzynski, dcaballe

Differential Revision: https://reviews.llvm.org/D154941




More information about the All-commits mailing list