Skip to content

Commit

Permalink
Merge pull request #348 from taiki-e/arm-big
Browse files Browse the repository at this point in the history
Fix build error on big endian arm/aarch64
  • Loading branch information
calebzulawski authored Jun 1, 2023
2 parents 5161f2e + 1af32f0 commit d975d8f
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions crates/core_simd/src/swizzle_dyn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ where
#[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;
Expand All @@ -29,13 +29,24 @@ where
// 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),
Expand Down

0 comments on commit d975d8f

Please sign in to comment.