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(
24    feature = "unsafe",
25    any(target_arch = "aarch64", target_arch = "arm64ec"),
26))]
27#[path = "neon.rs"]
28mod neon_impl;
29#[cfg(all(
30    feature = "unsafe",
31    any(target_arch = "aarch64", target_arch = "arm64ec"),
32))]
33pub use neon_impl::neon;
34#[cfg(all(
35    feature = "unsafe",
36    feature = "all-simd",
37    any(target_arch = "aarch64", target_arch = "arm64ec"),
38))]
39pub use neon_impl::{neonx2, neonx4, neonx8};
40
41pub mod scalar;