package float64 file_number 0 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/float64.x" fn __apfloat__zero__11_52(sign: bits[1] id=1) -> (bits[1], bits[11], bits[52]) { literal.4: bits[11] = literal(value=0, id=4, pos=[(0,131,47)]) literal.5: bits[52] = literal(value=0, id=5, pos=[(0,131,73)]) EXP_SZ: bits[32] = literal(value=11, id=2, pos=[(0,130,12)]) FRACTION_SZ: bits[32] = literal(value=52, id=3, pos=[(0,130,25)]) ret tuple.6: (bits[1], bits[11], bits[52]) = tuple(sign, literal.4, literal.5, id=6, pos=[(0,131,33)]) } fn __apfloat__normalize__11_52_53(sign: bits[1] id=7, exp: bits[11] id=8, fraction_with_hidden: bits[53] id=9) -> (bits[1], bits[11], bits[52]) { reverse.13: bits[53] = reverse(fraction_with_hidden, id=13, pos=[(0,2063,27)]) one_hot.14: bits[54] = one_hot(reverse.13, lsb_prio=true, id=14, pos=[(0,2063,27)]) encode.15: bits[6] = encode(one_hot.14, id=15, pos=[(0,2063,27)]) zero_ext.16: bits[53] = zero_ext(encode.15, new_bit_count=53, id=16, pos=[(0,2063,27)]) leading_zeros: bits[52] = bit_slice(zero_ext.16, start=0, width=52, id=17) bit_slice.23: bits[11] = bit_slice(leading_zeros, start=0, width=11, id=23) is_denormal: bits[1] = ule(exp, bit_slice.23, id=24, pos=[(0,2069,22)]) tuple.25: (bits[1], bits[52]) = tuple(is_denormal, leading_zeros, id=25, pos=[(0,2070,10)]) literal.35: bits[1] = literal(value=1, id=35, pos=[(0,2074,9)]) tuple_index.34: bits[1] = tuple_index(tuple.25, index=0, id=34) WIDE_FRACTION: bits[32] = literal(value=53, id=12, pos=[(0,2060,48)]) literal.33: bits[1] = literal(value=1, id=33) eq.36: bits[1] = eq(literal.35, tuple_index.34, id=36) literal.26: bits[1] = literal(value=1, id=26) literal.28: bits[1] = literal(value=1, id=28, pos=[(0,2072,9)]) zero_fraction: bits[52] = zero_ext(WIDE_FRACTION, new_bit_count=52, id=19) tuple_index.30: bits[52] = tuple_index(tuple.25, index=1, id=30) zero_ext.20: bits[53] = zero_ext(leading_zeros, new_bit_count=53, id=20) and.37: bits[1] = and(literal.33, eq.36, id=37) literal.39: bits[1] = literal(value=1, id=39, pos=[(0,2074,15)]) and.29: bits[1] = and(literal.26, literal.28, id=29) eq.31: bits[1] = eq(zero_fraction, tuple_index.30, id=31) bit_slice.42: bits[11] = bit_slice(leading_zeros, start=0, width=11, id=42) shll.21: bits[53] = shll(fraction_with_hidden, zero_ext.20, id=21, pos=[(0,2067,9)]) and.40: bits[1] = and(and.37, literal.39, id=40) and.32: bits[1] = and(and.29, eq.31, id=32) sub.43: bits[11] = sub(exp, bit_slice.42, id=43, pos=[(0,2078,18)]) normalized_fraction: bits[52] = bit_slice(shll.21, start=0, width=52, id=22) concat.45: bits[2] = concat(and.40, and.32, id=45) zero_value: (bits[1], bits[11], bits[52]) = invoke(sign, to_apply=__apfloat__zero__11_52, id=18, pos=[(0,2064,25)]) tuple.44: (bits[1], bits[11], bits[52]) = tuple(sign, sub.43, normalized_fraction, id=44, pos=[(0,2076,21)]) EXP_SZ: bits[32] = literal(value=11, id=10, pos=[(0,2060,17)]) FRACTION_SZ: bits[32] = literal(value=52, id=11, pos=[(0,2060,30)]) tuple_index.27: bits[1] = tuple_index(tuple.25, index=0, id=27) tuple_index.38: bits[52] = tuple_index(tuple.25, index=1, id=38) literal.41: bits[1] = literal(value=1, id=41, pos=[(0,2076,8)]) ret priority_sel.46: (bits[1], bits[11], bits[52]) = priority_sel(concat.45, cases=[zero_value, zero_value], default=tuple.44, id=46) } top fn __float64__normalize(sign: bits[1] id=47, exp: bits[11] id=48, fraction_with_hidden: bits[53] id=49) -> (bits[1], bits[11], bits[52]) { F64_EXP_SZ: bits[32] = literal(value=11, id=50, pos=[(1,17,23)]) F64_FRACTION_SZ: bits[32] = literal(value=52, id=51, pos=[(1,18,28)]) ret invoke.52: (bits[1], bits[11], bits[52]) = invoke(sign, exp, fraction_with_hidden, to_apply=__apfloat__normalize__11_52_53, id=52, pos=[(1,96,22)]) }