fearless_simd v0.7: 64-bit integers, improved generics, SSE2, and upcoming v1.0
11 points by itamarst
11 points by itamarst
The phrase "fearless_simd takes unsafe out of SIMD" had me concerned that it might be merely unsoundly papering over the unsafety of SIMD intrinsics (as some "safe" FFI systems have papered over the unsafety of FFI), but then I saw the author is Shnatsel, whom I would trust with this.
One one hand, it’s great that this is possible as a crate.
On the other hand, it sad that it needs to be a crate:
core::simd is still not available on non-nightly Rust. Shipping is a feature.
Rust puts principles over practicality by requiring unsafe to call intrinsics that are statically available (e.g. SSE2 on x86_64, NEON on aarch64).
Not having clear language-level support for an #[inline(always)] function to have conditional compilation inside it to ask what kind of target_feature enablement context it has been inlined into.
Forcing x86/x86_64 feature detection into std instead of core, because there are other architectures where detection needs operating system support instead of depending on an instruction.