blob: 639c09c2c4bdd76d0af8ea6f3eecd66fd70d0648 [file] [log] [blame]
//! `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