I'm thinking of implementation std.simd in fashion different to
https://github.com/TurkeyMan/simd
since it looks dead and too sophisticated.
My proposal is:
- std.simd - processor independent intrinsics and some high
level stuff.
You only depend on different sizes of SIMD vector.
- std.simd.x86 - provides unified (compiler independent)
x86/x86_64 intrinsic
call. Each SIMD version (sse, sse2, ...) has its own
namespace(struct) with
intrinsic wrappers. Each wrapper is straightforward.
- std.simd.arm - provides unified arm-based SIMD.
Demo:
https://github.com/Iakh/simd
At the end of the file
https://github.com/Iakh/simd/blob/master/std/simd/x86.d
is a long unittest with sse2 memchar implementation.