Skip to content

Commit b2e25bc

Browse files
Merge pull request rust-lang#95 from rust-lang/intrinsic-fabs
Use fabs intrinsic
2 parents e73985f + 9acc112 commit b2e25bc

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

crates/core_simd/src/intrinsics.rs

+3
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ extern "platform-intrinsic" {
5151
#[cfg(feature = "std")]
5252
pub(crate) fn simd_ceil<T>(x: T) -> T;
5353

54+
/// fabs
55+
pub(crate) fn simd_fabs<T>(x: T) -> T;
56+
5457
pub(crate) fn simd_eq<T, U>(x: T, y: T) -> U;
5558
pub(crate) fn simd_ne<T, U>(x: T, y: T) -> U;
5659
pub(crate) fn simd_lt<T, U>(x: T, y: T) -> U;

crates/core_simd/src/vector/float.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ macro_rules! impl_float_vector {
3232
/// equivalently-indexed lane in `self`.
3333
#[inline]
3434
pub fn abs(self) -> Self {
35-
let no_sign = crate::$bits_ty::splat(!0 >> 1);
36-
Self::from_bits(self.to_bits() & no_sign)
35+
unsafe { crate::intrinsics::simd_fabs(self) }
3736
}
3837
}
3938

0 commit comments

Comments
 (0)