SIMD: extend NEON coverage, and include neon in oiio_simd_caps #3599
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Related to points raised over at #3268, this improves NEON coverage a bit. It already works "out of the box" (at least when building on an Apple Silicon, using all default cmake options), but a bunch of functions were missing native NEON implementations. Also
oiio_simd_caps()
did not indicate in any way that NEON SIMD is actually compiled in.Tests
None of ARM platforms are tested on Github CI here. I manually ran various
_test
executables produced by a local build before & after the changes, and everything is the same correctness wise.Testing on Apple M1 Max, Release build, notable
simd_test
Mvals/sec changes:Checklist:
have previously submitted a Contributor License Agreement
(individual, and if there is any way my
employers might think my programming belongs to them, then also
corporate).
(adding new test cases if necessary).