[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
Tue Apr 15 08:16:30 PDT 2025


================
@@ -3107,6 +3107,26 @@ let TargetPrefix = "aarch64" in {
     }
   }
 
+  class SME_OuterProduct_TMOP_Intrinsic
+     : DefaultAttrsIntrinsic<[],
+         [llvm_i32_ty,
+          llvm_anyvector_ty,
+          LLVMMatchType<0>,
+          LLVMMatchType<0>,
+          llvm_nxv16i8_ty,
+          llvm_i32_ty],
+         [ImmArg<ArgIndex<0>>, ImmArg<ArgIndex<5>>,
+          IntrInaccessibleMemOnly]>;
+
+  def int_aarch64_sme_za16_ftmopa : SME_OuterProduct_TMOP_Intrinsic;
+  def int_aarch64_sme_za16_bftmopa : SME_OuterProduct_TMOP_Intrinsic;
----------------
jthackray wrote:

Sure, now adjusted. (My original patch used `int_aarch64_sme_za16_tmopa` where they could be deduced by type. I'll change it back to this. The LLVM IR name won't have 'bf' in the name, and will become plain `@llvm.aarch64.sme.tmopa.za16.nxv8bf16`).

https://github.com/llvm/llvm-project/pull/135145


More information about the llvm-commits mailing list