|
Lines 28-55
macro_rules! impl_fallback {
Link Here
|
| 28 |
macro_rules! impl_shuffle1_dyn { |
28 |
macro_rules! impl_shuffle1_dyn { |
| 29 |
(u8x8) => { |
29 |
(u8x8) => { |
| 30 |
cfg_if! { |
30 |
cfg_if! { |
| 31 |
if #[cfg(all(any(target_arch = "x86", target_arch = "x86_64"), |
31 |
if #[cfg(all( |
| 32 |
target_feature = "ssse3"))] { |
|
|
| 33 |
impl Shuffle1Dyn for u8x8 { |
| 34 |
type Indices = Self; |
| 35 |
#[inline] |
| 36 |
fn shuffle1_dyn(self, indices: Self::Indices) -> Self { |
| 37 |
#[cfg(target_arch = "x86")] |
| 38 |
use crate::arch::x86::_mm_shuffle_pi8; |
| 39 |
#[cfg(target_arch = "x86_64")] |
| 40 |
use crate::arch::x86_64::_mm_shuffle_pi8; |
| 41 |
|
| 42 |
unsafe { |
| 43 |
crate::mem::transmute( |
| 44 |
_mm_shuffle_pi8( |
| 45 |
crate::mem::transmute(self.0), |
| 46 |
crate::mem::transmute(indices.0) |
| 47 |
) |
| 48 |
) |
| 49 |
} |
| 50 |
} |
| 51 |
} |
| 52 |
} else if #[cfg(all( |
| 53 |
any( |
32 |
any( |
| 54 |
all(target_aarch = "aarch64", target_feature = "neon"), |
33 |
all(target_aarch = "aarch64", target_feature = "neon"), |
| 55 |
all(target_aarch = "arm", target_feature = "v7", |
34 |
all(target_aarch = "arm", target_feature = "v7", |