use crate::register::PackedFloatRegister;
use crate::register::array::ArrayRegister;
use super::half16::U16x4Wasm;
use super::{F32x4Wasm, U16x8Wasm};
type F32x4 = F32x4Wasm;
type F32x8 = ArrayRegister<F32x4Wasm, 2>;
type F32x16 = ArrayRegister<F32x4Wasm, 4>;
macro_rules! impl_packed_f16 {
($u16:ty, $f32:ty) => {
impl PackedFloatRegister<crate::element::float::spec::Fp16, $f32> for $u16 {}
impl PackedFloatRegister<crate::element::float::spec::Fp16Fast, $f32> for $u16 {}
impl PackedFloatRegister<crate::element::float::spec::Bf16, $f32> for $u16 {}
};
}
impl_packed_f16!(U16x4Wasm, F32x4);
impl_packed_f16!(U16x8Wasm, F32x8);
impl_packed_f16!(ArrayRegister<U16x8Wasm, 2>, F32x16);