aboutsummaryrefslogtreecommitdiff
path: root/clang/utils
diff options
context:
space:
mode:
authorBryan Chan <bryan.chan@huawei.com>2023-07-20 05:50:16 -0400
committerBryan Chan <bryan.chan@huawei.com>2023-07-20 06:06:33 -0400
commit6dc94c54e51f416d03c42e7d61624419e03a3af6 (patch)
treeb31aa1a45f096c92b18fee495cc60b90f0ab7161 /clang/utils
parent697f60598ec303efc0e9b092af1dbea2c46ebc56 (diff)
downloadllvm-6dc94c54e51f416d03c42e7d61624419e03a3af6.zip
llvm-6dc94c54e51f416d03c42e7d61624419e03a3af6.tar.gz
llvm-6dc94c54e51f416d03c42e7d61624419e03a3af6.tar.bz2
[Clang][AArch64][SME] Add vector read/write (mova) intrinsics
This patch adds support for the following SME ACLE intrinsics (as defined in https://arm-software.github.io/acle/main/acle.html): - svread_hor_za8[_s8]_m // also for u8 - svread_hor_za16[_s16]_m // also for u16, f16, bf16 - svread_hor_za32[_s32]_m // also for u32, f32 - svread_hor_za64[_s64]_m // also for u64, f64 - svread_hor_za128[_s8]_m // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64 - svread_ver_za8[_s8]_m // also for u8 - svread_ver_za16[_s16]_m // also for u16, f16, bf16 - svread_ver_za32[_s32]_m // also for u32, f32 - svread_ver_za64[_s64]_m // also for u64, f64 - svread_ver_za128[_s8]_m // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64 - svwrite_hor_za8[_s8]_m // also for u8 - svwrite_hor_za16[_s16]_m // also for u16, f16, bf16 - svwrite_hor_za32[_s32]_m // also for u32, f32 - svwrite_hor_za64[_s64]_m // also for u64, f64 - svwrite_hor_za128[_s8]_m // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64 - svwrite_ver_za8[_s8]_m // also for u8 - svwrite_ver_za16[_s16]_m // also for u16, f16, bf16 - svwrite_ver_za32[_s32]_m // also for u32, f32 - svwrite_ver_za64[_s64]_m // also for u64, f64 - svwrite_ver_za128[_s8]_m // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64 Co-authored-by: Sagar Kulkarni <sagar.kulkarni1@huawei.com> Reviewed By: sdesmalen, kmclaughlin Differential Revision: https://reviews.llvm.org/D128648
Diffstat (limited to 'clang/utils')
-rw-r--r--clang/utils/TableGen/SveEmitter.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/utils/TableGen/SveEmitter.cpp b/clang/utils/TableGen/SveEmitter.cpp
index c423e35..dbf5122 100644
--- a/clang/utils/TableGen/SveEmitter.cpp
+++ b/clang/utils/TableGen/SveEmitter.cpp
@@ -1489,6 +1489,8 @@ void SVEEmitter::createSMEHeader(raw_ostream &OS) {
OS << "/* Function attributes */\n";
OS << "#define __ai static __inline__ __attribute__((__always_inline__, "
"__nodebug__))\n\n";
+ OS << "#define __aio static __inline__ __attribute__((__always_inline__, "
+ "__nodebug__, __overloadable__))\n\n";
OS << "#ifdef __cplusplus\n";
OS << "extern \"C\" {\n";