Skip to content

Commit f888e73

Browse files
[Clang][SME2] Add multi-vector zip & unzip builtins (#74841)
Adds the following SME2 builtins: - svzip (x2 & x4) - svzipq (x2 & x4) - svuzp (x2 & x4) - svuzpq (x2 & x4) See https://github.com/ARM-software/acle/pull/217/files Patch by David Sherwood <[email protected]>
1 parent 318d5bf commit f888e73

File tree

5 files changed

+3195
-0
lines changed

5 files changed

+3195
-0
lines changed

clang/include/clang/Basic/arm_sve.td

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2308,6 +2308,22 @@ let TargetGuard = "sme2" in {
23082308
def SVQCVTN_U16_S64_X4 : SInst<"svqcvtn_u16[_{d}_x4]", "b4.d", "l", MergeNone, "aarch64_sve_sqcvtun_x4", [IsStreaming], []>;
23092309
}
23102310

2311+
//
2312+
// Multi-vector zip/unzip
2313+
//
2314+
2315+
let TargetGuard = "sme2" in {
2316+
def SVZIP_X2 : SInst<"svzip[_{d}_x2]", "22", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_zip_x2", [IsStreaming], []>;
2317+
def SVZIPQ_X2 : SInst<"svzipq[_{d}_x2]", "22", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_zipq_x2", [IsStreaming], []>;
2318+
def SVZIP_X4 : SInst<"svzip[_{d}_x4]", "44", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_zip_x4", [IsStreaming], []>;
2319+
def SVZIPQ_X4 : SInst<"svzipq[_{d}_x4]", "44", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_zipq_x4", [IsStreaming], []>;
2320+
2321+
def SVUZP_X2 : SInst<"svuzp[_{d}_x2]", "22", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_uzp_x2", [IsStreaming], []>;
2322+
def SVUZPQ_X2 : SInst<"svuzpq[_{d}_x2]", "22", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_uzpq_x2", [IsStreaming], []>;
2323+
def SVUZP_X4 : SInst<"svuzp[_{d}_x4]", "44", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_uzp_x4", [IsStreaming], []>;
2324+
def SVUZPQ_X4 : SInst<"svuzpq[_{d}_x4]", "44", "cUcsUsiUilUlbhfd", MergeNone, "aarch64_sve_uzpq_x4", [IsStreaming], []>;
2325+
}
2326+
23112327
//
23122328
// Multi-vector unpack
23132329
//

0 commit comments

Comments
 (0)