Skip to content

Commit

Permalink
optimize nextup and nextdown
Browse files Browse the repository at this point in the history
  • Loading branch information
Il-Capitano committed Jan 7, 2024
1 parent 6c1ea7a commit 973a337
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions bozon-stdlib/compiler/__builtins.bz
Original file line number Diff line number Diff line change
Expand Up @@ -1034,7 +1034,7 @@ export function __builtin_slice_size(slice: [: auto]) -> usize
let x_bits = __builtin_bit_cast(uint32, x);
let abs_x_bits = __builtin_bit_cast(uint32, __builtin_abs_f32(x));
let normalized_zero = if (is_zero) { abs_x_bits } else { x_bits };
let d = if ((normalized_zero & (1u32 << 31)) != 0) { ~0u32 } else { 1u32 };
let d = __builtin_arithmetic_shift_right_u32(normalized_zero, 31) | 1u32;
let finite_result = ((normalized_zero + d));
let result = if (is_nan_or_inf) { x_bits } else { finite_result };
return __builtin_bit_cast(float32, result);
Expand All @@ -1048,7 +1048,7 @@ export function __builtin_slice_size(slice: [: auto]) -> usize
let x_bits = __builtin_bit_cast(uint64, x);
let abs_x_bits = __builtin_bit_cast(uint64, __builtin_abs_f64(x));
let normalized_zero = if (is_zero) { abs_x_bits } else { x_bits };
let d = if ((normalized_zero & (1u64 << 63)) != 0) { ~0u64 } else { 1u64 };
let d = __builtin_arithmetic_shift_right_u64(normalized_zero, 63) | 1u64;
let finite_result = ((normalized_zero + d));
let result = if (is_nan_or_inf) { x_bits } else { finite_result };
return __builtin_bit_cast(float64, result);
Expand All @@ -1062,7 +1062,7 @@ export function __builtin_slice_size(slice: [: auto]) -> usize
let x_bits = __builtin_bit_cast(uint32, x);
let negative_x_bits = __builtin_bit_cast(uint32, -__builtin_abs_f32(x));
let normalized_zero = if (is_zero) { negative_x_bits } else { x_bits };
let d = if ((normalized_zero & (1u32 << 31)) != 0) { ~0u32 } else { 1u32 };
let d = __builtin_arithmetic_shift_right_u32(normalized_zero, 31) | 1u32;
let finite_result = ((normalized_zero - d));
let result = if (is_nan_or_inf) { x_bits } else { finite_result };
return __builtin_bit_cast(float32, result);
Expand All @@ -1076,7 +1076,7 @@ export function __builtin_slice_size(slice: [: auto]) -> usize
let x_bits = __builtin_bit_cast(uint64, x);
let negative_x_bits = __builtin_bit_cast(uint64, -__builtin_abs_f64(x));
let normalized_zero = if (is_zero) { negative_x_bits } else { x_bits };
let d = if ((normalized_zero & (1u64 << 63)) != 0) { ~0u64 } else { 1u64 };
let d = __builtin_arithmetic_shift_right_u64(normalized_zero, 63) | 1u64;
let finite_result = ((normalized_zero - d));
let result = if (is_nan_or_inf) { x_bits } else { finite_result };
return __builtin_bit_cast(float64, result);
Expand Down

0 comments on commit 973a337

Please sign in to comment.