cat vector types by kind
Rearrange aliases to bottom of files
This commit is contained in:
parent
27f094f5ee
commit
ca15e4fcd8
15 changed files with 262 additions and 295 deletions
|
|
@ -1,27 +1,3 @@
|
|||
mod vectors_f64;
|
||||
mod vectors_i128;
|
||||
mod vectors_i16;
|
||||
mod vectors_i32;
|
||||
mod vectors_i64;
|
||||
mod vectors_i8;
|
||||
mod vectors_u128;
|
||||
mod vectors_u16;
|
||||
mod vectors_u32;
|
||||
mod vectors_u64;
|
||||
mod vectors_u8;
|
||||
|
||||
pub use vectors_f64::*;
|
||||
pub use vectors_i128::*;
|
||||
pub use vectors_i16::*;
|
||||
pub use vectors_i32::*;
|
||||
pub use vectors_i64::*;
|
||||
pub use vectors_i8::*;
|
||||
pub use vectors_u128::*;
|
||||
pub use vectors_u16::*;
|
||||
pub use vectors_u32::*;
|
||||
pub use vectors_u64::*;
|
||||
pub use vectors_u8::*;
|
||||
|
||||
mod float;
|
||||
mod int;
|
||||
mod uint;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,22 @@ where
|
|||
|
||||
impl_float_vector! { SimdF32, f32, SimdU32 }
|
||||
|
||||
from_transmute_x86! { unsafe f32x4 => __m128 }
|
||||
from_transmute_x86! { unsafe f32x8 => __m256 }
|
||||
//from_transmute_x86! { unsafe f32x16 => __m512 }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `f64` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdF64<const LANES: usize>([f64; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_float_vector! { SimdF64, f64, SimdU64 }
|
||||
|
||||
from_transmute_x86! { unsafe f64x2 => __m128d }
|
||||
from_transmute_x86! { unsafe f64x4 => __m256d }
|
||||
//from_transmute_x86! { unsafe f64x8 => __m512d }
|
||||
|
||||
/// Vector of two `f32` values
|
||||
pub type f32x2 = SimdF32<2>;
|
||||
|
||||
|
|
@ -20,6 +36,11 @@ pub type f32x8 = SimdF32<8>;
|
|||
/// Vector of 16 `f32` values
|
||||
pub type f32x16 = SimdF32<16>;
|
||||
|
||||
from_transmute_x86! { unsafe f32x4 => __m128 }
|
||||
from_transmute_x86! { unsafe f32x8 => __m256 }
|
||||
//from_transmute_x86! { unsafe f32x16 => __m512 }
|
||||
/// Vector of two `f64` values
|
||||
pub type f64x2 = SimdF64<2>;
|
||||
|
||||
/// Vector of four `f64` values
|
||||
pub type f64x4 = SimdF64<4>;
|
||||
|
||||
/// Vector of eight `f64` values
|
||||
pub type f64x8 = SimdF64<8>;
|
||||
|
|
|
|||
|
|
@ -8,15 +8,6 @@ where
|
|||
|
||||
impl_integer_vector! { SimdIsize, isize }
|
||||
|
||||
/// Vector of two `isize` values
|
||||
pub type isizex2 = SimdIsize<2>;
|
||||
|
||||
/// Vector of four `isize` values
|
||||
pub type isizex4 = SimdIsize<4>;
|
||||
|
||||
/// Vector of eight `isize` values
|
||||
pub type isizex8 = SimdIsize<8>;
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
from_transmute_x86! { unsafe isizex4 => __m128i }
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
|
|
@ -28,3 +19,122 @@ from_transmute_x86! { unsafe isizex2 => __m128i }
|
|||
from_transmute_x86! { unsafe isizex4 => __m256i }
|
||||
//#[cfg(target_pointer_width = "64")]
|
||||
//from_transmute_x86! { unsafe isizex8 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i128` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI128<const LANES: usize>([i128; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI128, i128 }
|
||||
|
||||
from_transmute_x86! { unsafe i128x2 => __m256i }
|
||||
//from_transmute_x86! { unsafe i128x4 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i16` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI16<const LANES: usize>([i16; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI16, i16 }
|
||||
|
||||
from_transmute_x86! { unsafe i16x8 => __m128i }
|
||||
from_transmute_x86! { unsafe i16x16 => __m256i }
|
||||
//from_transmute_x86! { unsafe i16x32 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i32` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI32<const LANES: usize>([i32; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI32, i32 }
|
||||
|
||||
from_transmute_x86! { unsafe i32x4 => __m128i }
|
||||
from_transmute_x86! { unsafe i32x8 => __m256i }
|
||||
//from_transmute_x86! { unsafe i32x16 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i64` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI64<const LANES: usize>([i64; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI64, i64 }
|
||||
|
||||
from_transmute_x86! { unsafe i64x2 => __m128i }
|
||||
from_transmute_x86! { unsafe i64x4 => __m256i }
|
||||
//from_transmute_x86! { unsafe i64x8 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i8` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI8<const LANES: usize>([i8; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI8, i8 }
|
||||
|
||||
from_transmute_x86! { unsafe i8x16 => __m128i }
|
||||
from_transmute_x86! { unsafe i8x32 => __m256i }
|
||||
//from_transmute_x86! { unsafe i8x64 => __m512i }
|
||||
|
||||
/// Vector of two `isize` values
|
||||
pub type isizex2 = SimdIsize<2>;
|
||||
|
||||
/// Vector of four `isize` values
|
||||
pub type isizex4 = SimdIsize<4>;
|
||||
|
||||
/// Vector of eight `isize` values
|
||||
pub type isizex8 = SimdIsize<8>;
|
||||
|
||||
/// Vector of two `i128` values
|
||||
pub type i128x2 = SimdI128<2>;
|
||||
|
||||
/// Vector of four `i128` values
|
||||
pub type i128x4 = SimdI128<4>;
|
||||
|
||||
/// Vector of four `i16` values
|
||||
pub type i16x4 = SimdI16<4>;
|
||||
|
||||
/// Vector of eight `i16` values
|
||||
pub type i16x8 = SimdI16<8>;
|
||||
|
||||
/// Vector of 16 `i16` values
|
||||
pub type i16x16 = SimdI16<16>;
|
||||
|
||||
/// Vector of 32 `i16` values
|
||||
pub type i16x32 = SimdI16<32>;
|
||||
|
||||
/// Vector of two `i32` values
|
||||
pub type i32x2 = SimdI32<2>;
|
||||
|
||||
/// Vector of four `i32` values
|
||||
pub type i32x4 = SimdI32<4>;
|
||||
|
||||
/// Vector of eight `i32` values
|
||||
pub type i32x8 = SimdI32<8>;
|
||||
|
||||
/// Vector of 16 `i32` values
|
||||
pub type i32x16 = SimdI32<16>;
|
||||
|
||||
/// Vector of two `i64` values
|
||||
pub type i64x2 = SimdI64<2>;
|
||||
|
||||
/// Vector of four `i64` values
|
||||
pub type i64x4 = SimdI64<4>;
|
||||
|
||||
/// Vector of eight `i64` values
|
||||
pub type i64x8 = SimdI64<8>;
|
||||
|
||||
/// Vector of eight `i8` values
|
||||
pub type i8x8 = SimdI8<8>;
|
||||
|
||||
/// Vector of 16 `i8` values
|
||||
pub type i8x16 = SimdI8<16>;
|
||||
|
||||
/// Vector of 32 `i8` values
|
||||
pub type i8x32 = SimdI8<32>;
|
||||
|
||||
/// Vector of 64 `i8` values
|
||||
pub type i8x64 = SimdI8<64>;
|
||||
|
|
|
|||
|
|
@ -8,15 +8,6 @@ where
|
|||
|
||||
impl_integer_vector! { SimdUsize, usize }
|
||||
|
||||
/// Vector of two `usize` values
|
||||
pub type usizex2 = SimdUsize<2>;
|
||||
|
||||
/// Vector of four `usize` values
|
||||
pub type usizex4 = SimdUsize<4>;
|
||||
|
||||
/// Vector of eight `usize` values
|
||||
pub type usizex8 = SimdUsize<8>;
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
from_transmute_x86! { unsafe usizex4 => __m128i }
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
|
|
@ -28,3 +19,122 @@ from_transmute_x86! { unsafe usizex2 => __m128i }
|
|||
from_transmute_x86! { unsafe usizex4 => __m256i }
|
||||
//#[cfg(target_pointer_width = "64")]
|
||||
//from_transmute_x86! { unsafe usizex8 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u128` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU128<const LANES: usize>([u128; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU128, u128 }
|
||||
|
||||
from_transmute_x86! { unsafe u128x2 => __m256i }
|
||||
//from_transmute_x86! { unsafe u128x4 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u16` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU16<const LANES: usize>([u16; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU16, u16 }
|
||||
|
||||
from_transmute_x86! { unsafe u16x8 => __m128i }
|
||||
from_transmute_x86! { unsafe u16x16 => __m256i }
|
||||
//from_transmute_x86! { unsafe u16x32 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u32` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU32<const LANES: usize>([u32; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU32, u32 }
|
||||
|
||||
from_transmute_x86! { unsafe u32x4 => __m128i }
|
||||
from_transmute_x86! { unsafe u32x8 => __m256i }
|
||||
//from_transmute_x86! { unsafe u32x16 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u64` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU64<const LANES: usize>([u64; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU64, u64 }
|
||||
|
||||
from_transmute_x86! { unsafe u64x2 => __m128i }
|
||||
from_transmute_x86! { unsafe u64x4 => __m256i }
|
||||
//from_transmute_x86! { unsafe u64x8 => __m512i }
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u8` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU8<const LANES: usize>([u8; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU8, u8 }
|
||||
|
||||
from_transmute_x86! { unsafe u8x16 => __m128i }
|
||||
from_transmute_x86! { unsafe u8x32 => __m256i }
|
||||
//from_transmute_x86! { unsafe u8x64 => __m512i }
|
||||
|
||||
/// Vector of two `usize` values
|
||||
pub type usizex2 = SimdUsize<2>;
|
||||
|
||||
/// Vector of four `usize` values
|
||||
pub type usizex4 = SimdUsize<4>;
|
||||
|
||||
/// Vector of eight `usize` values
|
||||
pub type usizex8 = SimdUsize<8>;
|
||||
|
||||
/// Vector of two `u128` values
|
||||
pub type u128x2 = SimdU128<2>;
|
||||
|
||||
/// Vector of four `u128` values
|
||||
pub type u128x4 = SimdU128<4>;
|
||||
|
||||
/// Vector of four `u16` values
|
||||
pub type u16x4 = SimdU16<4>;
|
||||
|
||||
/// Vector of eight `u16` values
|
||||
pub type u16x8 = SimdU16<8>;
|
||||
|
||||
/// Vector of 16 `u16` values
|
||||
pub type u16x16 = SimdU16<16>;
|
||||
|
||||
/// Vector of 32 `u16` values
|
||||
pub type u16x32 = SimdU16<32>;
|
||||
|
||||
/// Vector of two `u32` values
|
||||
pub type u32x2 = SimdU32<2>;
|
||||
|
||||
/// Vector of four `u32` values
|
||||
pub type u32x4 = SimdU32<4>;
|
||||
|
||||
/// Vector of eight `u32` values
|
||||
pub type u32x8 = SimdU32<8>;
|
||||
|
||||
/// Vector of 16 `u32` values
|
||||
pub type u32x16 = SimdU32<16>;
|
||||
|
||||
/// Vector of two `u64` values
|
||||
pub type u64x2 = SimdU64<2>;
|
||||
|
||||
/// Vector of four `u64` values
|
||||
pub type u64x4 = SimdU64<4>;
|
||||
|
||||
/// Vector of eight `u64` values
|
||||
pub type u64x8 = SimdU64<8>;
|
||||
|
||||
/// Vector of eight `u8` values
|
||||
pub type u8x8 = SimdU8<8>;
|
||||
|
||||
/// Vector of 16 `u8` values
|
||||
pub type u8x16 = SimdU8<16>;
|
||||
|
||||
/// Vector of 32 `u8` values
|
||||
pub type u8x32 = SimdU8<32>;
|
||||
|
||||
/// Vector of 64 `u8` values
|
||||
pub type u8x64 = SimdU8<64>;
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `f64` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdF64<const LANES: usize>([f64; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_float_vector! { SimdF64, f64, SimdU64 }
|
||||
|
||||
/// Vector of two `f64` values
|
||||
pub type f64x2 = SimdF64<2>;
|
||||
|
||||
/// Vector of four `f64` values
|
||||
pub type f64x4 = SimdF64<4>;
|
||||
|
||||
/// Vector of eight `f64` values
|
||||
pub type f64x8 = SimdF64<8>;
|
||||
|
||||
from_transmute_x86! { unsafe f64x2 => __m128d }
|
||||
from_transmute_x86! { unsafe f64x4 => __m256d }
|
||||
//from_transmute_x86! { unsafe f64x8 => __m512d }
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i128` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI128<const LANES: usize>([i128; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI128, i128 }
|
||||
|
||||
/// Vector of two `i128` values
|
||||
pub type i128x2 = SimdI128<2>;
|
||||
|
||||
/// Vector of four `i128` values
|
||||
pub type i128x4 = SimdI128<4>;
|
||||
|
||||
from_transmute_x86! { unsafe i128x2 => __m256i }
|
||||
//from_transmute_x86! { unsafe i128x4 => __m512i }
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i16` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI16<const LANES: usize>([i16; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI16, i16 }
|
||||
|
||||
/// Vector of four `i16` values
|
||||
pub type i16x4 = SimdI16<4>;
|
||||
|
||||
/// Vector of eight `i16` values
|
||||
pub type i16x8 = SimdI16<8>;
|
||||
|
||||
/// Vector of 16 `i16` values
|
||||
pub type i16x16 = SimdI16<16>;
|
||||
|
||||
/// Vector of 32 `i16` values
|
||||
pub type i16x32 = SimdI16<32>;
|
||||
|
||||
from_transmute_x86! { unsafe i16x8 => __m128i }
|
||||
from_transmute_x86! { unsafe i16x16 => __m256i }
|
||||
//from_transmute_x86! { unsafe i16x32 => __m512i }
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i32` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI32<const LANES: usize>([i32; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI32, i32 }
|
||||
|
||||
/// Vector of two `i32` values
|
||||
pub type i32x2 = SimdI32<2>;
|
||||
|
||||
/// Vector of four `i32` values
|
||||
pub type i32x4 = SimdI32<4>;
|
||||
|
||||
/// Vector of eight `i32` values
|
||||
pub type i32x8 = SimdI32<8>;
|
||||
|
||||
/// Vector of 16 `i32` values
|
||||
pub type i32x16 = SimdI32<16>;
|
||||
|
||||
from_transmute_x86! { unsafe i32x4 => __m128i }
|
||||
from_transmute_x86! { unsafe i32x8 => __m256i }
|
||||
//from_transmute_x86! { unsafe i32x16 => __m512i }
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i64` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI64<const LANES: usize>([i64; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI64, i64 }
|
||||
|
||||
/// Vector of two `i64` values
|
||||
pub type i64x2 = SimdI64<2>;
|
||||
|
||||
/// Vector of four `i64` values
|
||||
pub type i64x4 = SimdI64<4>;
|
||||
|
||||
/// Vector of eight `i64` values
|
||||
pub type i64x8 = SimdI64<8>;
|
||||
|
||||
from_transmute_x86! { unsafe i64x2 => __m128i }
|
||||
from_transmute_x86! { unsafe i64x4 => __m256i }
|
||||
//from_transmute_x86! { unsafe i64x8 => __m512i }
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `i8` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdI8<const LANES: usize>([i8; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdI8, i8 }
|
||||
|
||||
/// Vector of eight `i8` values
|
||||
pub type i8x8 = SimdI8<8>;
|
||||
|
||||
/// Vector of 16 `i8` values
|
||||
pub type i8x16 = SimdI8<16>;
|
||||
|
||||
/// Vector of 32 `i8` values
|
||||
pub type i8x32 = SimdI8<32>;
|
||||
|
||||
/// Vector of 64 `i8` values
|
||||
pub type i8x64 = SimdI8<64>;
|
||||
|
||||
from_transmute_x86! { unsafe i8x16 => __m128i }
|
||||
from_transmute_x86! { unsafe i8x32 => __m256i }
|
||||
//from_transmute_x86! { unsafe i8x64 => __m512i }
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u128` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU128<const LANES: usize>([u128; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU128, u128 }
|
||||
|
||||
/// Vector of two `u128` values
|
||||
pub type u128x2 = SimdU128<2>;
|
||||
|
||||
/// Vector of four `u128` values
|
||||
pub type u128x4 = SimdU128<4>;
|
||||
|
||||
from_transmute_x86! { unsafe u128x2 => __m256i }
|
||||
//from_transmute_x86! { unsafe u128x4 => __m512i }
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u16` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU16<const LANES: usize>([u16; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU16, u16 }
|
||||
|
||||
/// Vector of four `u16` values
|
||||
pub type u16x4 = SimdU16<4>;
|
||||
|
||||
/// Vector of eight `u16` values
|
||||
pub type u16x8 = SimdU16<8>;
|
||||
|
||||
/// Vector of 16 `u16` values
|
||||
pub type u16x16 = SimdU16<16>;
|
||||
|
||||
/// Vector of 32 `u16` values
|
||||
pub type u16x32 = SimdU16<32>;
|
||||
|
||||
from_transmute_x86! { unsafe u16x8 => __m128i }
|
||||
from_transmute_x86! { unsafe u16x16 => __m256i }
|
||||
//from_transmute_x86! { unsafe u16x32 => __m512i }
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u32` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU32<const LANES: usize>([u32; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU32, u32 }
|
||||
|
||||
/// Vector of two `u32` values
|
||||
pub type u32x2 = SimdU32<2>;
|
||||
|
||||
/// Vector of four `u32` values
|
||||
pub type u32x4 = SimdU32<4>;
|
||||
|
||||
/// Vector of eight `u32` values
|
||||
pub type u32x8 = SimdU32<8>;
|
||||
|
||||
/// Vector of 16 `u32` values
|
||||
pub type u32x16 = SimdU32<16>;
|
||||
|
||||
from_transmute_x86! { unsafe u32x4 => __m128i }
|
||||
from_transmute_x86! { unsafe u32x8 => __m256i }
|
||||
//from_transmute_x86! { unsafe u32x16 => __m512i }
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u64` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU64<const LANES: usize>([u64; LANES])
|
||||
where
|
||||
Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU64, u64 }
|
||||
|
||||
/// Vector of two `u64` values
|
||||
pub type u64x2 = SimdU64<2>;
|
||||
|
||||
/// Vector of four `u64` values
|
||||
pub type u64x4 = SimdU64<4>;
|
||||
|
||||
/// Vector of eight `u64` values
|
||||
pub type u64x8 = SimdU64<8>;
|
||||
|
||||
from_transmute_x86! { unsafe u64x2 => __m128i }
|
||||
from_transmute_x86! { unsafe u64x4 => __m256i }
|
||||
//from_transmute_x86! { unsafe u64x8 => __m512i }
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
#![allow(non_camel_case_types)]
|
||||
|
||||
/// A SIMD vector of containing `LANES` `u8` values.
|
||||
#[repr(simd)]
|
||||
pub struct SimdU8<const LANES: usize>([u8; LANES]) where Self: crate::LanesAtMost64;
|
||||
|
||||
impl_integer_vector! { SimdU8, u8 }
|
||||
|
||||
/// Vector of eight `u8` values
|
||||
pub type u8x8 = SimdU8<8>;
|
||||
|
||||
/// Vector of 16 `u8` values
|
||||
pub type u8x16 = SimdU8<16>;
|
||||
|
||||
/// Vector of 32 `u8` values
|
||||
pub type u8x32 = SimdU8<32>;
|
||||
|
||||
/// Vector of 64 `u8` values
|
||||
pub type u8x64 = SimdU8<64>;
|
||||
|
||||
from_transmute_x86! { unsafe u8x16 => __m128i }
|
||||
from_transmute_x86! { unsafe u8x32 => __m256i }
|
||||
//from_transmute_x86! { unsafe u8x64 => __m512i }
|
||||
Loading…
Add table
Add a link
Reference in a new issue