utils/simd/
mod.rs

1//! SIMD vector implementations.
2//!
3//! These should be replaced by [`portable_simd`](https://github.com/rust-lang/rust/issues/86656)
4//! once stabilized.
5
6mod array;
7#[cfg(feature = "all-simd")]
8pub use array::array4096;
9pub use array::{array128, array256};
10
11#[cfg(all(feature = "unsafe", any(target_arch = "x86", target_arch = "x86_64")))]
12#[path = "avx2.rs"]
13mod avx2_impl;
14#[cfg(all(feature = "unsafe", any(target_arch = "x86", target_arch = "x86_64")))]
15pub use avx2_impl::avx2;
16#[cfg(all(
17    feature = "unsafe",
18    feature = "all-simd",
19    any(target_arch = "x86", target_arch = "x86_64")
20))]
21pub use avx2_impl::{avx2x2, avx2x4, avx2x8};
22
23#[cfg(all(feature = "unsafe", target_arch = "aarch64"))]
24#[path = "neon.rs"]
25mod neon_impl;
26#[cfg(all(feature = "unsafe", target_arch = "aarch64"))]
27pub use neon_impl::neon;
28#[cfg(all(feature = "unsafe", feature = "all-simd", target_arch = "aarch64"))]
29pub use neon_impl::{neonx2, neonx4, neonx8};
30
31pub mod scalar;