diff options
| author | Jubilee Young <workingjubilee@gmail.com> | 2021-10-21 18:20:06 -0700 |
|---|---|---|
| committer | Jubilee Young <workingjubilee@gmail.com> | 2021-10-21 18:20:06 -0700 |
| commit | ab8eec7cbabdefdab319d90cc8b0eca61fc7f3dd (patch) | |
| tree | 846ce8d3671ea56649f341c2b70e435cc1c33194 | |
| parent | 5b4282edcd01089df26e2e2c268c4dc1c361dd91 (diff) | |
| download | rust-ab8eec7cbabdefdab319d90cc8b0eca61fc7f3dd.tar.gz rust-ab8eec7cbabdefdab319d90cc8b0eca61fc7f3dd.zip | |
Fixup import pathing for core
This changes simd_swizzle! to a decl_macro to give it a path, so it can be imported using a path and not the crate root. It also adds various uses that were missed and adjusts paths.
| -rw-r--r-- | crates/core_simd/examples/matrix_inversion.rs | 4 | ||||
| -rw-r--r-- | crates/core_simd/src/lib.rs | 2 | ||||
| -rw-r--r-- | crates/core_simd/src/swizzle.rs | 28 |
3 files changed, 19 insertions, 15 deletions
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::<f32, 4>::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::<f32, 4>::from_array([0., 1., 2., 3.]); /// let b = Simd::<f32, 4>::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); |
