diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs')
-rw-r--r-- | third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs | 345 |
1 files changed, 0 insertions, 345 deletions
diff --git a/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs b/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs deleted file mode 100644 index bfac915576..0000000000 --- a/third_party/rust/packed_simd/src/api/into_bits/arch_specific.rs +++ /dev/null @@ -1,345 +0,0 @@ -//! `FromBits` and `IntoBits` between portable vector types and the -//! architecture-specific vector types. -#[rustfmt::skip] - -// FIXME: MIPS FromBits/IntoBits - -#[allow(unused)] -use crate::*; - -/// This macro implements FromBits for the portable and the architecture -/// specific vector types. -/// -/// The "leaf" case is at the bottom, and the most generic case is at the top. -/// The generic case is split into smaller cases recursively. -macro_rules! impl_arch { - ([$arch_head_i:ident[$arch_head_tt:tt]: $($arch_head_ty:ident),*], - $([$arch_tail_i:ident[$arch_tail_tt:tt]: $($arch_tail_ty:ident),*]),* | - from: $($from_ty:ident),* | into: $($into_ty:ident),* | - test: $test_tt:tt) => { - impl_arch!( - [$arch_head_i[$arch_head_tt]: $($arch_head_ty),*] | - from: $($from_ty),* | - into: $($into_ty),* | - test: $test_tt - ); - impl_arch!( - $([$arch_tail_i[$arch_tail_tt]: $($arch_tail_ty),*]),* | - from: $($from_ty),* | - into: $($into_ty),* | - test: $test_tt - ); - }; - ([$arch:ident[$arch_tt:tt]: $($arch_ty:ident),*] | - from: $($from_ty:ident),* | into: $($into_ty:ident),* | - test: $test_tt:tt) => { - // note: if target is "arm", "+v7,+neon" must be enabled - // and the std library must be recompiled with them - #[cfg(any( - not(target_arch = "arm"), - all(target_feature = "v7", target_feature = "neon", - any(feature = "core_arch", libcore_neon))) - )] - // note: if target is "powerpc", "altivec" must be enabled - // and the std library must be recompiled with it - #[cfg(any( - not(target_arch = "powerpc"), - all(target_feature = "altivec", feature = "core_arch"), - ))] - #[cfg(target_arch = $arch_tt)] - use crate::arch::$arch::{ - $($arch_ty),* - }; - - #[cfg(any( - not(target_arch = "arm"), - all(target_feature = "v7", target_feature = "neon", - any(feature = "core_arch", libcore_neon))) - )] - #[cfg(any( - not(target_arch = "powerpc"), - all(target_feature = "altivec", feature = "core_arch"), - ))] - #[cfg(target_arch = $arch_tt)] - impl_arch!($($arch_ty),* | $($from_ty),* | $($into_ty),* | - test: $test_tt); - }; - ($arch_head:ident, $($arch_tail:ident),* | $($from_ty:ident),* - | $($into_ty:ident),* | test: $test_tt:tt) => { - impl_arch!($arch_head | $($from_ty),* | $($into_ty),* | - test: $test_tt); - impl_arch!($($arch_tail),* | $($from_ty),* | $($into_ty),* | - test: $test_tt); - }; - ($arch_head:ident | $($from_ty:ident),* | $($into_ty:ident),* | - test: $test_tt:tt) => { - impl_from_bits!($arch_head[$test_tt]: $($from_ty),*); - impl_into_bits!($arch_head[$test_tt]: $($into_ty),*); - }; -} - -//////////////////////////////////////////////////////////////////////////////// -// Implementations for the 64-bit wide vector types: - -// FIXME: 64-bit single element types -// FIXME: arm/aarch float16x4_t missing -impl_arch!( - [ - arm["arm"]: int8x8_t, - uint8x8_t, - poly8x8_t, - int16x4_t, - uint16x4_t, - poly16x4_t, - int32x2_t, - uint32x2_t, - float32x2_t, - int64x1_t, - uint64x1_t - ], - [ - aarch64["aarch64"]: int8x8_t, - uint8x8_t, - poly8x8_t, - int16x4_t, - uint16x4_t, - poly16x4_t, - int32x2_t, - uint32x2_t, - float32x2_t, - int64x1_t, - uint64x1_t, - float64x1_t - ] | from: i8x8, - u8x8, - m8x8, - i16x4, - u16x4, - m16x4, - i32x2, - u32x2, - f32x2, - m32x2 | into: i8x8, - u8x8, - i16x4, - u16x4, - i32x2, - u32x2, - f32x2 | test: test_v64 -); - -//////////////////////////////////////////////////////////////////////////////// -// Implementations for the 128-bit wide vector types: - -// FIXME: arm/aarch float16x8_t missing -// FIXME: ppc vector_pixel missing -// FIXME: ppc64 vector_Float16 missing -// FIXME: ppc64 vector_signed_long_long missing -// FIXME: ppc64 vector_unsigned_long_long missing -// FIXME: ppc64 vector_bool_long_long missing -// FIXME: ppc64 vector_signed___int128 missing -// FIXME: ppc64 vector_unsigned___int128 missing -impl_arch!( - [x86["x86"]: __m128, __m128i, __m128d], - [x86_64["x86_64"]: __m128, __m128i, __m128d], - [ - arm["arm"]: int8x16_t, - uint8x16_t, - poly8x16_t, - int16x8_t, - uint16x8_t, - poly16x8_t, - int32x4_t, - uint32x4_t, - float32x4_t, - int64x2_t, - uint64x2_t - ], - [ - aarch64["aarch64"]: int8x16_t, - uint8x16_t, - poly8x16_t, - int16x8_t, - uint16x8_t, - poly16x8_t, - int32x4_t, - uint32x4_t, - float32x4_t, - int64x2_t, - uint64x2_t, - float64x2_t - ], - [ - powerpc["powerpc"]: vector_signed_char, - vector_unsigned_char, - vector_signed_short, - vector_unsigned_short, - vector_signed_int, - vector_unsigned_int, - vector_float - ], - [ - powerpc64["powerpc64"]: vector_signed_char, - vector_unsigned_char, - vector_signed_short, - vector_unsigned_short, - vector_signed_int, - vector_unsigned_int, - vector_float, - vector_signed_long, - vector_unsigned_long, - vector_double - ] | from: i8x16, - u8x16, - m8x16, - i16x8, - u16x8, - m16x8, - i32x4, - u32x4, - f32x4, - m32x4, - i64x2, - u64x2, - f64x2, - m64x2, - i128x1, - u128x1, - m128x1 | into: i8x16, - u8x16, - i16x8, - u16x8, - i32x4, - u32x4, - f32x4, - i64x2, - u64x2, - f64x2, - i128x1, - u128x1 | test: test_v128 -); - -impl_arch!( - [powerpc["powerpc"]: vector_bool_char], - [powerpc64["powerpc64"]: vector_bool_char] | from: m8x16, - m16x8, - m32x4, - m64x2, - m128x1 | into: i8x16, - u8x16, - i16x8, - u16x8, - i32x4, - u32x4, - f32x4, - i64x2, - u64x2, - f64x2, - i128x1, - u128x1, - // Masks: - m8x16 | test: test_v128 -); - -impl_arch!( - [powerpc["powerpc"]: vector_bool_short], - [powerpc64["powerpc64"]: vector_bool_short] | from: m16x8, - m32x4, - m64x2, - m128x1 | into: i8x16, - u8x16, - i16x8, - u16x8, - i32x4, - u32x4, - f32x4, - i64x2, - u64x2, - f64x2, - i128x1, - u128x1, - // Masks: - m8x16, - m16x8 | test: test_v128 -); - -impl_arch!( - [powerpc["powerpc"]: vector_bool_int], - [powerpc64["powerpc64"]: vector_bool_int] | from: m32x4, - m64x2, - m128x1 | into: i8x16, - u8x16, - i16x8, - u16x8, - i32x4, - u32x4, - f32x4, - i64x2, - u64x2, - f64x2, - i128x1, - u128x1, - // Masks: - m8x16, - m16x8, - m32x4 | test: test_v128 -); - -impl_arch!( - [powerpc64["powerpc64"]: vector_bool_long] | from: m64x2, - m128x1 | into: i8x16, - u8x16, - i16x8, - u16x8, - i32x4, - u32x4, - f32x4, - i64x2, - u64x2, - f64x2, - i128x1, - u128x1, - // Masks: - m8x16, - m16x8, - m32x4, - m64x2 | test: test_v128 -); - -//////////////////////////////////////////////////////////////////////////////// -// Implementations for the 256-bit wide vector types - -impl_arch!( - [x86["x86"]: __m256, __m256i, __m256d], - [x86_64["x86_64"]: __m256, __m256i, __m256d] | from: i8x32, - u8x32, - m8x32, - i16x16, - u16x16, - m16x16, - i32x8, - u32x8, - f32x8, - m32x8, - i64x4, - u64x4, - f64x4, - m64x4, - i128x2, - u128x2, - m128x2 | into: i8x32, - u8x32, - i16x16, - u16x16, - i32x8, - u32x8, - f32x8, - i64x4, - u64x4, - f64x4, - i128x2, - u128x2 | test: test_v256 -); - -//////////////////////////////////////////////////////////////////////////////// -// FIXME: Implementations for the 512-bit wide vector types |