forked from OSchip/llvm-project
969034b860
Summary: This patch implements the following intrinsics: uint8x16_t __arm_vcx1q_u8 (int coproc, uint32_t imm); T __arm_vcx1qa(int coproc, T acc, uint32_t imm); T __arm_vcx2q(int coproc, T n, uint32_t imm); uint8x16_t __arm_vcx2q_u8(int coproc, T n, uint32_t imm); T __arm_vcx2qa(int coproc, T acc, U n, uint32_t imm); T __arm_vcx3q(int coproc, T n, U m, uint32_t imm); uint8x16_t __arm_vcx3q_u8(int coproc, T n, U m, uint32_t imm); T __arm_vcx3qa(int coproc, T acc, U n, V m, uint32_t imm); Most of them are polymorphic. Furthermore, some intrinsics are polymorphic by 2 or 3 parameter types, such polymorphism is not supported by the existing MVE/CDE tablegen backends, also we don't really want to have a combinatorial explosion caused by 1000 different combinations of 3 vector types. Because of this some intrinsics are implemented as macros involving a cast of the polymorphic arguments to uint8x16_t. The IR intrinsics are even more restricted in terms of types: all MVE vectors are cast to v16i8. Reviewers: simon_tatham, MarkMurrayARM, dmgreen, ostannard Reviewed By: MarkMurrayARM Subscribers: kristof.beyls, hiraditya, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76299 |
||
---|---|---|
.. | ||
ASTTableGen.cpp | ||
ASTTableGen.h | ||
CMakeLists.txt | ||
ClangASTNodesEmitter.cpp | ||
ClangASTPropertiesEmitter.cpp | ||
ClangAttrEmitter.cpp | ||
ClangCommentCommandInfoEmitter.cpp | ||
ClangCommentHTMLNamedCharacterReferenceEmitter.cpp | ||
ClangCommentHTMLTagsEmitter.cpp | ||
ClangDataCollectorsEmitter.cpp | ||
ClangDiagnosticsEmitter.cpp | ||
ClangOpcodesEmitter.cpp | ||
ClangOpenCLBuiltinEmitter.cpp | ||
ClangOptionDocEmitter.cpp | ||
ClangSACheckersEmitter.cpp | ||
ClangTypeNodesEmitter.cpp | ||
MveEmitter.cpp | ||
NeonEmitter.cpp | ||
SveEmitter.cpp | ||
TableGen.cpp | ||
TableGenBackends.h |