#[repr(C, align(32))]pub struct Lanes4Word64(pub [u64; 4]);Expand description
Four lanes of Word64 (one 256-bit SIMD register) — the Poly1305 accumulator lane vector.
Carries [u64; 4]; ops have an AVX2 fast path proven byte-identical to the scalar lanes.
Tuple Fields§
§0: [u64; 4]Implementations§
Source§impl Lanes4Word64
impl Lanes4Word64
Sourcepub fn from_words(s: &[Word64]) -> Self
pub fn from_words(s: &[Word64]) -> Self
Pack the first four Word64s of a slice into a lane vector (shorter slices zero-fill).
Sourcepub fn hsum(self) -> u64
pub fn hsum(self) -> u64
The horizontal sum of the four lanes (wrapping in ℤ/2⁶⁴) — combines the per-lane partial products in a 4-way Poly1305 multiply. Reads the scalar array; no SIMD needed.
Sourcepub fn add(self, o: Self) -> Self
pub fn add(self, o: Self) -> Self
Lane-wise wrapping add in ℤ/2⁶⁴ (vpaddq). #[inline(always)] + compile-time
cfg(target_feature="avx2") (no runtime is_x86_feature_detected branch, no #[target_feature]
call boundary) so the 4-way Poly1305 accumulator stays register-resident under +avx2.
Sourcepub fn mul_lo32_wide(self, o: Self) -> Self
pub fn mul_lo32_wide(self, o: Self) -> Self
Lane-wise widening multiply of the low 32 bits: (aₗₒ·bₗₒ) per lane → a 64-bit product
(vpmuludq). #[inline(always)] + compile-time cfg(target_feature="avx2") so the Poly1305
4-way limb multiply inlines register-resident under +avx2.
Sourcepub fn splat(x: u64) -> Self
pub fn splat(x: u64) -> Self
Broadcast one u64 into all four lanes (Keccak’s ι round-constant XOR is a splat).
Trait Implementations§
Source§impl Add for Lanes4Word64
impl Add for Lanes4Word64
Source§impl BitAnd for Lanes4Word64
impl BitAnd for Lanes4Word64
Source§impl BitXor for Lanes4Word64
impl BitXor for Lanes4Word64
Source§impl Clone for Lanes4Word64
impl Clone for Lanes4Word64
Source§fn clone(&self) -> Lanes4Word64
fn clone(&self) -> Lanes4Word64
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Lanes4Word64
impl Debug for Lanes4Word64
Source§impl Hash for Lanes4Word64
impl Hash for Lanes4Word64
Source§impl PartialEq for Lanes4Word64
impl PartialEq for Lanes4Word64
Source§fn eq(&self, other: &Lanes4Word64) -> bool
fn eq(&self, other: &Lanes4Word64) -> bool
self and other values to be equal, and is used by ==.