core\stdarch\crates\core_arch\src\arm/
mod.rs

1//! ARM intrinsics.
2//!
3//! The reference for NEON is [ARM's NEON Intrinsics Reference][arm_ref]. The
4//! [ARM's NEON Intrinsics Online Database][arm_dat] is also useful.
5//!
6//! [arm_ref]: http://infocenter.arm.com/help/topic/com.arm.doc.ihi0073a/IHI0073A_arm_neon_intrinsics_ref.pdf
7//! [arm_dat]: https://developer.arm.com/technologies/neon/intrinsics
8
9// Supported arches: 6, 7-M. See Section 10.1 of ACLE (e.g. SSAT)
10#[cfg(any(target_feature = "v6", doc))]
11mod sat;
12
13#[cfg(any(target_feature = "v6", doc))]
14#[unstable(feature = "stdarch_arm_sat", issue = "none")]
15pub use self::sat::*;
16
17// Supported arches: 5TE, 7E-M. See Section 10.1 of ACLE (e.g. QADD)
18// We also include the A profile even though DSP is deprecated on that profile as of ACLE 2.0 (see
19// section 5.4.7)
20// Here we workaround the difference between LLVM's +dsp and ACLE's __ARM_FEATURE_DSP by gating on
21// '+v5te' rather than on '+dsp'
22#[cfg(any(
23    // >= v5TE but excludes v7-M
24    all(target_feature = "v5te", not(target_feature = "mclass")),
25    // v7E-M
26    all(target_feature = "mclass", target_feature = "dsp"),
27    doc,
28))]
29mod dsp;
30
31#[cfg(any(
32    // >= v5TE but excludes v7-M
33    all(target_feature = "v5te", not(target_feature = "mclass")),
34    // v7E-M
35    all(target_feature = "mclass", target_feature = "dsp"),
36    doc,
37))]
38#[unstable(feature = "stdarch_arm_dsp", issue = "117237")]
39pub use self::dsp::*;
40
41// Deprecated in ACLE 2.0 for the A profile but fully supported on the M and R profiles, says
42// Section 5.4.9 of ACLE. We'll expose these for the A profile even if deprecated
43#[cfg(any(
44    // v7-A, v7-R
45    all(target_feature = "v6", not(target_feature = "mclass")),
46    // v7E-M
47    all(target_feature = "mclass", target_feature = "dsp"),
48    doc,
49))]
50mod simd32;
51
52#[cfg(any(
53    // v7-A, v7-R
54    all(target_feature = "v6", not(target_feature = "mclass")),
55    // v7E-M
56    all(target_feature = "mclass", target_feature = "dsp"),
57    doc,
58))]
59#[unstable(feature = "stdarch_arm_dsp", issue = "117237")]
60pub use self::simd32::*;
61
62#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63pub use crate::core_arch::arm_shared::*;
64
65#[cfg(test)]
66use stdarch_test::assert_instr;