[clang] [llvm] [AArch64][clang][llvm] Add structured sparsity outer product (TMOP) intrinsics (PR #135145)
Jonathan Thackray via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 16 01:53:20 PDT 2025
================
@@ -104,6 +104,16 @@ class sme_outer_product_pseudo<ZPRRegOp zpr_ty, SMEMatrixTypeEnum za_flag>
let usesCustomInserter = 1;
}
+class sme_sparse_outer_product_pseudo<RegisterOperand zn_ty, RegisterOperand zm_ty, SMEMatrixTypeEnum za_flag>
+ : Pseudo<(outs), (ins i32imm:$tile, zn_ty:$zn, zm_ty:$zm, ZK:$zk, i32imm:$idx), []>,
+ Sched<[]> {
+ // Translated to the actual instructions in AArch64ISelLowering.cpp
+ let SMEMatrixType = za_flag;
+ let usesCustomInserter = 1;
+ let mayLoad = 1;
----------------
jthackray wrote:
As mentioned we are modelling ZA accesses as inaccessible memory accesses, therefore instructions to which these intrinsics are lowered need to be marked as reading and writing to memory.
https://github.com/llvm/llvm-project/pull/135145
More information about the llvm-commits
mailing list