Closed Dawoodoz closed 1 year ago
Giving simdExtra.h a new purpose would avoid breaking backwards compatibility. Zip instructions would be moved into simd.h, but simdExtra could contain compound functions that are already fast on top of the SIMD abstractions, but can be made faster with a certain instruction set available. Then only simd.h needs modification if adding support for another instruction set.
The new simdExtra.h could contain:
simdExtra.h has now been disabled for ARM NEON.
simdExtra has now been deleted.
The simdExtra.h header was meant for a collection of SIMD functions that are not efficiently emulated on scalar operations, but so far it only contains the zip operation. Vector extraction is already emulated with scalars in simd.h, so this distinction does not make sense anymore. Can just write the scalar version of zip and unzip to have them moved into simd.h.
Version 1.0 should be as clean as possible to make following minor releases more version stable for projects that waited for the first stable release. Adapting to this change would only require automatically replacing "simdExtra.h" with "simd.h" to work as before.