diff --git a/crates/core_simd/examples/matrix_inversion.rs b/crates/core_simd/examples/matrix_inversion.rs index 468319325e2..fcee1b96ae1 100644 --- a/crates/core_simd/examples/matrix_inversion.rs +++ b/crates/core_simd/examples/matrix_inversion.rs @@ -2,8 +2,8 @@ // Code ported from the `packed_simd` crate // Run this code with `cargo test --example matrix_inversion` #![feature(array_chunks, portable_simd)] -use core_simd::Which::*; -use core_simd::*; +use core_simd::simd::*; +use Which::*; // Gotta define our own 4x4 matrix since Rust doesn't ship multidim arrays yet :^) #[derive(Copy, Clone, Debug, PartialEq, PartialOrd)] diff --git a/crates/core_simd/src/lib.rs b/crates/core_simd/src/lib.rs index 037779200b8..960a6640083 100644 --- a/crates/core_simd/src/lib.rs +++ b/crates/core_simd/src/lib.rs @@ -1,7 +1,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![feature( const_fn_trait_bound, - const_panic, + decl_macro, platform_intrinsics, repr_simd, simd_ffi, diff --git a/crates/core_simd/src/swizzle.rs b/crates/core_simd/src/swizzle.rs index d4d171d570e..88e7f3b223e 100644 --- a/crates/core_simd/src/swizzle.rs +++ b/crates/core_simd/src/swizzle.rs @@ -1,5 +1,5 @@ use crate::simd::intrinsics; -use crate::{LaneCount, Simd, SimdElement, SupportedLaneCount}; +use crate::simd::{LaneCount, Simd, SimdElement, SupportedLaneCount}; /// Constructs a new vector by selecting values from the lanes of the source vector or vectors to use. /// @@ -12,7 +12,8 @@ use crate::{LaneCount, Simd, SimdElement, SupportedLaneCount}; /// ## One source vector /// ``` /// # #![feature(portable_simd)] -/// # use core_simd::{Simd, simd_swizzle}; +/// # #[cfg(feature = "std")] use core_simd::{Simd, simd_swizzle}; +/// # #[cfg(not(feature = "std"))] use core::simd::{Simd, simd_swizzle}; /// let v = Simd::::from_array([0., 1., 2., 3.]); /// /// // Keeping the same size @@ -27,7 +28,8 @@ use crate::{LaneCount, Simd, SimdElement, SupportedLaneCount}; /// ## Two source vectors /// ``` /// # #![feature(portable_simd)] -/// # use core_simd::{Simd, simd_swizzle, Which}; +/// # #[cfg(feature = "std")] use core_simd::{Simd, simd_swizzle, Which}; +/// # #[cfg(not(feature = "std"))] use core::simd::{Simd, simd_swizzle, Which}; /// use Which::*; /// let a = Simd::::from_array([0., 1., 2., 3.]); /// let b = Simd::::from_array([4., 5., 6., 7.]); @@ -40,11 +42,11 @@ use crate::{LaneCount, Simd, SimdElement, SupportedLaneCount}; /// let r = simd_swizzle!(a, b, [First(0), Second(0)]); /// assert_eq!(r.to_array(), [0., 4.]); /// ``` -#[macro_export] -macro_rules! simd_swizzle { - { +#[allow(unused_macros)] +pub macro simd_swizzle { + ( $vector:expr, $index:expr $(,)? - } => { + ) => { { use $crate::simd::Swizzle; struct Impl; @@ -53,10 +55,10 @@ macro_rules! simd_swizzle { } Impl::swizzle($vector) } - }; - { + }, + ( $first:expr, $second:expr, $index:expr $(,)? - } => { + ) => { { use $crate::simd::{Which, Swizzle2}; struct Impl; @@ -262,7 +264,8 @@ where /// /// ``` /// #![feature(portable_simd)] - /// # use core_simd::Simd; + /// # #[cfg(feature = "std")] use core_simd::Simd; + /// # #[cfg(not(feature = "std"))] use core::simd::Simd; /// let a = Simd::from_array([0, 1, 2, 3]); /// let b = Simd::from_array([4, 5, 6, 7]); /// let (x, y) = a.interleave(b); @@ -324,7 +327,8 @@ where /// /// ``` /// #![feature(portable_simd)] - /// # use core_simd::Simd; + /// # #[cfg(feature = "std")] use core_simd::Simd; + /// # #[cfg(not(feature = "std"))] use core::simd::Simd; /// let a = Simd::from_array([0, 4, 1, 5]); /// let b = Simd::from_array([2, 6, 3, 7]); /// let (x, y) = a.deinterleave(b);