#![allow(dead_code)]
use core::arch::wasm32::*;
#[inline(always)]
pub(crate) unsafe fn load_le_u16x8(ptr: *const u8) -> v128 {
let v = unsafe { v128_load(ptr.cast()) };
#[cfg(target_endian = "big")]
let v = {
let mask = i8x16(1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
u8x16_swizzle(v, mask)
};
v
}
#[inline(always)]
pub(crate) unsafe fn load_be_u16x8(ptr: *const u8) -> v128 {
let v = unsafe { v128_load(ptr.cast()) };
#[cfg(target_endian = "little")]
let v = {
let mask = i8x16(1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14);
u8x16_swizzle(v, mask)
};
v
}
#[inline(always)]
pub(crate) unsafe fn load_endian_u16x8<const BE: bool>(ptr: *const u8) -> v128 {
if BE {
unsafe { load_be_u16x8(ptr) }
} else {
unsafe { load_le_u16x8(ptr) }
}
}
#[inline(always)]
pub(crate) unsafe fn load_le_u32x4(ptr: *const u8) -> v128 {
let v = unsafe { v128_load(ptr.cast()) };
#[cfg(target_endian = "big")]
let v = {
let mask = i8x16(3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
u8x16_swizzle(v, mask)
};
v
}
#[inline(always)]
pub(crate) unsafe fn load_be_u32x4(ptr: *const u8) -> v128 {
let v = unsafe { v128_load(ptr.cast()) };
#[cfg(target_endian = "little")]
let v = {
let mask = i8x16(3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12);
u8x16_swizzle(v, mask)
};
v
}
#[inline(always)]
pub(crate) unsafe fn load_endian_u32x4<const BE: bool>(ptr: *const u8) -> v128 {
if BE {
unsafe { load_be_u32x4(ptr) }
} else {
unsafe { load_le_u32x4(ptr) }
}
}