From 543bcd37e91afc1271befde3a33d6a73abc204d4 Mon Sep 17 00:00:00 2001 From: Caleb Zulawski Date: Wed, 23 Sep 2020 10:21:19 -0400 Subject: [PATCH] Combine vector definition modules by scalar type --- crates/core_simd/src/lib.rs | 61 +++++++++++++-------------- crates/core_simd/src/type_f32x16.rs | 12 ------ crates/core_simd/src/type_f32x2.rs | 4 -- crates/core_simd/src/type_f32x4.rs | 10 ----- crates/core_simd/src/type_f32x8.rs | 10 ----- crates/core_simd/src/type_f64x2.rs | 10 ----- crates/core_simd/src/type_f64x4.rs | 10 ----- crates/core_simd/src/type_f64x8.rs | 12 ------ crates/core_simd/src/type_i128x2.rs | 10 ----- crates/core_simd/src/type_i128x4.rs | 12 ------ crates/core_simd/src/type_i16x16.rs | 10 ----- crates/core_simd/src/type_i16x2.rs | 4 -- crates/core_simd/src/type_i16x32.rs | 12 ------ crates/core_simd/src/type_i16x4.rs | 4 -- crates/core_simd/src/type_i16x8.rs | 10 ----- crates/core_simd/src/type_i32x16.rs | 12 ------ crates/core_simd/src/type_i32x2.rs | 4 -- crates/core_simd/src/type_i32x4.rs | 10 ----- crates/core_simd/src/type_i32x8.rs | 10 ----- crates/core_simd/src/type_i64x2.rs | 10 ----- crates/core_simd/src/type_i64x4.rs | 10 ----- crates/core_simd/src/type_i64x8.rs | 12 ------ crates/core_simd/src/type_i8x16.rs | 10 ----- crates/core_simd/src/type_i8x2.rs | 4 -- crates/core_simd/src/type_i8x32.rs | 10 ----- crates/core_simd/src/type_i8x4.rs | 4 -- crates/core_simd/src/type_i8x64.rs | 12 ------ crates/core_simd/src/type_i8x8.rs | 4 -- crates/core_simd/src/type_isizex2.rs | 10 ----- crates/core_simd/src/type_isizex4.rs | 16 ------- crates/core_simd/src/type_isizex8.rs | 18 -------- crates/core_simd/src/type_u128x2.rs | 10 ----- crates/core_simd/src/type_u128x4.rs | 12 ------ crates/core_simd/src/type_u16x16.rs | 10 ----- crates/core_simd/src/type_u16x2.rs | 4 -- crates/core_simd/src/type_u16x32.rs | 12 ------ crates/core_simd/src/type_u16x4.rs | 4 -- crates/core_simd/src/type_u16x8.rs | 10 ----- crates/core_simd/src/type_u32x16.rs | 12 ------ crates/core_simd/src/type_u32x2.rs | 4 -- crates/core_simd/src/type_u32x4.rs | 10 ----- crates/core_simd/src/type_u32x8.rs | 10 ----- crates/core_simd/src/type_u64x2.rs | 10 ----- crates/core_simd/src/type_u64x4.rs | 10 ----- crates/core_simd/src/type_u64x8.rs | 12 ------ crates/core_simd/src/type_u8x16.rs | 10 ----- crates/core_simd/src/type_u8x2.rs | 4 -- crates/core_simd/src/type_u8x32.rs | 10 ----- crates/core_simd/src/type_u8x4.rs | 4 -- crates/core_simd/src/type_u8x64.rs | 12 ------ crates/core_simd/src/type_u8x8.rs | 4 -- crates/core_simd/src/type_usizex2.rs | 10 ----- crates/core_simd/src/type_usizex4.rs | 16 ------- crates/core_simd/src/type_usizex8.rs | 18 -------- crates/core_simd/src/vectors_f32.rs | 39 +++++++++++++++++ crates/core_simd/src/vectors_f64.rs | 34 +++++++++++++++ crates/core_simd/src/vectors_i128.rs | 23 ++++++++++ crates/core_simd/src/vectors_i16.rs | 44 +++++++++++++++++++ crates/core_simd/src/vectors_i32.rs | 39 +++++++++++++++++ crates/core_simd/src/vectors_i64.rs | 34 +++++++++++++++ crates/core_simd/src/vectors_i8.rs | 49 +++++++++++++++++++++ crates/core_simd/src/vectors_isize.rs | 46 ++++++++++++++++++++ crates/core_simd/src/vectors_u128.rs | 23 ++++++++++ crates/core_simd/src/vectors_u16.rs | 44 +++++++++++++++++++ crates/core_simd/src/vectors_u32.rs | 39 +++++++++++++++++ crates/core_simd/src/vectors_u64.rs | 34 +++++++++++++++ crates/core_simd/src/vectors_u8.rs | 49 +++++++++++++++++++++ crates/core_simd/src/vectors_usize.rs | 46 ++++++++++++++++++++ 68 files changed, 573 insertions(+), 535 deletions(-) delete mode 100644 crates/core_simd/src/type_f32x16.rs delete mode 100644 crates/core_simd/src/type_f32x2.rs delete mode 100644 crates/core_simd/src/type_f32x4.rs delete mode 100644 crates/core_simd/src/type_f32x8.rs delete mode 100644 crates/core_simd/src/type_f64x2.rs delete mode 100644 crates/core_simd/src/type_f64x4.rs delete mode 100644 crates/core_simd/src/type_f64x8.rs delete mode 100644 crates/core_simd/src/type_i128x2.rs delete mode 100644 crates/core_simd/src/type_i128x4.rs delete mode 100644 crates/core_simd/src/type_i16x16.rs delete mode 100644 crates/core_simd/src/type_i16x2.rs delete mode 100644 crates/core_simd/src/type_i16x32.rs delete mode 100644 crates/core_simd/src/type_i16x4.rs delete mode 100644 crates/core_simd/src/type_i16x8.rs delete mode 100644 crates/core_simd/src/type_i32x16.rs delete mode 100644 crates/core_simd/src/type_i32x2.rs delete mode 100644 crates/core_simd/src/type_i32x4.rs delete mode 100644 crates/core_simd/src/type_i32x8.rs delete mode 100644 crates/core_simd/src/type_i64x2.rs delete mode 100644 crates/core_simd/src/type_i64x4.rs delete mode 100644 crates/core_simd/src/type_i64x8.rs delete mode 100644 crates/core_simd/src/type_i8x16.rs delete mode 100644 crates/core_simd/src/type_i8x2.rs delete mode 100644 crates/core_simd/src/type_i8x32.rs delete mode 100644 crates/core_simd/src/type_i8x4.rs delete mode 100644 crates/core_simd/src/type_i8x64.rs delete mode 100644 crates/core_simd/src/type_i8x8.rs delete mode 100644 crates/core_simd/src/type_isizex2.rs delete mode 100644 crates/core_simd/src/type_isizex4.rs delete mode 100644 crates/core_simd/src/type_isizex8.rs delete mode 100644 crates/core_simd/src/type_u128x2.rs delete mode 100644 crates/core_simd/src/type_u128x4.rs delete mode 100644 crates/core_simd/src/type_u16x16.rs delete mode 100644 crates/core_simd/src/type_u16x2.rs delete mode 100644 crates/core_simd/src/type_u16x32.rs delete mode 100644 crates/core_simd/src/type_u16x4.rs delete mode 100644 crates/core_simd/src/type_u16x8.rs delete mode 100644 crates/core_simd/src/type_u32x16.rs delete mode 100644 crates/core_simd/src/type_u32x2.rs delete mode 100644 crates/core_simd/src/type_u32x4.rs delete mode 100644 crates/core_simd/src/type_u32x8.rs delete mode 100644 crates/core_simd/src/type_u64x2.rs delete mode 100644 crates/core_simd/src/type_u64x4.rs delete mode 100644 crates/core_simd/src/type_u64x8.rs delete mode 100644 crates/core_simd/src/type_u8x16.rs delete mode 100644 crates/core_simd/src/type_u8x2.rs delete mode 100644 crates/core_simd/src/type_u8x32.rs delete mode 100644 crates/core_simd/src/type_u8x4.rs delete mode 100644 crates/core_simd/src/type_u8x64.rs delete mode 100644 crates/core_simd/src/type_u8x8.rs delete mode 100644 crates/core_simd/src/type_usizex2.rs delete mode 100644 crates/core_simd/src/type_usizex4.rs delete mode 100644 crates/core_simd/src/type_usizex8.rs create mode 100644 crates/core_simd/src/vectors_f32.rs create mode 100644 crates/core_simd/src/vectors_f64.rs create mode 100644 crates/core_simd/src/vectors_i128.rs create mode 100644 crates/core_simd/src/vectors_i16.rs create mode 100644 crates/core_simd/src/vectors_i32.rs create mode 100644 crates/core_simd/src/vectors_i64.rs create mode 100644 crates/core_simd/src/vectors_i8.rs create mode 100644 crates/core_simd/src/vectors_isize.rs create mode 100644 crates/core_simd/src/vectors_u128.rs create mode 100644 crates/core_simd/src/vectors_u16.rs create mode 100644 crates/core_simd/src/vectors_u32.rs create mode 100644 crates/core_simd/src/vectors_u64.rs create mode 100644 crates/core_simd/src/vectors_u8.rs create mode 100644 crates/core_simd/src/vectors_usize.rs diff --git a/crates/core_simd/src/lib.rs b/crates/core_simd/src/lib.rs index b4fc58476f8f..a5dae4b02792 100644 --- a/crates/core_simd/src/lib.rs +++ b/crates/core_simd/src/lib.rs @@ -1,36 +1,35 @@ +#![no_std] #![feature(repr_simd)] #![warn(missing_docs)] + #[macro_use] mod macros; -macro_rules! import_types { - { $($mod:ident,)* } => { - $( - mod $mod; - pub use $mod::*; - )* - } -} - -import_types! { - type_u8x2, type_u8x4, type_u8x8, type_u8x16, type_u8x32, type_u8x64, - type_i8x2, type_i8x4, type_i8x8, type_i8x16, type_i8x32, type_i8x64, - type_u16x2, type_u16x4, type_u16x8, type_u16x16, type_u16x32, - type_i16x2, type_i16x4, type_i16x8, type_i16x16, type_i16x32, - type_u32x2, type_u32x4, type_u32x8, type_u32x16, - type_i32x2, type_i32x4, type_i32x8, type_i32x16, - type_u64x2, type_u64x4, type_u64x8, - type_i64x2, type_i64x4, type_i64x8, - type_u128x2, type_u128x4, - type_i128x2, type_i128x4, -} - -import_types! { - type_usizex2, type_usizex4, type_usizex8, - type_isizex2, type_isizex4, type_isizex8, -} - -import_types! { - type_f32x2, type_f32x4, type_f32x8, type_f32x16, - type_f64x2, type_f64x4, type_f64x8, -} +mod vectors_u8; +pub use vectors_u8::*; +mod vectors_u16; +pub use vectors_u16::*; +mod vectors_u32; +pub use vectors_u32::*; +mod vectors_u64; +pub use vectors_u64::*; +mod vectors_u128; +pub use vectors_u128::*; +mod vectors_usize; +pub use vectors_usize::*; +mod vectors_i8; +pub use vectors_i8::*; +mod vectors_i16; +pub use vectors_i16::*; +mod vectors_i32; +pub use vectors_i32::*; +mod vectors_i64; +pub use vectors_i64::*; +mod vectors_i128; +pub use vectors_i128::*; +mod vectors_isize; +pub use vectors_isize::*; +mod vectors_f32; +pub use vectors_f32::*; +mod vectors_f64; +pub use vectors_f64::*; diff --git a/crates/core_simd/src/type_f32x16.rs b/crates/core_simd/src/type_f32x16.rs deleted file mode 100644 index 45fb4a3175bb..000000000000 --- a/crates/core_simd/src/type_f32x16.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `f32` types"] - struct f32x16([f32; 16]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe f32x16 |bidirectional| core::arch::x86::__m512 } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe f32x16 |bidirectional| core::arch::x86_64::__m512 } -*/ diff --git a/crates/core_simd/src/type_f32x2.rs b/crates/core_simd/src/type_f32x2.rs deleted file mode 100644 index 8b60a2ee76f4..000000000000 --- a/crates/core_simd/src/type_f32x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `f32` types"] - struct f32x2([f32; 2]); -} diff --git a/crates/core_simd/src/type_f32x4.rs b/crates/core_simd/src/type_f32x4.rs deleted file mode 100644 index 452e607732cf..000000000000 --- a/crates/core_simd/src/type_f32x4.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of four `f32` types"] - struct f32x4([f32; 4]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe f32x4 |bidirectional| core::arch::x86::__m128 } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe f32x4 |bidirectional| core::arch::x86_64::__m128 } diff --git a/crates/core_simd/src/type_f32x8.rs b/crates/core_simd/src/type_f32x8.rs deleted file mode 100644 index 790a546e4e73..000000000000 --- a/crates/core_simd/src/type_f32x8.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of eight `f32` types"] - struct f32x8([f32; 8]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe f32x8 |bidirectional| core::arch::x86::__m256 } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe f32x8 |bidirectional| core::arch::x86_64::__m256 } diff --git a/crates/core_simd/src/type_f64x2.rs b/crates/core_simd/src/type_f64x2.rs deleted file mode 100644 index 0c349f38c862..000000000000 --- a/crates/core_simd/src/type_f64x2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `f64` types"] - struct f64x2([f64; 2]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe f64x2 |bidirectional| core::arch::x86::__m128d } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe f64x2 |bidirectional| core::arch::x86_64::__m128d } diff --git a/crates/core_simd/src/type_f64x4.rs b/crates/core_simd/src/type_f64x4.rs deleted file mode 100644 index ec6b46bc8c84..000000000000 --- a/crates/core_simd/src/type_f64x4.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of four `f64` types"] - struct f64x4([f64; 4]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe f64x4 |bidirectional| core::arch::x86::__m256d } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe f64x4 |bidirectional| core::arch::x86_64::__m256d } diff --git a/crates/core_simd/src/type_f64x8.rs b/crates/core_simd/src/type_f64x8.rs deleted file mode 100644 index dd65dc6b39ab..000000000000 --- a/crates/core_simd/src/type_f64x8.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of eight `f64` types"] - struct f64x8([f64; 8]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe f64x8 |bidirectional| core::arch::x86::__m512d } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe f64x8 |bidirectional| core::arch::x86_64::__m512d } -*/ diff --git a/crates/core_simd/src/type_i128x2.rs b/crates/core_simd/src/type_i128x2.rs deleted file mode 100644 index 1ac736ddf3a2..000000000000 --- a/crates/core_simd/src/type_i128x2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `i128` types"] - struct i128x2([i128; 2]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i128x2 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i128x2 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_i128x4.rs b/crates/core_simd/src/type_i128x4.rs deleted file mode 100644 index 6cef039d947a..000000000000 --- a/crates/core_simd/src/type_i128x4.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of four `i128` types"] - struct i128x4([i128; 4]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i128x4 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i128x4 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_i16x16.rs b/crates/core_simd/src/type_i16x16.rs deleted file mode 100644 index 1721286128fe..000000000000 --- a/crates/core_simd/src/type_i16x16.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `i16` types"] - struct i16x16([i16; 16]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i16x16 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i16x16 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_i16x2.rs b/crates/core_simd/src/type_i16x2.rs deleted file mode 100644 index 7ccbbe7f2d0a..000000000000 --- a/crates/core_simd/src/type_i16x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `i16` types"] - struct i16x2([i16; 2]); -} diff --git a/crates/core_simd/src/type_i16x32.rs b/crates/core_simd/src/type_i16x32.rs deleted file mode 100644 index 349d094a1bc9..000000000000 --- a/crates/core_simd/src/type_i16x32.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 32 `i16` types"] - struct i16x32([i16; 32]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_i16x4.rs b/crates/core_simd/src/type_i16x4.rs deleted file mode 100644 index 348bc4c53a94..000000000000 --- a/crates/core_simd/src/type_i16x4.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of four `i16` types"] - struct i16x4([i16; 4]); -} diff --git a/crates/core_simd/src/type_i16x8.rs b/crates/core_simd/src/type_i16x8.rs deleted file mode 100644 index 87ded0f3a49c..000000000000 --- a/crates/core_simd/src/type_i16x8.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of eight `i16` types"] - struct i16x8([i16; 8]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i16x8 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i16x8 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_i32x16.rs b/crates/core_simd/src/type_i32x16.rs deleted file mode 100644 index 7c52e9cb9e55..000000000000 --- a/crates/core_simd/src/type_i32x16.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `i32` types"] - struct i32x16([i32; 16]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_i32x2.rs b/crates/core_simd/src/type_i32x2.rs deleted file mode 100644 index e9845ae75c73..000000000000 --- a/crates/core_simd/src/type_i32x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `i32` types"] - struct i32x2([i32; 2]); -} diff --git a/crates/core_simd/src/type_i32x4.rs b/crates/core_simd/src/type_i32x4.rs deleted file mode 100644 index 47374f7ce439..000000000000 --- a/crates/core_simd/src/type_i32x4.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of four `i32` types"] - struct i32x4([i32; 4]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i32x4 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i32x4 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_i32x8.rs b/crates/core_simd/src/type_i32x8.rs deleted file mode 100644 index 79b4ea180c31..000000000000 --- a/crates/core_simd/src/type_i32x8.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of eight `i32` types"] - struct i32x8([i32; 8]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i32x8 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i32x8 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_i64x2.rs b/crates/core_simd/src/type_i64x2.rs deleted file mode 100644 index 7268ad5dfbe8..000000000000 --- a/crates/core_simd/src/type_i64x2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `i64` types"] - struct i64x2([i64; 2]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i64x2 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i64x2 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_i64x4.rs b/crates/core_simd/src/type_i64x4.rs deleted file mode 100644 index 3535783c3000..000000000000 --- a/crates/core_simd/src/type_i64x4.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of four `i64` types"] - struct i64x4([i64; 4]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i64x4 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i64x4 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_i64x8.rs b/crates/core_simd/src/type_i64x8.rs deleted file mode 100644 index 42d28db8c551..000000000000 --- a/crates/core_simd/src/type_i64x8.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of eight `i64` types"] - struct i64x8([i64; 8]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i64x8 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i64x8 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_i8x16.rs b/crates/core_simd/src/type_i8x16.rs deleted file mode 100644 index d7aadd4d7ab2..000000000000 --- a/crates/core_simd/src/type_i8x16.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `i8` types"] - struct i8x16([i8; 16]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i8x16 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i8x16 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_i8x2.rs b/crates/core_simd/src/type_i8x2.rs deleted file mode 100644 index aca22993c2e3..000000000000 --- a/crates/core_simd/src/type_i8x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `i8` types"] - struct i8x2([i8; 2]); -} diff --git a/crates/core_simd/src/type_i8x32.rs b/crates/core_simd/src/type_i8x32.rs deleted file mode 100644 index a323565c85cf..000000000000 --- a/crates/core_simd/src/type_i8x32.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of 32 `i8` types"] - struct i8x32([i8; 32]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe i8x32 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe i8x32 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_i8x4.rs b/crates/core_simd/src/type_i8x4.rs deleted file mode 100644 index 246703ebc50d..000000000000 --- a/crates/core_simd/src/type_i8x4.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of four `i8` types"] - struct i8x4([i8; 4]); -} diff --git a/crates/core_simd/src/type_i8x64.rs b/crates/core_simd/src/type_i8x64.rs deleted file mode 100644 index 26934df2a484..000000000000 --- a/crates/core_simd/src/type_i8x64.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 64 `i8` types"] - struct i8x64([i8; 64]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_i8x8.rs b/crates/core_simd/src/type_i8x8.rs deleted file mode 100644 index bc30e2daf840..000000000000 --- a/crates/core_simd/src/type_i8x8.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of eight `i8` types"] - struct i8x8([i8; 8]); -} diff --git a/crates/core_simd/src/type_isizex2.rs b/crates/core_simd/src/type_isizex2.rs deleted file mode 100644 index 464f64955522..000000000000 --- a/crates/core_simd/src/type_isizex2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `isize` types"] - struct isizex2([isize; 2]); -} - -#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] -from_aligned! { unsafe isizex2 |bidirectional| core::arch::x86::__m128i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -from_aligned! { unsafe isizex2 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_isizex4.rs b/crates/core_simd/src/type_isizex4.rs deleted file mode 100644 index 3be457393ec2..000000000000 --- a/crates/core_simd/src/type_isizex4.rs +++ /dev/null @@ -1,16 +0,0 @@ -define_type! { - #[doc = "Vector of four `isize` types"] - struct isizex4([isize; 4]); -} - -#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] -from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86::__m128i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86_64::__m128i } - -#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] -from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86::__m256i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_isizex8.rs b/crates/core_simd/src/type_isizex8.rs deleted file mode 100644 index e21c2cf624b0..000000000000 --- a/crates/core_simd/src/type_isizex8.rs +++ /dev/null @@ -1,18 +0,0 @@ -define_type! { - #[doc = "Vector of eight `isize` types"] - struct isizex8([isize; 8]); -} - -#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] -from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86::__m256i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86_64::__m256i } - -/* -#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] -from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86::__m512i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_u128x2.rs b/crates/core_simd/src/type_u128x2.rs deleted file mode 100644 index f448e4f0e626..000000000000 --- a/crates/core_simd/src/type_u128x2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `u128` types"] - struct u128x2([u128; 2]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u128x2 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u128x2 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_u128x4.rs b/crates/core_simd/src/type_u128x4.rs deleted file mode 100644 index 07466c720853..000000000000 --- a/crates/core_simd/src/type_u128x4.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of four `u128` types"] - struct u128x4([u128; 4]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u128x4 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u128x4 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_u16x16.rs b/crates/core_simd/src/type_u16x16.rs deleted file mode 100644 index 5460c3740adf..000000000000 --- a/crates/core_simd/src/type_u16x16.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `u16` types"] - struct u16x16([u16; 16]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u16x16 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u16x16 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_u16x2.rs b/crates/core_simd/src/type_u16x2.rs deleted file mode 100644 index 480be8b6eaef..000000000000 --- a/crates/core_simd/src/type_u16x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `u16` types"] - struct u16x2([u16; 2]); -} diff --git a/crates/core_simd/src/type_u16x32.rs b/crates/core_simd/src/type_u16x32.rs deleted file mode 100644 index 67d60535f776..000000000000 --- a/crates/core_simd/src/type_u16x32.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 32 `u16` types"] - struct u16x32([u16; 32]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u16x32 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u16x32 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_u16x4.rs b/crates/core_simd/src/type_u16x4.rs deleted file mode 100644 index 874891363da8..000000000000 --- a/crates/core_simd/src/type_u16x4.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of four `u16` types"] - struct u16x4([u16; 4]); -} diff --git a/crates/core_simd/src/type_u16x8.rs b/crates/core_simd/src/type_u16x8.rs deleted file mode 100644 index 5ba0af151e3f..000000000000 --- a/crates/core_simd/src/type_u16x8.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of eight `u16` types"] - struct u16x8([u16; 8]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u16x8 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u16x8 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_u32x16.rs b/crates/core_simd/src/type_u32x16.rs deleted file mode 100644 index 40e557b2d6c9..000000000000 --- a/crates/core_simd/src/type_u32x16.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `u32` types"] - struct u32x16([u32; 16]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_u32x2.rs b/crates/core_simd/src/type_u32x2.rs deleted file mode 100644 index 001fd31db39c..000000000000 --- a/crates/core_simd/src/type_u32x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `u32` types"] - struct u32x2([u32; 2]); -} diff --git a/crates/core_simd/src/type_u32x4.rs b/crates/core_simd/src/type_u32x4.rs deleted file mode 100644 index 0582b51ead14..000000000000 --- a/crates/core_simd/src/type_u32x4.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of four `u32` types"] - struct u32x4([u32; 4]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u32x4 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u32x4 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_u32x8.rs b/crates/core_simd/src/type_u32x8.rs deleted file mode 100644 index 686833c250c4..000000000000 --- a/crates/core_simd/src/type_u32x8.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of eight `u32` types"] - struct u32x8([u32; 8]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u32x8 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u32x8 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_u64x2.rs b/crates/core_simd/src/type_u64x2.rs deleted file mode 100644 index e3ba3dc03b51..000000000000 --- a/crates/core_simd/src/type_u64x2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `u64` types"] - struct u64x2([u64; 2]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u64x2 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u64x2 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_u64x4.rs b/crates/core_simd/src/type_u64x4.rs deleted file mode 100644 index 005f26012ad5..000000000000 --- a/crates/core_simd/src/type_u64x4.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of four `u64` types"] - struct u64x4([u64; 4]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u64x4 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u64x4 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_u64x8.rs b/crates/core_simd/src/type_u64x8.rs deleted file mode 100644 index fbb41f36e5da..000000000000 --- a/crates/core_simd/src/type_u64x8.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of eight `u64` types"] - struct u64x8([u64; 8]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u64x8 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u64x8 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_u8x16.rs b/crates/core_simd/src/type_u8x16.rs deleted file mode 100644 index a44b74c122b2..000000000000 --- a/crates/core_simd/src/type_u8x16.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of 16 `u8` types"] - struct u8x16([u8; 16]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u8x16 |bidirectional| core::arch::x86::__m128i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u8x16 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_u8x2.rs b/crates/core_simd/src/type_u8x2.rs deleted file mode 100644 index c6162cc73a25..000000000000 --- a/crates/core_simd/src/type_u8x2.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of two `u8` types"] - struct u8x2([u8; 2]); -} diff --git a/crates/core_simd/src/type_u8x32.rs b/crates/core_simd/src/type_u8x32.rs deleted file mode 100644 index 012286846db9..000000000000 --- a/crates/core_simd/src/type_u8x32.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of 32 `u8` types"] - struct u8x32([u8; 32]); -} - -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86::__m256i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_u8x4.rs b/crates/core_simd/src/type_u8x4.rs deleted file mode 100644 index ecdffa119931..000000000000 --- a/crates/core_simd/src/type_u8x4.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of four `u8` types"] - struct u8x4([u8; 4]); -} diff --git a/crates/core_simd/src/type_u8x64.rs b/crates/core_simd/src/type_u8x64.rs deleted file mode 100644 index 6f05f086a64a..000000000000 --- a/crates/core_simd/src/type_u8x64.rs +++ /dev/null @@ -1,12 +0,0 @@ -define_type! { - #[doc = "Vector of 64 `u8` types"] - struct u8x64([u8; 64]); -} - -/* -#[cfg(target_arch = "x86")] -from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86::__m512i } - -#[cfg(target_arch = "x86_64")] -from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/type_u8x8.rs b/crates/core_simd/src/type_u8x8.rs deleted file mode 100644 index 7810ac743f8d..000000000000 --- a/crates/core_simd/src/type_u8x8.rs +++ /dev/null @@ -1,4 +0,0 @@ -define_type! { - #[doc = "Vector of eight `u8` types"] - struct u8x8([u8; 8]); -} diff --git a/crates/core_simd/src/type_usizex2.rs b/crates/core_simd/src/type_usizex2.rs deleted file mode 100644 index 218d5a1056eb..000000000000 --- a/crates/core_simd/src/type_usizex2.rs +++ /dev/null @@ -1,10 +0,0 @@ -define_type! { - #[doc = "Vector of two `usize` types"] - struct usizex2([usize; 2]); -} - -#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] -from_aligned! { unsafe usizex2 |bidirectional| core::arch::x86::__m128i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -from_aligned! { unsafe usizex2 |bidirectional| core::arch::x86_64::__m128i } diff --git a/crates/core_simd/src/type_usizex4.rs b/crates/core_simd/src/type_usizex4.rs deleted file mode 100644 index 60160ecc217b..000000000000 --- a/crates/core_simd/src/type_usizex4.rs +++ /dev/null @@ -1,16 +0,0 @@ -define_type! { - #[doc = "Vector of four `usize` types"] - struct usizex4([usize; 4]); -} - -#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] -from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86::__m128i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86_64::__m128i } - -#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] -from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86::__m256i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86_64::__m256i } diff --git a/crates/core_simd/src/type_usizex8.rs b/crates/core_simd/src/type_usizex8.rs deleted file mode 100644 index 5f5a445f4308..000000000000 --- a/crates/core_simd/src/type_usizex8.rs +++ /dev/null @@ -1,18 +0,0 @@ -define_type! { - #[doc = "Vector of eight `usize` types"] - struct usizex8([usize; 8]); -} - -#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] -from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86::__m256i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] -from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86_64::__m256i } - -/* -#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] -from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86::__m512i } - -#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] -from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86_64::__m512i } -*/ diff --git a/crates/core_simd/src/vectors_f32.rs b/crates/core_simd/src/vectors_f32.rs new file mode 100644 index 000000000000..fe24ec6b727e --- /dev/null +++ b/crates/core_simd/src/vectors_f32.rs @@ -0,0 +1,39 @@ +define_type! { + #[doc = "Vector of two `f32` values"] + struct f32x2([f32; 2]); +} + +define_type! { + #[doc = "Vector of four `f32` values"] + struct f32x4([f32; 4]); +} + +define_type! { + #[doc = "Vector of eight `f32` values"] + struct f32x8([f32; 8]); +} + +define_type! { + #[doc = "Vector of 16 `f32` values"] + struct f32x16([f32; 16]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe f32x4 |bidirectional| core::arch::x86::__m128 } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe f32x4 |bidirectional| core::arch::x86_64::__m128 } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe f32x8 |bidirectional| core::arch::x86::__m256 } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe f32x8 |bidirectional| core::arch::x86_64::__m256 } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe f32x16 |bidirectional| core::arch::x86::__m512 } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe f32x16 |bidirectional| core::arch::x86_64::__m512 } +*/ diff --git a/crates/core_simd/src/vectors_f64.rs b/crates/core_simd/src/vectors_f64.rs new file mode 100644 index 000000000000..8934cec0517d --- /dev/null +++ b/crates/core_simd/src/vectors_f64.rs @@ -0,0 +1,34 @@ +define_type! { + #[doc = "Vector of two `f64` values"] + struct f64x2([f64; 2]); +} + +define_type! { + #[doc = "Vector of four `f64` values"] + struct f64x4([f64; 4]); +} + +define_type! { + #[doc = "Vector of eight `f64` values"] + struct f64x8([f64; 8]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe f64x2 |bidirectional| core::arch::x86::__m128d } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe f64x2 |bidirectional| core::arch::x86_64::__m128d } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe f64x4 |bidirectional| core::arch::x86::__m256d } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe f64x4 |bidirectional| core::arch::x86_64::__m256d } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe f64x8 |bidirectional| core::arch::x86::__m512d } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe f64x8 |bidirectional| core::arch::x86_64::__m512d } +*/ diff --git a/crates/core_simd/src/vectors_i128.rs b/crates/core_simd/src/vectors_i128.rs new file mode 100644 index 000000000000..1cdd3c91211e --- /dev/null +++ b/crates/core_simd/src/vectors_i128.rs @@ -0,0 +1,23 @@ +define_type! { + #[doc = "Vector of two `i128` values"] + struct i128x2([i128; 2]); +} + +define_type! { + #[doc = "Vector of four `i128` values"] + struct i128x4([i128; 4]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i128x2 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i128x2 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i128x4 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i128x4 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_i16.rs b/crates/core_simd/src/vectors_i16.rs new file mode 100644 index 000000000000..724fe7efd1a4 --- /dev/null +++ b/crates/core_simd/src/vectors_i16.rs @@ -0,0 +1,44 @@ +define_type! { + #[doc = "Vector of two `i16` values"] + struct i16x2([i16; 2]); +} + +define_type! { + #[doc = "Vector of four `i16` values"] + struct i16x4([i16; 4]); +} + +define_type! { + #[doc = "Vector of eight `i16` values"] + struct i16x8([i16; 8]); +} + +define_type! { + #[doc = "Vector of 16 `i16` values"] + struct i16x16([i16; 16]); +} + +define_type! { + #[doc = "Vector of 32 `i16` values"] + struct i16x32([i16; 32]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i16x8 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i16x8 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i16x16 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i16x16 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_i32.rs b/crates/core_simd/src/vectors_i32.rs new file mode 100644 index 000000000000..c3af621ae8a4 --- /dev/null +++ b/crates/core_simd/src/vectors_i32.rs @@ -0,0 +1,39 @@ +define_type! { + #[doc = "Vector of two `i32` values"] + struct i32x2([i32; 2]); +} + +define_type! { + #[doc = "Vector of four `i32` values"] + struct i32x4([i32; 4]); +} + +define_type! { + #[doc = "Vector of eight `i32` values"] + struct i32x8([i32; 8]); +} + +define_type! { + #[doc = "Vector of 16 `i32` values"] + struct i32x16([i32; 16]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i32x4 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i32x4 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i32x8 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i32x8 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_i64.rs b/crates/core_simd/src/vectors_i64.rs new file mode 100644 index 000000000000..8c6c9d940b15 --- /dev/null +++ b/crates/core_simd/src/vectors_i64.rs @@ -0,0 +1,34 @@ +define_type! { + #[doc = "Vector of two `i64` values"] + struct i64x2([i64; 2]); +} + +define_type! { + #[doc = "Vector of four `i64` values"] + struct i64x4([i64; 4]); +} + +define_type! { + #[doc = "Vector of eight `i64` values"] + struct i64x8([i64; 8]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i64x2 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i64x2 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i64x4 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i64x4 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i64x8 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i64x8 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_i8.rs b/crates/core_simd/src/vectors_i8.rs new file mode 100644 index 000000000000..340025972d7b --- /dev/null +++ b/crates/core_simd/src/vectors_i8.rs @@ -0,0 +1,49 @@ +define_type! { + #[doc = "Vector of two `i8` values"] + struct i8x2([i8; 2]); +} + +define_type! { + #[doc = "Vector of four `i8` values"] + struct i8x4([i8; 4]); +} + +define_type! { + #[doc = "Vector of eight `i8` values"] + struct i8x8([i8; 8]); +} + +define_type! { + #[doc = "Vector of 16 `i8` values"] + struct i8x16([i8; 16]); +} + +define_type! { + #[doc = "Vector of 32 `i8` values"] + struct i8x32([i8; 32]); +} + +define_type! { + #[doc = "Vector of 64 `i8` values"] + struct i8x64([i8; 64]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i8x16 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i8x16 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe i8x32 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe i8x32 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_isize.rs b/crates/core_simd/src/vectors_isize.rs new file mode 100644 index 000000000000..60f4aad2066a --- /dev/null +++ b/crates/core_simd/src/vectors_isize.rs @@ -0,0 +1,46 @@ +define_type! { + #[doc = "Vector of two `isize` values"] + struct isizex2([isize; 2]); +} + +define_type! { + #[doc = "Vector of four `isize` values"] + struct isizex4([isize; 4]); +} + +define_type! { + #[doc = "Vector of eight `isize` values"] + struct isizex8([isize; 8]); +} + +#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] +from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86::__m128i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] +from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86::__m256i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86_64::__m256i } + +#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] +from_aligned! { unsafe isizex2 |bidirectional| core::arch::x86::__m128i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +from_aligned! { unsafe isizex2 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] +from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86::__m256i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +from_aligned! { unsafe isizex4 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] +from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86::__m512i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +from_aligned! { unsafe isizex8 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_u128.rs b/crates/core_simd/src/vectors_u128.rs new file mode 100644 index 000000000000..01a1a309ffa1 --- /dev/null +++ b/crates/core_simd/src/vectors_u128.rs @@ -0,0 +1,23 @@ +define_type! { + #[doc = "Vector of two `u128` values"] + struct u128x2([u128; 2]); +} + +define_type! { + #[doc = "Vector of four `u128` values"] + struct u128x4([u128; 4]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u128x2 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u128x2 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u128x4 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u128x4 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_u16.rs b/crates/core_simd/src/vectors_u16.rs new file mode 100644 index 000000000000..00ae479c6db2 --- /dev/null +++ b/crates/core_simd/src/vectors_u16.rs @@ -0,0 +1,44 @@ +define_type! { + #[doc = "Vector of two `u16` values"] + struct u16x2([u16; 2]); +} + +define_type! { + #[doc = "Vector of four `u16` values"] + struct u16x4([u16; 4]); +} + +define_type! { + #[doc = "Vector of eight `u16` values"] + struct u16x8([u16; 8]); +} + +define_type! { + #[doc = "Vector of 16 `u16` values"] + struct u16x16([u16; 16]); +} + +define_type! { + #[doc = "Vector of 32 `u16` values"] + struct u16x32([u16; 32]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u16x8 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u16x8 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u16x16 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u16x16 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u16x32 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u16x32 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_u32.rs b/crates/core_simd/src/vectors_u32.rs new file mode 100644 index 000000000000..c45db3634c48 --- /dev/null +++ b/crates/core_simd/src/vectors_u32.rs @@ -0,0 +1,39 @@ +define_type! { + #[doc = "Vector of two `u32` values"] + struct u32x2([u32; 2]); +} + +define_type! { + #[doc = "Vector of four `u32` values"] + struct u32x4([u32; 4]); +} + +define_type! { + #[doc = "Vector of eight `u32` values"] + struct u32x8([u32; 8]); +} + +define_type! { + #[doc = "Vector of 16 `u32` values"] + struct u32x16([u32; 16]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u32x4 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u32x4 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u32x8 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u32x8 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u32x16 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_u64.rs b/crates/core_simd/src/vectors_u64.rs new file mode 100644 index 000000000000..4c8b95177f55 --- /dev/null +++ b/crates/core_simd/src/vectors_u64.rs @@ -0,0 +1,34 @@ +define_type! { + #[doc = "Vector of two `u64` values"] + struct u64x2([u64; 2]); +} + +define_type! { + #[doc = "Vector of four `u64` values"] + struct u64x4([u64; 4]); +} + +define_type! { + #[doc = "Vector of eight `u64` values"] + struct u64x8([u64; 8]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u64x2 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u64x2 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u64x4 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u64x4 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u64x8 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u64x8 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_u8.rs b/crates/core_simd/src/vectors_u8.rs new file mode 100644 index 000000000000..d3f0893154ba --- /dev/null +++ b/crates/core_simd/src/vectors_u8.rs @@ -0,0 +1,49 @@ +define_type! { + #[doc = "Vector of two `u8` values"] + struct u8x2([u8; 2]); +} + +define_type! { + #[doc = "Vector of four `u8` values"] + struct u8x4([u8; 4]); +} + +define_type! { + #[doc = "Vector of eight `u8` values"] + struct u8x8([u8; 8]); +} + +define_type! { + #[doc = "Vector of 16 `u8` values"] + struct u8x16([u8; 16]); +} + +define_type! { + #[doc = "Vector of 32 `u8` values"] + struct u8x32([u8; 32]); +} + +define_type! { + #[doc = "Vector of 64 `u8` values"] + struct u8x64([u8; 64]); +} + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u8x16 |bidirectional| core::arch::x86::__m128i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u8x16 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86::__m256i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u8x32 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(target_arch = "x86")] +from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86::__m512i } + +#[cfg(target_arch = "x86_64")] +from_aligned! { unsafe u8x64 |bidirectional| core::arch::x86_64::__m512i } +*/ diff --git a/crates/core_simd/src/vectors_usize.rs b/crates/core_simd/src/vectors_usize.rs new file mode 100644 index 000000000000..c997e7cd4e3d --- /dev/null +++ b/crates/core_simd/src/vectors_usize.rs @@ -0,0 +1,46 @@ +define_type! { + #[doc = "Vector of two `usize` values"] + struct usizex2([usize; 2]); +} + +define_type! { + #[doc = "Vector of four `usize` values"] + struct usizex4([usize; 4]); +} + +define_type! { + #[doc = "Vector of eight `usize` values"] + struct usizex8([usize; 8]); +} + +#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] +from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86::__m128i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(all(target_arch = "x86", target_pointer_width = "32"))] +from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86::__m256i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86_64::__m256i } + +#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] +from_aligned! { unsafe usizex2 |bidirectional| core::arch::x86::__m128i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +from_aligned! { unsafe usizex2 |bidirectional| core::arch::x86_64::__m128i } + +#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] +from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86::__m256i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +from_aligned! { unsafe usizex4 |bidirectional| core::arch::x86_64::__m256i } + +/* +#[cfg(all(target_arch = "x86", target_pointer_width = "64"))] +from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86::__m512i } + +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +from_aligned! { unsafe usizex8 |bidirectional| core::arch::x86_64::__m512i } +*/