/rust/registry/src/index.crates.io-6f17d22bba15001f/simd-adler32-0.3.7/src/imp/mod.rs
Line | Count | Source (jump to first uncovered line) |
1 | | pub mod avx2; |
2 | | pub mod avx512; |
3 | | pub mod scalar; |
4 | | pub mod sse2; |
5 | | pub mod ssse3; |
6 | | pub mod wasm; |
7 | | |
8 | | pub type Adler32Imp = fn(u16, u16, &[u8]) -> (u16, u16); |
9 | | |
10 | | #[inline] |
11 | | #[allow(non_snake_case)] |
12 | 0 | pub const fn _MM_SHUFFLE(z: u32, y: u32, x: u32, w: u32) -> i32 { |
13 | 0 | ((z << 6) | (y << 4) | (x << 2) | w) as i32 |
14 | 0 | } |
15 | | |
16 | 0 | pub fn get_imp() -> Adler32Imp { |
17 | 0 | avx512::get_imp() |
18 | 0 | .or_else(avx2::get_imp) |
19 | 0 | .or_else(ssse3::get_imp) |
20 | 0 | .or_else(sse2::get_imp) |
21 | 0 | .or_else(wasm::get_imp) |
22 | 0 | .unwrap_or(scalar::update) |
23 | 0 | } |