safe_unaligned_simd
Safe wrappers for unaligned SIMD load and store operations.
The goal of this crate is to remove the need for "unnecessary unsafe" code when using vector intrinsics to access memory, with no alignment requirements.
Platform-intrinsics that take raw pointers have been wrapped in functions that receive Rust reference types as arguments.
MSRV: 1.88
Supported target architectures
x86 / x86_64
sse,sse2,avx
Some functions have variants that are generic over Cell array types, which allow for mutation of shared references.
See the cell module for an example.
Example function signatures:
;
;
;
Currently, there is no plan to implement gather/scatter or masked load/store intrinsics for this platform.
aarch64 / arm64ec
neon
Example function signatures:
;
;
wasm32
simd128
Example function signatures:
;
;
License
This crate is licensed under either
- the MIT License, or
- the Apache License (Version 2.0)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.