Skip to content

Commit a047675

Browse files
[Clang][SME2] Add builtins for multi-vector fp round to integral value (llvm#75941)
Adds the following SME2 builtins: - svrinta, svrintm, svrintn, svrintp (x2 & x4)
1 parent cf0be7b commit a047675

File tree

2 files changed

+297
-0
lines changed

2 files changed

+297
-0
lines changed

clang/include/clang/Basic/arm_sve.td

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2141,6 +2141,21 @@ let TargetGuard = "sme2" in {
21412141
defm SVMAXNM : SInstMinMaxByVector<"max">;
21422142
}
21432143

2144+
let TargetGuard = "sme2" in {
2145+
// FRINTA / FRINTM / FRINTN / FRINTP
2146+
def SVRINTA_X2 : SInst<"svrinta[_{d}_x2]", "22", "f", MergeNone, "aarch64_sve_frinta_x2", [IsStreaming], []>;
2147+
def SVRINTA_X4 : SInst<"svrinta[_{d}_x4]", "44", "f", MergeNone, "aarch64_sve_frinta_x4", [IsStreaming], []>;
2148+
2149+
def SVRINTM_X2 : SInst<"svrintm[_{d}_x2]", "22", "f", MergeNone, "aarch64_sve_frintm_x2", [IsStreaming], []>;
2150+
def SVRINTM_X4 : SInst<"svrintm[_{d}_x4]", "44", "f", MergeNone, "aarch64_sve_frintm_x4", [IsStreaming], []>;
2151+
2152+
def SVRINTN_X2 : SInst<"svrintn[_{d}_x2]", "22", "f", MergeNone, "aarch64_sve_frintn_x2", [IsStreaming], []>;
2153+
def SVRINTN_X4 : SInst<"svrintn[_{d}_x4]", "44", "f", MergeNone, "aarch64_sve_frintn_x4", [IsStreaming], []>;
2154+
2155+
def SVRINTP_X2 : SInst<"svrintp[_{d}_x2]", "22", "f", MergeNone, "aarch64_sve_frintp_x2", [IsStreaming], []>;
2156+
def SVRINTP_X4 : SInst<"svrintp[_{d}_x4]", "44", "f", MergeNone, "aarch64_sve_frintp_x4", [IsStreaming], []>;
2157+
}
2158+
21442159
let TargetGuard = "sme2" in {
21452160
def SVSCLAMP_X2 : SInst<"svclamp[_single_{d}_x2]", "22dd", "csil", MergeNone, "aarch64_sve_sclamp_single_x2", [IsStreaming], []>;
21462161
def SVUCLAMP_X2 : SInst<"svclamp[_single_{d}_x2]", "22dd", "UcUsUiUl", MergeNone, "aarch64_sve_uclamp_single_x2", [IsStreaming], []>;

0 commit comments

Comments
 (0)