//! Code-generation utilities crate mod bit_manip; crate mod llvm; crate mod math; crate mod reductions; crate mod shuffle; crate mod shuffle1_dyn; crate mod swap_bytes; macro_rules! impl_simd_array { ([$elem_ty:ident; $elem_count:expr]: $tuple_id:ident | $($elem_tys:ident),*) => { #[derive(Copy, Clone)] #[repr(simd)] pub struct $tuple_id($(crate $elem_tys),*); //^^^^^^^ leaked through SimdArray impl crate::sealed::Seal for [$elem_ty; $elem_count] {} impl crate::sealed::SimdArray for [$elem_ty; $elem_count] { type Tuple = $tuple_id; type T = $elem_ty; const N: usize = $elem_count; type NT = [u32; $elem_count]; } impl crate::sealed::Seal for $tuple_id {} impl crate::sealed::Simd for $tuple_id { type Element = $elem_ty; const LANES: usize = $elem_count; type LanesType = [u32; $elem_count]; } } } crate mod pointer_sized_int; crate mod v16; crate use self::v16::*; crate mod v32; crate use self::v32::*; crate mod v64; crate use self::v64::*; crate mod v128; crate use self::v128::*; crate mod v256; crate use self::v256::*; crate mod v512; crate use self::v512::*; crate mod vSize; crate use self::vSize::*; crate mod vPtr; crate use self::vPtr::*;