Add SSVE vector extension to libm
Checklist
-
I have read the contributing guidelines. -
I have considered portability of my change across platforms and architectures. -
I have self-reviewed my code. -
I have commented my code where necessary. -
I have updated the documentation accordingly. -
I have added tests that prove my fix is effective or that my feature works.
What is the purpose of this pull request?
- Add support for a new vector extension, namely Streaming SVE.
What changes did you make?
Enable Streaming SVE as a new vector extension (add new config in existing helpersve.h). Deal with potential streaming incompatibility and performance issues, e.g
- improved streaming-compatible predicate logic,
- remove mode-switches where possible and beneficial to performance, otherwise keep them,
- minimise number of branches (avoid if possible). Provide GNU ABI symbols.
Does this PR relate to any existing issue?
No issue was created for this new feature.
What's missing?
Public facing tests are missing. Only available through emulation, therefore tests will be performed internally for now.