package float32 file_number 0 "/inputs/subtree/xls/dslx/stdlib/std.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 2 "/inputs/subtree/xls/dslx/stdlib/float32.x" fn __std__signed_max_value__8_7() -> bits[8] { literal.3: bits[8] = literal(value=1, id=3, pos=[(0,47,6)]) N_MINUS_ONE: bits[32] = literal(value=7, id=2, pos=[(0,46,32)]) shll.4: bits[8] = shll(literal.3, N_MINUS_ONE, id=4, pos=[(0,47,6)]) literal.5: bits[8] = literal(value=1, id=5, pos=[(0,47,32)]) sub.6: bits[8] = sub(shll.4, literal.5, id=6, pos=[(0,47,6)]) N: bits[32] = literal(value=8, id=1, pos=[(0,46,24)]) ret sign_ext.7: bits[8] = sign_ext(sub.6, new_bit_count=8, id=7) } fn __apfloat__exponent_bias__8_23(f: (bits[1], bits[8], bits[23]) id=8) -> bits[8] { invoke.11: bits[8] = invoke(to_apply=__std__signed_max_value__8_7, id=11, pos=[(1,221,25)]) EXP_SZ: bits[32] = literal(value=8, id=9, pos=[(1,220,21)]) FRACTION_SZ: bits[32] = literal(value=23, id=10, pos=[(1,220,34)]) ret sign_ext.12: bits[8] = sign_ext(invoke.11, new_bit_count=8, id=12) } fn __apfloat__unbiased_exponent__8_23(f: (bits[1], bits[8], bits[23]) id=13) -> bits[8] { f_bexp: bits[8] = tuple_index(f, index=1, id=17, pos=[(1,266,6)]) zero_ext.18: bits[8] = zero_ext(f_bexp, new_bit_count=8, id=18) bias: bits[8] = invoke(f, to_apply=__apfloat__exponent_bias__8_23, id=16, pos=[(1,265,28)]) EXP_SZ: bits[32] = literal(value=8, id=14, pos=[(1,263,25)]) FRACTION_SZ: bits[32] = literal(value=23, id=15, pos=[(1,263,38)]) ret sub.19: bits[8] = sub(zero_ext.18, bias, id=19, pos=[(1,266,6)]) } fn __float32__unbiased_exponent(f: (bits[1], bits[8], bits[23]) id=20) -> bits[8] { F32_EXP_SZ: bits[32] = literal(value=8, id=21, pos=[(2,18,23)]) F32_FRACTION_SZ: bits[32] = literal(value=23, id=22, pos=[(2,19,28)]) ret invoke.23: bits[8] = invoke(f, to_apply=__apfloat__unbiased_exponent__8_23, id=23, pos=[(2,52,30)]) } top fn __float32__fixed_fraction(input_float: (bits[1], bits[8], bits[23]) id=24) -> bits[23] { unbiased_input_float_exponent: bits[8] = invoke(input_float, to_apply=__float32__unbiased_exponent, id=29, pos=[(2,196,61)]) sign_ext.30: bits[8] = sign_ext(unbiased_input_float_exponent, new_bit_count=8, id=30) literal.31: bits[8] = literal(value=0, id=31, pos=[(2,198,81)]) neg.39: bits[8] = neg(unbiased_input_float_exponent, id=39, pos=[(2,204,40)]) literal.33: bits[1] = literal(value=1, id=33, pos=[(2,199,8)]) sgt.32: bits[1] = sgt(sign_ext.30, literal.31, id=32, pos=[(2,198,43)]) literal.26: bits[2] = literal(value=1, id=26, pos=[(2,195,40)]) input_float_fraction: bits[23] = tuple_index(input_float, index=2, id=27, pos=[(2,195,62)]) fraction_left_shift: bits[3] = bit_slice(unbiased_input_float_exponent, start=0, width=3, id=35) fraction_right_shift: bits[5] = bit_slice(neg.39, start=0, width=5, id=40) eq.34: bits[1] = eq(literal.33, sgt.32, id=34) input_fraction_magnitude: bits[25] = concat(literal.26, input_float_fraction, id=28, pos=[(2,195,40)]) zero_ext.36: bits[25] = zero_ext(fraction_left_shift, new_bit_count=25, id=36) zero_ext.41: bits[25] = zero_ext(fraction_right_shift, new_bit_count=25, id=41) concat.43: bits[1] = concat(eq.34, id=43) shll.37: bits[25] = shll(input_fraction_magnitude, zero_ext.36, id=37, pos=[(2,201,12)]) shrl.42: bits[25] = shrl(input_fraction_magnitude, zero_ext.41, id=42, pos=[(2,205,12)]) input_fixed_magnitude: bits[25] = priority_sel(concat.43, cases=[shll.37], default=shrl.42, id=44) bit_slice.45: bits[23] = bit_slice(input_fixed_magnitude, start=0, width=23, id=45) input_fraction_part_magnitude: bits[24] = zero_ext(bit_slice.45, new_bit_count=24, id=46) literal.48: bits[24] = literal(value=0, id=48, pos=[(2,210,86)]) literal.51: bits[24] = literal(value=1, id=51, pos=[(2,211,9)]) F32_FRACTION_SZ: bits[32] = literal(value=23, id=25, pos=[(2,19,28)]) input_float_sign: bits[1] = tuple_index(input_float, index=0, id=47, pos=[(2,210,44)]) ne.49: bits[1] = ne(input_fraction_part_magnitude, literal.48, id=49, pos=[(2,210,53)]) shll.52: bits[24] = shll(literal.51, F32_FRACTION_SZ, id=52, pos=[(2,211,9)]) and.50: bits[1] = and(input_float_sign, ne.49, id=50, pos=[(2,210,44)]) sub.53: bits[24] = sub(shll.52, input_fraction_part_magnitude, id=53, pos=[(2,211,9)]) fixed_fraction: bits[24] = sel(and.50, cases=[input_fraction_part_magnitude, sub.53], id=54, pos=[(2,210,30)]) literal.38: bits[1] = literal(value=1, id=38, pos=[(2,203,8)]) ret bit_slice.55: bits[23] = bit_slice(fixed_fraction, start=0, width=23, id=55) }