fn add_and_denorm(a: f64, b: f64, scale: i32) f64
fn add_and_denorm(a: f64, b: f64, scale: i32) f64 { var sum = dd_add(a, b); if (sum.lo != 0) { var uhii: u64 = @bitCast(sum.hi); const bits_lost = -@as(i32, @intCast((uhii >> 52) & 0x7FF)) - scale + 1; if ((bits_lost != 1) == (uhii & 1 != 0)) { const uloi: u64 = @bitCast(sum.lo); uhii = uhii + 1 - (((uhii ^ uloi) >> 62) & 2); sum.hi = @bitCast(uhii); } } return math.scalbn(sum.hi, scale); }