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