diff options
Diffstat (limited to 'vendor/packed_simd_2/src/api/into_bits/arch_specific.rs')
-rw-r--r-- | vendor/packed_simd_2/src/api/into_bits/arch_specific.rs | 272 |
1 files changed, 214 insertions, 58 deletions
diff --git a/vendor/packed_simd_2/src/api/into_bits/arch_specific.rs b/vendor/packed_simd_2/src/api/into_bits/arch_specific.rs index fee614005..bfac91557 100644 --- a/vendor/packed_simd_2/src/api/into_bits/arch_specific.rs +++ b/vendor/packed_simd_2/src/api/into_bits/arch_specific.rs @@ -84,15 +84,48 @@ macro_rules! impl_arch { // 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 + [ + 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 ); //////////////////////////////////////////////////////////////////////////////// @@ -108,67 +141,169 @@ impl_arch!( // 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 + [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, + [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 + 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, + [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 + 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, + [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 + 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, + [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 + m8x16, + m16x8, + m32x4, + m64x2 | test: test_v128 ); //////////////////////////////////////////////////////////////////////////////// @@ -176,13 +311,34 @@ impl_arch!( 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 + [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 ); //////////////////////////////////////////////////////////////////////////////// |