[clang] [llvm] [Clang][LLVM] Implement single-single vectors MOP4{A/S} (PR #127797)

via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 26 03:00:41 PST 2025


================
@@ -376,6 +376,24 @@ let SMETargetGuard = "sme2" in {
 // Outer product and accumulate/subtract
 //
 
+multiclass MOP4<string name, string n, string t, string i, string wide> {
+  def NAME # "_1x1" : Inst<"svmop4" # name # "_1x1_" # n # "[_{d}_{d}]", "vidd", t, MergeNone, i # wide # "_1x1", [IsInOutZA, IsStreaming], [ImmCheck<0, ImmCheck0_3>]>;
+}
+
+multiclass SUMOP4<string s, string za, string t, string i> {
+  def _1x1 : SInst<"svmop4" # s # "[_1x1_]" # za # "[_{2}_{3}]",
+                              "vidu", t, MergeNone, "aarch64_sme_sumop4" # s # i # "_wide_1x1",
+                              [IsStreaming, IsInOutZA],
+                              [ImmCheck<0, ImmCheck0_3>]>;
+}
+
+multiclass USMOP4<string s, string za, string t, string i> {
+  def _1x1 : SInst<"svmop4" # s # "[_1x1_]" # za # "[_{2}_{3}]",
----------------
CarolineConcatto wrote:

nit: replace {2}{3}. by {d}{3}

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


More information about the cfe-commits mailing list