summaryrefslogtreecommitdiffstats
path: root/vendor/packed_simd_2/src/api/into_bits/arch_specific.rs
diff options
context:
space:
mode:
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.rs272
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
);
////////////////////////////////////////////////////////////////////////////////