Support ARM SVE instructions #117
Labels
Future proofing
Aiming to work around year 2200 A.C.
Performance
portability
Related to working on a certain operating system
The SVE SIMD extensions are pretty much the ARM equivalent of Intel's AVX2 by adding vectors wider than 128 bits, together with gather and scatter instructions. To fully support this, simd.h may need to change some compile time constants into functions and use macros for backward compatibility. Then memory allocation needs to calculate the maximum memory alignment based on the vector length at runtime. Both the X vector and the F vector should be tied directly to the dynamic vector size of SVE registers.
To reduce the risk of damaging an implementation for one hardware target while working with another, simd.h needs to be divided into reference, Intel/AMD, and ARM implementations of SIMD in different headers placed in a separate folder. The reference implementation will work as timeless documentation of what should be done, preferrably refactored using templates for simplicity.
The text was updated successfully, but these errors were encountered: