@@ -294,6 +294,7 @@ defm SVMOPS : ZAFPOuterProd<"mops">;
294
294
295
295
multiclass MOP4<string mode, string za, string t, string i, list<ImmCheck> checks> {
296
296
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>;
297
298
}
298
299
299
300
let SMETargetGuard = "sme2,sme-mop4" in {
@@ -345,13 +346,21 @@ multiclass SUMOP4<string mode, string za, string t, string i, list<ImmCheck> che
345
346
"vidu", t, MergeNone, "aarch64_sme_sumop4" # mode # i # "_wide_1x1",
346
347
[IsStreaming, IsInOutZA],
347
348
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>;
348
353
}
349
354
350
355
multiclass USMOP4<string mode, string za, string t, string i, list<ImmCheck> checks> {
351
356
def _1x1 : SInst<"svmop4" # mode # "[_1x1]_" # za # "[_{d}_{3}]",
352
357
"vidx", t, MergeNone, "aarch64_sme_usmop4" # mode # i # "_wide_1x1",
353
358
[IsStreaming, IsInOutZA],
354
359
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>;
355
364
}
356
365
357
366
let SMETargetGuard = "sme2,sme-mop4" in {
0 commit comments