diff options
Diffstat (limited to 'vendor/libm-0.1.4/src/math/truncf.rs')
-rw-r--r-- | vendor/libm-0.1.4/src/math/truncf.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/vendor/libm-0.1.4/src/math/truncf.rs b/vendor/libm-0.1.4/src/math/truncf.rs deleted file mode 100644 index f93383269..000000000 --- a/vendor/libm-0.1.4/src/math/truncf.rs +++ /dev/null @@ -1,41 +0,0 @@ -use core::f32; - -#[inline] -#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] -pub fn truncf(x: f32) -> f32 { - // On wasm32 we know that LLVM's intrinsic will compile to an optimized - // `f32.trunc` native instruction, so we can leverage this for both code size - // and speed. - llvm_intrinsically_optimized! { - #[cfg(target_arch = "wasm32")] { - return unsafe { ::core::intrinsics::truncf32(x) } - } - } - let x1p120 = f32::from_bits(0x7b800000); // 0x1p120f === 2 ^ 120 - - let mut i: u32 = x.to_bits(); - let mut e: i32 = (i >> 23 & 0xff) as i32 - 0x7f + 9; - let m: u32; - - if e >= 23 + 9 { - return x; - } - if e < 9 { - e = 1; - } - m = -1i32 as u32 >> e; - if (i & m) == 0 { - return x; - } - force_eval!(x + x1p120); - i &= !m; - f32::from_bits(i) -} - -#[cfg(test)] -mod tests { - #[test] - fn sanity_check() { - assert_eq!(super::truncf(1.1), 1.0); - } -} |