Skip to content

Commit 92c8a29

Browse files
Fix immediates and tests for 1x2 mop4
1 parent b11a887 commit 92c8a29

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
@@ -294,6 +294,7 @@ defm SVMOPS : ZAFPOuterProd<"mops">;
294294

295295
multiclass 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

299300
let 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

350355
multiclass 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

357366
let SMETargetGuard = "sme2,sme-mop4" in {

0 commit comments

Comments
 (0)