@@ -294,6 +294,7 @@ defm SVMOPS : ZAFPOuterProd<"mops">;
294294
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>;
297+ def _1x2 : Inst<"svmop4" # mode # "[_1x2]_" # za # "[_{d}_{d}]", "vid2", t, MergeNone, i # "_1x2", [IsInOutZA, IsStreaming], checks>;
297298}
298299
299300let SMETargetGuard = "sme2,sme-mop4" in {
@@ -345,13 +346,21 @@ multiclass SUMOP4<string mode, string za, string t, string i, list<ImmCheck> che
345346 "vidu", t, MergeNone, "aarch64_sme_sumop4" # mode # i # "_wide_1x1",
346347 [IsStreaming, IsInOutZA],
347348 checks>;
349+ def _1x2 : SInst<"svmop4" # mode # "[_1x2]_" # za # "[_{d}_{3}]",
350+ "vid2.u", t, MergeNone, "aarch64_sme_sumop4" # mode # i # "_wide_1x2",
351+ [IsStreaming, IsInOutZA],
352+ checks>;
348353}
349354
350355multiclass USMOP4<string mode, string za, string t, string i, list<ImmCheck> checks> {
351356 def _1x1 : SInst<"svmop4" # mode # "[_1x1]_" # za # "[_{d}_{3}]",
352357 "vidx", t, MergeNone, "aarch64_sme_usmop4" # mode # i # "_wide_1x1",
353358 [IsStreaming, IsInOutZA],
354359 checks>;
360+ def _1x2 : SInst<"svmop4" # mode # "[_1x2]_" # za # "[_{d}_{3}]",
361+ "vid2.x", t, MergeNone, "aarch64_sme_usmop4" # mode # i # "_wide_1x1",
362+ [IsStreaming, IsInOutZA],
363+ checks>;
355364}
356365
357366let SMETargetGuard = "sme2,sme-mop4" in {
0 commit comments