Skip to content

Commit c948b70

Browse files
committed
Simplify signed leading_ones/trailing_ones
1 parent b1245ff commit c948b70

File tree

1 file changed

+4
-6
lines changed
  • crates/core_simd/src/elements

1 file changed

+4
-6
lines changed

crates/core_simd/src/elements/int.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ pub trait SimdInt: Copy + Sealed {
213213
}
214214

215215
macro_rules! impl_trait {
216-
{ $($ty:ident ($unsigned:ident)),* } => {
216+
{ $($ty:ty),* } => {
217217
$(
218218
impl<const LANES: usize> Sealed for Simd<$ty, LANES>
219219
where
@@ -353,18 +353,16 @@ macro_rules! impl_trait {
353353

354354
#[inline]
355355
fn leading_ones(self) -> Self {
356-
use crate::simd::SimdUint;
357-
self.cast::<$unsigned>().leading_ones().cast()
356+
(!self).leading_zeros()
358357
}
359358

360359
#[inline]
361360
fn trailing_ones(self) -> Self {
362-
use crate::simd::SimdUint;
363-
self.cast::<$unsigned>().trailing_ones().cast()
361+
(!self).trailing_zeros()
364362
}
365363
}
366364
)*
367365
}
368366
}
369367

370-
impl_trait! { i8 (u8), i16 (u16), i32 (u32), i64 (u64), isize (usize) }
368+
impl_trait! { i8, i16, i32, i64, isize }

0 commit comments

Comments
 (0)