[clang] [llvm] [AArch64][clang][llvm] Add structured sparsity outer product (TMOP) intrinsics (PR #135145)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 15 02:20:17 PDT 2025


================
@@ -3107,6 +3107,23 @@ 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_tmopa : SME_OuterProduct_TMOP_Intrinsic;
----------------
CarolineConcatto wrote:

We will also need to have  different llvm-ir for FP8 because its properties is different from the non-fp8.
Fp8 llvm-ir needs to have: IntrInaccessibleMemOnly, IntrHasSideEffects
And the SME_OuterProduct_TMOP_Intrinsic, should only have: IntrNoMem, IntrHasSideEffects
The attribute IntrInaccessibleMemOnly is only needed in the FP8 because of FPMR register

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


More information about the llvm-commits mailing list