Merge pull request #348 from taiki-e/arm-big
Fix build error on big endian arm/aarch64
This commit is contained in:
commit
d975d8fad4
@ -16,9 +16,9 @@ impl<const N: usize> Simd<u8, N>
|
||||
#[inline]
|
||||
pub fn swizzle_dyn(self, idxs: Simd<u8, N>) -> Self {
|
||||
#![allow(unused_imports, unused_unsafe)]
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
#[cfg(all(target_arch = "aarch64", target_endian = "little"))]
|
||||
use core::arch::aarch64::{uint8x8_t, vqtbl1q_u8, vtbl1_u8};
|
||||
#[cfg(all(target_arch = "arm", target_feature = "v7"))]
|
||||
#[cfg(all(target_arch = "arm", target_feature = "v7", target_endian = "little"))]
|
||||
use core::arch::arm::{uint8x8_t, vtbl1_u8};
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
use core::arch::wasm32 as wasm;
|
||||
@ -29,13 +29,24 @@ pub fn swizzle_dyn(self, idxs: Simd<u8, N>) -> Self {
|
||||
// SAFETY: Intrinsics covered by cfg
|
||||
unsafe {
|
||||
match N {
|
||||
#[cfg(target_feature = "neon")]
|
||||
#[cfg(all(
|
||||
any(
|
||||
target_arch = "aarch64",
|
||||
all(target_arch = "arm", target_feature = "v7")
|
||||
),
|
||||
target_feature = "neon",
|
||||
target_endian = "little"
|
||||
))]
|
||||
8 => transize(vtbl1_u8, self, idxs),
|
||||
#[cfg(target_feature = "ssse3")]
|
||||
16 => transize(x86::_mm_shuffle_epi8, self, idxs),
|
||||
#[cfg(target_feature = "simd128")]
|
||||
16 => transize(wasm::i8x16_swizzle, self, idxs),
|
||||
#[cfg(all(target_arch = "aarch64", target_feature = "neon"))]
|
||||
#[cfg(all(
|
||||
target_arch = "aarch64",
|
||||
target_feature = "neon",
|
||||
target_endian = "little"
|
||||
))]
|
||||
16 => transize(vqtbl1q_u8, self, idxs),
|
||||
#[cfg(all(target_feature = "avx2", not(target_feature = "avx512vbmi")))]
|
||||
32 => transize_raw(avx2_pshufb, self, idxs),
|
||||
|
Loading…
Reference in New Issue
Block a user