When using the gcc aarch64-linux-gnu v14 compiler, Arm SVE intrinsics (for neoverse-v2) are referenced by including:\usr\lib\gcc\aarch64-linux-gnu\14\include\arm_sve.h
However, this header file uses unusual code to generate the definitions:/* NOTE: This implementation of arm_sve.h is intentionally short. It does not define the SVE types and intrinsic functions directly in C and C++ code, but instead uses the following pragma to tell GCC to insert the necessary type and function definitions itself. The net effect is the same, and the file is a complete implementation of arm_sve.h. */ #pragma GCC aarch64 "arm_sve.h"
/* NOTE: This implementation of arm_sve.h is intentionally short. It does not define the SVE types and intrinsic functions directly in C and C++ code, but instead uses the following pragma to tell GCC to insert the necessary type and function definitions itself. The net effect is the same, and the file is a complete implementation of arm_sve.h. */ #pragma GCC aarch64 "arm_sve.h"
This makes it impossible to inspect the definitions.
There is documentation on SVE here: https://developer.arm.com/documentation/102476/0100 but we can't find definitions of the intrinsics.Where can I find clear definitions of the SVE intrinsics? Is it possible to generate or obtain an expanded arm_sve.h containing the full definitions?