diff options
Diffstat (limited to 'third_party/rust/packed_simd/src/api/from/from_vector.rs')
-rw-r--r-- | third_party/rust/packed_simd/src/api/from/from_vector.rs | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/third_party/rust/packed_simd/src/api/from/from_vector.rs b/third_party/rust/packed_simd/src/api/from/from_vector.rs deleted file mode 100644 index 55f70016d5..0000000000 --- a/third_party/rust/packed_simd/src/api/from/from_vector.rs +++ /dev/null @@ -1,67 +0,0 @@ -//! Implements `From` and `Into` for vector types. - -macro_rules! impl_from_vector { - ([$elem_ty:ident; $elem_count:expr]: $id:ident | $test_tt:tt - | $source:ident) => { - impl From<$source> for $id { - #[inline] - fn from(source: $source) -> Self { - fn static_assert_same_number_of_lanes<T, U>() - where - T: crate::sealed::Simd, - U: crate::sealed::Simd<LanesType = T::LanesType>, - { - } - use crate::llvm::simd_cast; - static_assert_same_number_of_lanes::<$id, $source>(); - Simd(unsafe { simd_cast(source.0) }) - } - } - - // FIXME: `Into::into` is not inline, but due to the blanket impl in - // `std`, which is not marked `default`, we cannot override it here - // with specialization. - - /* - impl Into<$id> for $source { - #[inline] - fn into(self) -> $id { - unsafe { simd_cast(self) } - } - } - */ - - test_if! { - $test_tt: - paste::item! { - pub mod [<$id _from_ $source>] { - use super::*; - #[cfg_attr(not(target_arch = "wasm32"), test)] - #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] - fn from() { - assert_eq!($id::lanes(), $source::lanes()); - let source: $source = Default::default(); - let vec: $id = Default::default(); - - let e = $id::from(source); - assert_eq!(e, vec); - - let e: $id = source.into(); - assert_eq!(e, vec); - } - } - } - } - }; -} - -macro_rules! impl_from_vectors { - ([$elem_ty:ident; $elem_count:expr]: $id:ident | $test_tt:tt - | $($source:ident),*) => { - $( - impl_from_vector!( - [$elem_ty; $elem_count]: $id | $test_tt | $source - ); - )* - } -} |