[clang] [llvm] [AARCH64] Add intrinsic support for new s/udot intrinsics (PR #189424)

via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 9 00:59:18 PDT 2026


================
@@ -2476,3 +2476,11 @@ let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2p2" in {
   def FMUL_X2 : SInst<"svmul[_{d}_x2]", "222", "hfd", MergeNone, "aarch64_sve_fmul_x2", [IsStreaming], []>;
   def FMUL_X4 : SInst<"svmul[_{d}_x4]", "444", "hfd", MergeNone, "aarch64_sve_fmul_x4", [IsStreaming], []>;
 }
+
+let SVETargetGuard = "sve2p3|sme2p3", SMETargetGuard = "sve2p3|sme2p3" in {
+  def SVDOT_X2_SH : SInst<"svdot[_{d}_{2}]", "ddhh", "s",  MergeNone, "aarch64_sve_sdot_x2", [VerifyRuntimeMode], []>;
----------------
CarolineConcatto wrote:

Sorry but I believe we forgot to add the _n version as well in the implementation, don't we?

 svfloat32_t svdot[_n_s16_s8](svint16_t zda, svint8_t zn, int8_t zm);
 svfloat32_t svdot[_n_u16_u8](svuint16_t zda, svuint8_t zn, uint8_t zm);
It looks like we also did not implemented them for 32 bits

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


More information about the cfe-commits mailing list