Adds svset_neonq, svget_neonq, svdup_neonq AArch64 intrinsics.
These are described in the ACLE specification:
https://github.com/ARM-software/acle/pull/72
Paths
| Differential D114713
[AArch64][SVE][NEON] Add NEON-SVE-Bridge intrinsics ClosedPublic Authored by MattDevereau on Nov 29 2021, 8:15 AM.
Details Summary Adds svset_neonq, svget_neonq, svdup_neonq AArch64 intrinsics. These are described in the ACLE specification:
Diff Detail
Event TimelineHerald added projects: Restricted Project, Restricted Project. · View Herald TranscriptNov 29 2021, 8:15 AM
Comment Actions updated builtin signatures in clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge.def MattDevereau marked an inline comment as done.
MattDevereau added inline comments.
Comment Actions updated SVEMAP2 types Comment Actions clang-format is upset about this ordering: #include "clang/Basic/arm_sve_builtin_cg.inc" but swapping the order causes all SVE tests to fail. I'm ignoring the clang-format error for this
This revision is now accepted and ready to land.Dec 8 2021, 7:28 AM
Revision Contents
Diff 392015 clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge.def
clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge_cg.def
clang/include/clang/Basic/BuiltinsSVE.def
clang/lib/Basic/Targets/AArch64.cpp
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/arm_neon_sve_bridge.h
clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_dup_neonq.c
clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_get_neonq.c
clang/test/CodeGen/aarch64_neon_sve_bridge_intrinsics/acle_neon_sve_bridge_set_neonq.c
|
Looks like these aren't correct, the number should indicate the number of lanes, and it should be 16 for an s8. q indicates scalable, which is also not right for this builtin.
The code which parses these strings can be found here:
https://github.com/llvm/llvm-project/blob/14c4051122bf4070d624b82189f1093758ecdf69/clang/lib/AST/ASTContext.cpp#L10417