| //! `FromBits` and `IntoBits` implementations for portable 128-bit wide vectors |
| #[rustfmt::skip] |
| |
| #[allow(unused)] // wasm_bindgen_test |
| use crate::*; |
| |
| impl_from_bits!( |
| i8x16[test_v128]: u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| u8x16[test_v128]: i8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!(m8x16[test_v128]: m16x8, m32x4, m64x2, m128x1); |
| |
| impl_from_bits!( |
| i16x8[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| u16x8[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!(m16x8[test_v128]: m32x4, m64x2, m128x1); |
| |
| impl_from_bits!( |
| i32x4[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| u32x4[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| f32x4[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!(m32x4[test_v128]: m64x2, m128x1); |
| |
| impl_from_bits!( |
| i64x2[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| u64x2[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| f64x2[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| m64x2, |
| i128x1, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!(m64x2[test_v128]: m128x1); |
| |
| impl_from_bits!( |
| i128x1[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| u128x1, |
| m128x1 |
| ); |
| impl_from_bits!( |
| u128x1[test_v128]: i8x16, |
| u8x16, |
| m8x16, |
| i16x8, |
| u16x8, |
| m16x8, |
| i32x4, |
| u32x4, |
| f32x4, |
| m32x4, |
| i64x2, |
| u64x2, |
| f64x2, |
| m64x2, |
| i128x1, |
| m128x1 |
| ); |
| // note: m128x1 cannot be constructed from all the other masks bit patterns in |
| // here |