core\portable-simd\crates\core_simd\src\vendor/
arm.rs

1#![allow(unused)]
2use crate::simd::*;
3
4#[cfg(target_arch = "arm")]
5use core::arch::arm::*;
6
7#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
8use core::arch::aarch64::*;
9
10#[cfg(all(
11    any(
12        target_arch = "aarch64",
13        target_arch = "arm64ec",
14        all(target_arch = "arm", target_feature = "v7"),
15    ),
16    target_endian = "little"
17))]
18mod neon {
19    use super::*;
20
21    from_transmute! { unsafe f32x2 => float32x2_t }
22    from_transmute! { unsafe f32x4 => float32x4_t }
23
24    from_transmute! { unsafe u8x8 => uint8x8_t }
25    from_transmute! { unsafe u8x16 => uint8x16_t }
26    from_transmute! { unsafe i8x8 => int8x8_t }
27    from_transmute! { unsafe i8x16 => int8x16_t }
28    from_transmute! { unsafe u8x8 => poly8x8_t }
29    from_transmute! { unsafe u8x16 => poly8x16_t }
30
31    from_transmute! { unsafe u16x4 => uint16x4_t }
32    from_transmute! { unsafe u16x8 => uint16x8_t }
33    from_transmute! { unsafe i16x4 => int16x4_t }
34    from_transmute! { unsafe i16x8 => int16x8_t }
35    from_transmute! { unsafe u16x4 => poly16x4_t }
36    from_transmute! { unsafe u16x8 => poly16x8_t }
37
38    from_transmute! { unsafe u32x2 => uint32x2_t }
39    from_transmute! { unsafe u32x4 => uint32x4_t }
40    from_transmute! { unsafe i32x2 => int32x2_t }
41    from_transmute! { unsafe i32x4 => int32x4_t }
42
43    from_transmute! { unsafe Simd<u64, 1> => uint64x1_t }
44    from_transmute! { unsafe u64x2 => uint64x2_t }
45    from_transmute! { unsafe Simd<i64, 1> => int64x1_t }
46    from_transmute! { unsafe i64x2 => int64x2_t }
47    from_transmute! { unsafe Simd<u64, 1> => poly64x1_t }
48    from_transmute! { unsafe u64x2 => poly64x2_t }
49}
50
51#[cfg(any(
52    all(target_feature = "v6", not(target_feature = "mclass")),
53    all(target_feature = "mclass", target_feature = "dsp"),
54))]
55mod simd32 {
56    use super::*;
57
58    from_transmute! { unsafe Simd<u8, 4> => uint8x4_t }
59    from_transmute! { unsafe Simd<i8, 4> => int8x4_t }
60    from_transmute! { unsafe Simd<u16, 2> => uint16x2_t }
61    from_transmute! { unsafe Simd<i16, 2> => int16x2_t }
62}
63
64#[cfg(all(
65    any(target_arch = "aarch64", target_arch = "arm64ec"),
66    target_endian = "little"
67))]
68mod aarch64 {
69    use super::neon::*;
70    use super::*;
71
72    from_transmute! { unsafe Simd<f64, 1> => float64x1_t }
73    from_transmute! { unsafe f64x2 => float64x2_t }
74}