Skip to content

Commit d3367db

Browse files
Fix immediates and tests for 1x2 mop4
1 parent ebd7008 commit d3367db

File tree

4 files changed

+272
-162
lines changed

4 files changed

+272
-162
lines changed

clang/include/clang/Basic/arm_sme.td

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,20 +378,29 @@ let SMETargetGuard = "sme2" in {
378378

379379
multiclass MOP4<string name, string n, string t, string i, string wide, list<ImmCheck> checks> {
380380
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>;
381382
}
382383

383384
multiclass SUMOP4<string s, string za, string t, string i, list<ImmCheck> checks> {
384385
def _1x1 : SInst<"svmop4" # s # "[_1x1_]" # za # "[_{d}_{3}]",
385386
"vidu", t, MergeNone, "aarch64_sme_sumop4" # s # i # "_wide_1x1",
386387
[IsStreaming, IsInOutZA],
387388
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>;
388393
}
389394

390395
multiclass USMOP4<string s, string za, string t, string i, list<ImmCheck> checks> {
391396
def _1x1 : SInst<"svmop4" # s # "[_1x1_]" # za # "[_{d}_{3}]",
392397
"vidx", t, MergeNone, "aarch64_sme_usmop4" # s # i # "_wide_1x1",
393398
[IsStreaming, IsInOutZA],
394399
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>;
395404
}
396405

397406
let SMETargetGuard = "sme2" in {

0 commit comments

Comments
 (0)