package hfloat16 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/hfloat16.x" top fn __hfloat16__to_uint16(x: (bits[1], bits[5], bits[10]) id=135) -> bits[16] { x_bexp__2: bits[5] = tuple_index(x, index=1, id=338, pos=[(1,266,6), (1,2642,31), (1,2897,29), (2,112,51)]) literal.339: bits[5] = literal(value=17, id=339, pos=[(1,266,6), (1,2642,31), (1,2897,29), (2,112,51)]) exp: bits[5] = add(x_bexp__2, literal.339, id=340, pos=[(1,266,6), (1,2642,31), (1,2897,29), (2,112,51)]) bit_slice.399: bits[4] = bit_slice(exp, start=1, width=4, id=399, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) sign_ext.400: bits[5] = sign_ext(bit_slice.399, new_bit_count=5, id=400, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) literal.397: bits[5] = literal(value=27, id=397, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) add.394: bits[5] = add(sign_ext.400, literal.397, id=394, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) bit_slice.398: bits[1] = bit_slice(exp, start=0, width=1, id=398, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) concat.396: bits[6] = concat(add.394, bit_slice.398, id=396, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) literal.344: bits[6] = literal(value=1, id=344, pos=[(1,2897,29), (2,112,51)]) x_fraction__2: bits[10] = tuple_index(x, index=2, id=345, pos=[(1,2646,21), (1,2897,29), (2,112,51)]) literal.346: bits[1] = literal(value=1, id=346, pos=[(1,2646,21), (1,2897,29), (2,112,51)]) neg.385: bits[6] = neg(concat.396, id=385, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) literal.352: bits[5] = literal(value=31, id=352, pos=[(1,96,29), (1,2651,37), (1,2897,29), (2,112,51)]) literal.353: bits[10] = literal(value=0, id=353, pos=[(1,96,57), (1,2651,37), (1,2897,29), (2,112,51)]) literal.348: bits[6] = literal(value=0, id=348, pos=[(1,2667,18), (1,2897,29), (2,112,51)]) fraction: bits[16] = concat(literal.344, x_fraction__2, id=349, pos=[(1,2897,29), (2,112,51)]) effective_exp: bits[32] = sign_ext(concat.396, new_bit_count=32, id=347, pos=[(1,2664,29), (1,2897,29), (2,112,51)]) fraction_shift_bits: bits[11] = concat(literal.346, x_fraction__2, id=350, pos=[(1,2646,21), (1,2897,29), (2,112,51)]) sign_ext.386: bits[32] = sign_ext(neg.385, new_bit_count=32, id=386, pos=[(1,2666,26), (1,2897,29), (2,112,51)]) eq.358: bits[1] = eq(x_bexp__2, literal.352, id=358, pos=[(1,96,6), (1,2651,37), (1,2897,29), (2,112,51)]) ne.359: bits[1] = ne(x_fraction__2, literal.353, id=359, pos=[(1,71,44), (1,2654,20), (1,2897,29), (2,112,51)]) sgt.354: bits[1] = sgt(concat.396, literal.348, id=354, pos=[(1,2667,18), (1,2897,29), (2,112,51)]) shll.355: bits[16] = shll(fraction, effective_exp, id=355, pos=[(1,2668,13), (1,2897,29), (2,112,51)]) literal.356: bits[5] = literal(value=0, id=356, pos=[(1,2666,13), (1,2897,29), (2,112,51)]) shrl.357: bits[11] = shrl(fraction_shift_bits, sign_ext.386, id=357, pos=[(1,2666,13), (1,2897,29), (2,112,51)]) and.366: bits[1] = and(eq.358, ne.359, id=366, pos=[(1,71,6), (1,2654,20), (1,2897,29), (2,112,51)]) bit_slice.367: bits[1] = bit_slice(exp, start=4, width=1, id=367, pos=[(1,2656,14), (1,2897,29), (2,112,51)]) literal.360: bits[5] = literal(value=15, id=360, pos=[(1,2658,14), (1,2897,29), (2,112,51)]) bit_slice.361: bits[1] = bit_slice(effective_exp, start=31, width=1, id=361, pos=[(1,2665,11), (1,2897,29), (2,112,51)]) sel.362: bits[16] = sel(sgt.354, cases=[fraction, shll.355], id=362, pos=[(1,2667,15), (1,2897,29), (2,112,51)]) concat.363: bits[16] = concat(literal.356, shrl.357, id=363, pos=[(1,2666,13), (1,2897,29), (2,112,51)]) or.374: bits[1] = or(and.366, bit_slice.367, id=374, pos=[(1,2654,11), (1,2897,29), (2,112,51)]) not.383: bits[1] = not(eq.358, id=383, pos=[(1,96,6), (1,2651,37), (1,2897,29), (2,112,51)]) eq.368: bits[1] = eq(x_bexp__2, literal.360, id=368, pos=[(1,2658,14), (1,2897,29), (2,112,51)]) sel.369: bits[16] = sel(bit_slice.361, cases=[sel.362, concat.363], id=369, pos=[(1,2665,8), (1,2897,29), (2,112,51)]) literal.370: bits[16] = literal(value=1, id=370, pos=[(1,2659,8), (1,2897,29), (2,112,51)]) not.389: bits[1] = not(or.374, id=389, pos=[(1,2654,11), (1,2897,29), (2,112,51)]) x_sign__2: bits[1] = tuple_index(x, index=0, id=371, pos=[(1,2651,64), (1,2897,29), (2,112,51)]) nor.384: bits[1] = nor(not.383, ne.359, id=384, pos=[(1,96,6), (1,2651,37), (1,2897,29), (2,112,51)]) sel.375: bits[16] = sel(eq.368, cases=[sel.369, literal.370], id=375, pos=[(1,2658,11), (1,2897,29), (2,112,51)]) sign_ext.390: bits[16] = sign_ext(not.389, new_bit_count=16, id=390, pos=[(1,2654,11), (1,2897,29), (2,112,51)]) not.377: bits[1] = not(x_sign__2, id=377, pos=[(1,2653,8), (1,2897,29), (2,112,51)]) or.388: bits[1] = or(nor.384, x_sign__2, id=388, pos=[(1,2651,20), (1,2897,29), (2,112,51)]) and.391: bits[16] = and(sel.375, sign_ext.390, id=391, pos=[(1,2654,11), (1,2897,29), (2,112,51)]) sign_ext.380: bits[16] = sign_ext(not.377, new_bit_count=16, id=380, pos=[(1,2653,8), (1,2897,29), (2,112,51)]) ret result: bits[16] = sel(or.388, cases=[and.391, sign_ext.380], id=381, pos=[(1,2651,17), (1,2897,29), (2,112,51)]) }