@@ -295,6 +295,7 @@ defm SVMOPS : ZAFPOuterProd<"mops">;
295295multiclass MOP4<string mode, string za, string t, string i, list<ImmCheck> checks> {
296296 def _1x1 : Inst<"svmop4" # mode # "[_1x1]_" # za # "[_{d}_{d}]", "vidd", t, MergeNone, i # "_1x1", [IsInOutZA, IsStreaming], checks>;
297297 def _1x2 : Inst<"svmop4" # mode # "[_1x2]_" # za # "[_{d}_{d}]", "vid2", t, MergeNone, i # "_1x2", [IsInOutZA, IsStreaming], checks>;
298+ def _2x2 : Inst<"svmop4" # mode # "[_2x2]_" # za # "[_{d}_{d}]", "vi22", t, MergeNone, i # "_2x2", [IsInOutZA, IsStreaming], checks>;
298299}
299300
300301let SMETargetGuard = "sme2,sme-mop4" in {
@@ -350,6 +351,10 @@ multiclass SUMOP4<string mode, string za, string t, string i, list<ImmCheck> che
350351 "vid2.u", t, MergeNone, "aarch64_sme_sumop4" # mode # i # "_wide_1x2",
351352 [IsStreaming, IsInOutZA],
352353 checks>;
354+ def _2x2 : SInst<"svmop4" # mode # "[_2x2]_" # za # "[_{d}_{3}]",
355+ "vi2.x2.u", t, MergeNone, "aarch64_sme_sumop4" # mode # i # "_wide_2x2",
356+ [IsStreaming, IsInOutZA],
357+ checks>;
353358}
354359
355360multiclass USMOP4<string mode, string za, string t, string i, list<ImmCheck> checks> {
@@ -361,6 +366,10 @@ multiclass USMOP4<string mode, string za, string t, string i, list<ImmCheck> che
361366 "vid2.x", t, MergeNone, "aarch64_sme_usmop4" # mode # i # "_wide_1x2",
362367 [IsStreaming, IsInOutZA],
363368 checks>;
369+ def _2x2 : SInst<"svmop4" # mode # "[_2x2]_" # za # "[_{d}_{3}]",
370+ "vi2.u2.x", t, MergeNone, "aarch64_sme_usmop4" # mode # i # "_wide_2x2",
371+ [IsStreaming, IsInOutZA],
372+ checks>;
364373}
365374
366375let SMETargetGuard = "sme2,sme-mop4" in {
0 commit comments