diff options
| author | Caleb Zulawski <caleb.zulawski@gmail.com> | 2023-08-01 07:58:44 -0400 |
|---|---|---|
| committer | Caleb Zulawski <caleb.zulawski@gmail.com> | 2023-08-01 07:58:44 -0400 |
| commit | c948b703ff57f25a1a41be5e03553065454080b9 (patch) | |
| tree | 7907ed9e8f532f761bc977920b2956be4b54f5e7 | |
| parent | b1245ffb1277ad4274f600607f9058281baf3bc6 (diff) | |
| download | rust-c948b703ff57f25a1a41be5e03553065454080b9.tar.gz rust-c948b703ff57f25a1a41be5e03553065454080b9.zip | |
Simplify signed leading_ones/trailing_ones
| -rw-r--r-- | crates/core_simd/src/elements/int.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/core_simd/src/elements/int.rs b/crates/core_simd/src/elements/int.rs index 6992b679515..e81ed7bf601 100644 --- a/crates/core_simd/src/elements/int.rs +++ b/crates/core_simd/src/elements/int.rs @@ -213,7 +213,7 @@ pub trait SimdInt: Copy + Sealed { } macro_rules! impl_trait { - { $($ty:ident ($unsigned:ident)),* } => { + { $($ty:ty),* } => { $( impl<const LANES: usize> Sealed for Simd<$ty, LANES> where @@ -353,18 +353,16 @@ macro_rules! impl_trait { #[inline] fn leading_ones(self) -> Self { - use crate::simd::SimdUint; - self.cast::<$unsigned>().leading_ones().cast() + (!self).leading_zeros() } #[inline] fn trailing_ones(self) -> Self { - use crate::simd::SimdUint; - self.cast::<$unsigned>().trailing_ones().cast() + (!self).trailing_zeros() } } )* } } -impl_trait! { i8 (u8), i16 (u16), i32 (u32), i64 (u64), isize (usize) } +impl_trait! { i8, i16, i32, i64, isize } |
