Skip to main content

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

1//! AArch64 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#![cfg_attr(
10    all(target_arch = "aarch64", target_abi = "softfloat"),
11    // Just allow the warning: anyone soundly using the intrinsics has to enable
12    // the target feature, and that will generate a warning for them.
13    allow(aarch64_softfloat_neon)
14)]
15
16mod mte;
17#[unstable(feature = "stdarch_aarch64_mte", issue = "129010")]
18pub use self::mte::*;
19
20mod rand;
21#[unstable(feature = "stdarch_aarch64_rand", issue = "153514")]
22pub use self::rand::*;
23
24mod neon;
25#[stable(feature = "neon_intrinsics", since = "1.59.0")]
26pub use self::neon::*;
27
28// The rest of `core_arch::aarch64` is available on `arm64ec` but SVE is not supported on `arm64ec`.
29#[cfg(any(target_arch = "aarch64", doc))]
30mod sve;
31#[cfg(any(target_arch = "aarch64", doc))]
32#[unstable(feature = "stdarch_aarch64_sve", issue = "145052")]
33pub use self::sve::*;
34
35// The rest of `core_arch::aarch64` is available on `arm64ec` but SVE is not supported on `arm64ec`.
36#[cfg(any(target_arch = "aarch64", doc))]
37mod sve2;
38#[cfg(any(target_arch = "aarch64", doc))]
39#[unstable(feature = "stdarch_aarch64_sve", issue = "145052")]
40pub use self::sve2::*;
41
42mod prefetch;
43#[unstable(feature = "stdarch_aarch64_prefetch", issue = "117217")]
44pub use self::prefetch::*;
45
46#[stable(feature = "neon_intrinsics", since = "1.59.0")]
47pub use super::arm_shared::*;
48
49#[cfg(test)]
50use stdarch_test::assert_instr;
51
52#[cfg(test)]
53pub(crate) mod test_support;