diff --git a/crates/core_arch/src/acle/dsp.rs b/crates/core_arch/src/acle/dsp.rs index 4029e7aaa3..31817ea870 100644 --- a/crates/core_arch/src/acle/dsp.rs +++ b/crates/core_arch/src/acle/dsp.rs @@ -1,7 +1,6 @@ //! # References: //! //! - Section 8.3 "16-bit multiplications" -//! - Section 8.4 "Saturating intrinsics" //! //! Intrinsics that could live here: //! @@ -11,8 +10,6 @@ //! - __smultt //! - __smulwb //! - __smulwt -//! - __ssat -//! - __usat //! - __qadd //! - __qsub //! - __qdbl diff --git a/crates/core_arch/src/acle/mod.rs b/crates/core_arch/src/acle/mod.rs index d173246511..f1be11b27b 100644 --- a/crates/core_arch/src/acle/mod.rs +++ b/crates/core_arch/src/acle/mod.rs @@ -79,6 +79,19 @@ mod dsp; ))] pub use self::dsp::*; +// Supported arches: 6, 7-M. See Section 10.1 of ACLE (e.g. SSAT) +#[cfg(all( + not(target_arch = "aarch64"), + target_feature = "v6", +))] +mod sat; + +#[cfg(all( + not(target_arch = "aarch64"), + target_feature = "v6", +))] +pub use self::sat::*; + // Deprecated in ACLE 2.0 for the A profile but fully supported on the M and R profiles, says // Section 5.4.9 of ACLE. We'll expose these for the A profile even if deprecated #[cfg(all( diff --git a/crates/core_arch/src/acle/sat.rs b/crates/core_arch/src/acle/sat.rs new file mode 100644 index 0000000000..38c98d7342 --- /dev/null +++ b/crates/core_arch/src/acle/sat.rs @@ -0,0 +1,8 @@ +//! # References: +//! +//! - Section 8.4 "Saturating intrinsics" +//! +//! Intrinsics that could live here: +//! +//! - __ssat +//! - __usat