package float32 file_number 0 "/inputs/subtree/xls/dslx/stdlib/float32.x" top fn __float32__from_int32(x: bits[32] id=61) -> (bits[1], bits[8], bits[23]) { bit_slice.181: bits[31] = bit_slice(x, start=0, width=31, id=181) sign: bits[1] = bit_slice(x, start=31, width=1, id=117, pos=[(0,258,20)]) neg.182: bits[31] = neg(bit_slice.181, id=182, pos=[(0,259,33)]) fraction: bits[31] = sel(sign, cases=[bit_slice.181, neg.182], id=74, pos=[(0,259,23)]) reverse.75: bits[31] = reverse(fraction, id=75, pos=[(0,260,20)]) one_hot.76: bits[32] = one_hot(reverse.75, lsb_prio=true, id=76, pos=[(0,260,20)]) literal.281: bits[1] = literal(value=0, id=281) encode.77: bits[5] = encode(one_hot.76, id=77, pos=[(0,260,20)]) literal.279: bits[2] = literal(value=0, id=279, pos=[(0,221,20), (0,261,27)]) concat.276: bits[6] = concat(literal.281, encode.77, id=276) literal.282: bits[6] = literal(value=3, id=282, pos=[(0,221,45), (0,261,27)]) concat.280: bits[33] = concat(literal.279, fraction, id=280, pos=[(0,221,20), (0,261,27)]) add.270: bits[6] = add(concat.276, literal.282, id=270, pos=[(0,221,40), (0,261,27)]) fraction__1_narrowed: bits[33] = shll(concat.280, add.270, id=273, pos=[(0,261,27)]) bit_slice.300: bits[4] = bit_slice(fraction__1_narrowed, start=3, width=4, id=300, pos=[(0,227,18), (0,261,27)]) literal.299: bits[4] = literal(value=0, id=299, pos=[(0,227,18), (0,261,27)]) literal.218: bits[25] = literal(value=0, id=218, pos=[(0,261,27)]) ne.298: bits[1] = ne(bit_slice.300, literal.299, id=298, pos=[(0,227,18), (0,261,27)]) bit_slice.220: bits[26] = bit_slice(fraction__1_narrowed, start=7, width=26, id=220, pos=[(0,228,20), (0,261,27)]) concat.221: bits[26] = concat(literal.218, ne.298, id=221, pos=[(0,261,27)]) fraction__2: bits[26] = or(bit_slice.220, concat.221, id=222, pos=[(0,228,20), (0,261,27)]) normal_chunk: bits[3] = bit_slice(fraction__2, start=0, width=3, id=223, pos=[(0,230,31), (0,261,27)]) literal.224: bits[3] = literal(value=4, id=224, pos=[(0,233,27), (0,261,27)]) half_way_chunk: bits[2] = bit_slice(fraction__2, start=2, width=2, id=225, pos=[(0,231,33), (0,261,27)]) literal.226: bits[2] = literal(value=3, id=226, pos=[(0,233,56), (0,261,27)]) ugt.227: bits[1] = ugt(normal_chunk, literal.224, id=227, pos=[(0,233,12), (0,261,27)]) eq.228: bits[1] = eq(half_way_chunk, literal.226, id=228, pos=[(0,233,38), (0,261,27)]) bit_slice.334: bits[23] = bit_slice(fraction__2, start=3, width=23, id=334) literal.343: bits[23] = literal(value=0, id=343) or.229: bits[1] = or(ugt.227, eq.228, id=229, pos=[(0,233,12), (0,261,27)]) concat.335: bits[24] = concat(literal.281, bit_slice.334, id=335) concat.349: bits[24] = concat(literal.343, or.229, id=349) add.325: bits[24] = add(concat.335, concat.349, id=325) bit_slice.330: bits[1] = bit_slice(add.325, start=23, width=1, id=330, pos=[(0,234,19), (0,261,27)]) bexp_associative_element_squeezed: bits[2] = literal(value=1, id=320, pos=[(0,224,15), (0,261,27)]) literal.321: bits[2] = literal(value=2, id=321, pos=[(0,238,29), (0,261,27)]) literal.311: bits[6] = literal(value=39, id=311) sel.310: bits[2] = sel(bit_slice.330, cases=[bexp_associative_element_squeezed, literal.321], id=310) literal.204: bits[3] = literal(value=0, id=204) concat.322: bits[8] = concat(literal.311, sel.310, id=322) lz: bits[8] = concat(literal.204, encode.77, id=184) bexp__1: bits[8] = sub(concat.322, lz, id=305) bit_slice.246: bits[7] = bit_slice(bexp__1, start=0, width=7, id=246, pos=[(0,244,20), (0,261,27)]) fraction__4: bits[23] = bit_slice(add.325, start=0, width=23, id=332, pos=[(0,261,27)]) literal.62: bits[32] = literal(value=2147483648, id=62, pos=[(0,253,30)]) bit_slice.248: bits[1] = bit_slice(bexp__1, start=7, width=1, id=248, pos=[(0,244,20), (0,261,27)]) and_reduce.249: bits[1] = and_reduce(bit_slice.246, id=249, pos=[(0,244,20), (0,261,27)]) ne.257: bits[1] = ne(fraction__4, literal.343, id=257, pos=[(0,244,20), (0,261,27)]) is_neg_int_max: bits[1] = eq(x, literal.62, id=63, pos=[(0,253,25)]) nor.251: bits[1] = nor(bit_slice.248, and_reduce.249, ne.257, id=251, pos=[(0,244,20), (0,261,27)]) or.328: bits[1] = or(bit_slice.248, and_reduce.249, ne.257, id=328, pos=[(0,244,17), (0,261,27)]) or.292: bits[1] = or(is_neg_int_max, nor.251, id=292, pos=[(0,255,4)]) not.265: bits[1] = not(is_neg_int_max, id=265, pos=[(0,255,4)]) sign_ext.315: bits[8] = sign_ext(or.328, new_bit_count=8, id=315, pos=[(0,244,17), (0,261,27)]) not.317: bits[1] = not(or.292, id=317, pos=[(0,255,4)]) and.291: bits[1] = and(not.265, or.328, sign, id=291, pos=[(0,255,4)]) and.316: bits[8] = and(bexp__1, sign_ext.315, id=316, pos=[(0,244,17), (0,261,27)]) literal.239: bits[8] = literal(value=158, id=239, pos=[(0,238,29), (0,261,27)]) sign_ext.318: bits[23] = sign_ext(not.317, new_bit_count=23, id=318, pos=[(0,255,4)]) or.267: bits[1] = or(is_neg_int_max, and.291, id=267, pos=[(0,255,4)]) sel.139: bits[8] = sel(is_neg_int_max, cases=[and.316, literal.239], id=139, pos=[(0,255,4)]) and.319: bits[23] = and(fraction__4, sign_ext.318, id=319, pos=[(0,255,4)]) ret tuple.143: (bits[1], bits[8], bits[23]) = tuple(or.267, sel.139, and.319, id=143, pos=[(0,255,4)]) }