@@ -378,20 +378,29 @@ let SMETargetGuard = "sme2" in {
378
378
379
379
multiclass MOP4<string name, string n, string t, string i, string wide, list<ImmCheck> checks> {
380
380
def NAME # "_1x1" : Inst<"svmop4" # name # "_1x1_" # n # "[_{d}_{d}]", "vidd", t, MergeNone, i # wide # "_1x1", [IsInOutZA, IsStreaming], checks>;
381
+ def NAME # "_1x2" : Inst<"svmop4" # name # "_1x2_" # n # "[_{d}_{d}]", "vid2", t, MergeNone, i # wide # "_1x2", [IsInOutZA, IsStreaming], checks>;
381
382
}
382
383
383
384
multiclass SUMOP4<string s, string za, string t, string i, list<ImmCheck> checks> {
384
385
def _1x1 : SInst<"svmop4" # s # "[_1x1_]" # za # "[_{d}_{3}]",
385
386
"vidu", t, MergeNone, "aarch64_sme_sumop4" # s # i # "_wide_1x1",
386
387
[IsStreaming, IsInOutZA],
387
388
checks>;
389
+ def _1x2 : SInst<"svmop4" # s # "[_1x2_]" # za # "[_{d}_{3}]",
390
+ "vid2.u", t, MergeNone, "aarch64_sme_sumop4" # s # i # "_wide_1x2",
391
+ [IsStreaming, IsInOutZA],
392
+ checks>;
388
393
}
389
394
390
395
multiclass USMOP4<string s, string za, string t, string i, list<ImmCheck> checks> {
391
396
def _1x1 : SInst<"svmop4" # s # "[_1x1_]" # za # "[_{d}_{3}]",
392
397
"vidx", t, MergeNone, "aarch64_sme_usmop4" # s # i # "_wide_1x1",
393
398
[IsStreaming, IsInOutZA],
394
399
checks>;
400
+ def _1x2 : SInst<"svmop4" # s # "[_1x2_]" # za # "[_{d}_{3}]",
401
+ "vid2.x", t, MergeNone, "aarch64_sme_usmop4" # s # i # "_wide_1x2",
402
+ [IsStreaming, IsInOutZA],
403
+ checks>;
395
404
}
396
405
397
406
let SMETargetGuard = "sme2" in {
0 commit comments