]>
git.proxmox.com Git - rustc.git/blob - src/stdsimd/crates/core_arch/src/arm/mod.rs
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.
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 #![allow(non_camel_case_types)]
12 pub use self::armclang
::*;
14 #[cfg(any(target_feature = "mclass", dox))]
16 #[cfg(any(target_feature = "mclass", dox))]
17 pub use self::cmsis
::*;
22 #[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
24 #[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
27 #[cfg(any(all(target_feature = "v7", not(target_feature = "mclass")), dox))]
29 #[cfg(any(all(target_feature = "v7", not(target_feature = "mclass")), dox))]
32 // NEON is supported on AArch64, and on ARM when built with the v7 and neon
33 // features. Building ARM without neon produces incorrect codegen.
35 target_arch
= "aarch64",
36 all(target_feature
= "v7", target_feature
= "neon"),
41 target_arch
= "aarch64",
42 all(target_feature
= "v7", target_feature
= "neon"),
45 pub use self::neon
::*;
48 use stdsimd_test
::assert_instr
;
50 /// Generates the trap instruction `UDF`
51 #[cfg(target_arch = "arm")]
52 #[cfg_attr(test, assert_instr(udf))]
54 pub unsafe fn udf() -> ! {