@@ -7,24 +7,24 @@ macro_rules! add {
7
7
/// Returns `a + b`
8
8
#[ cfg_attr( not( test) , no_mangle) ]
9
9
pub extern fn $intrinsic( a: $ty, b: $ty) -> $ty {
10
- let bits = ( <$ty>:: bits( ) ) as <$ty as Float >:: Int ;
11
- let significand_bits = ( <$ty>:: significand_bits( ) ) as <$ty as Float >:: Int ;
12
- let exponent_bits = ( bits - significand_bits - 1 ) as <$ty as Float > :: Int ;
13
- let max_exponent = ( ( 1 << exponent_bits) - 1 ) as <$ty as Float > :: Int ;
14
-
15
- let implicit_bit = ( 1 << significand_bits) as <$ty as Float > :: Int ;
16
- let significand_mask = ( implicit_bit - 1 ) as <$ty as Float > :: Int ;
17
- let sign_bit = ( 1 << ( significand_bits + exponent_bits) ) as <$ty as Float > :: Int ;
18
- let abs_mask = ( sign_bit - 1 ) as <$ty as Float > :: Int ;
19
- let exponent_mask = ( abs_mask ^ significand_mask) as <$ty as Float > :: Int ;
20
- let inf_rep = ( exponent_mask) as <$ty as Float > :: Int ;
21
- let quiet_bit = ( implicit_bit >> 1 ) as <$ty as Float > :: Int ;
22
- let qnan_rep = ( exponent_mask | quiet_bit) as <$ty as Float > :: Int ;
10
+ let bits = <$ty>:: bits( ) as <$ty as Float >:: Int ;
11
+ let significand_bits = <$ty>:: significand_bits( ) as <$ty as Float >:: Int ;
12
+ let exponent_bits = bits - significand_bits - 1 ;
13
+ let max_exponent = ( 1 << exponent_bits) - 1 ;
14
+
15
+ let implicit_bit = 1 << significand_bits;
16
+ let significand_mask = implicit_bit - 1 ;
17
+ let sign_bit = 1 << ( significand_bits + exponent_bits) ;
18
+ let abs_mask = sign_bit - 1 ;
19
+ let exponent_mask = abs_mask ^ significand_mask;
20
+ let inf_rep = exponent_mask;
21
+ let quiet_bit = implicit_bit >> 1 ;
22
+ let qnan_rep = exponent_mask | quiet_bit;
23
23
24
24
let mut a_rep = unsafe { transmute:: <_, <$ty as Float >:: Int >( a) } ;
25
25
let mut b_rep = unsafe { transmute:: <_, <$ty as Float >:: Int >( b) } ;
26
- let a_abs = ( a_rep & abs_mask) as <$ty as Float > :: Int ;
27
- let b_abs = ( b_rep & abs_mask) as <$ty as Float > :: Int ;
26
+ let a_abs = a_rep & abs_mask;
27
+ let b_abs = b_rep & abs_mask;
28
28
29
29
// Detect if a or b is zero, infinity, or NaN.
30
30
if a_abs - 1 >= inf_rep - 1 ||
0 commit comments