package bfloat16 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/bfloat16.x" top fn __bfloat16__from_int8(x: bits[8] id=14) -> (bits[1], bits[8], bits[7]) { bit_slice.82: bits[7] = bit_slice(x, start=0, width=7, id=82) sign: bits[1] = bit_slice(x, start=7, width=1, id=90, pos=[(0,357,61), (2,235,23)]) neg.83: bits[7] = neg(bit_slice.82, id=83, pos=[(2,236,29)]) unsigned: bits[7] = sel(sign, cases=[bit_slice.82, neg.83], id=22, pos=[(2,236,19)]) reverse.23: bits[7] = reverse(unsigned, id=23, pos=[(2,239,16)]) one_hot.24: bits[8] = one_hot(reverse.23, lsb_prio=true, id=24, pos=[(2,239,16)]) literal.86: bits[1] = literal(value=0, id=86) encode.25: bits[3] = encode(one_hot.24, id=25, pos=[(2,239,16)]) MAX_EXPONENT: bits[4] = literal(value=6, id=15, pos=[(2,232,25)]) lz: bits[4] = concat(literal.86, encode.25, id=85) literal.35: bits[7] = literal(value=0, id=35, pos=[(2,248,32)]) literal.57: bits[4] = literal(value=0, id=57) exp: bits[4] = sub(MAX_EXPONENT, lz, id=31, pos=[(2,242,14)]) eq.36: bits[1] = eq(unsigned, literal.35, id=36, pos=[(2,248,20)]) literal.43: bits[8] = literal(value=128, id=43, pos=[(2,250,25)]) concat.58: bits[8] = concat(literal.57, exp, id=58) BIAS: bits[8] = literal(value=127, id=16, pos=[(2,233,17)]) not.109: bits[1] = not(eq.36, id=109, pos=[(2,248,17)]) literal.28: bits[4] = literal(value=1, id=28, pos=[(2,240,37)]) eq.44: bits[1] = eq(x, literal.43, id=44, pos=[(2,250,20)]) bexp: bits[8] = add(concat.58, BIAS, id=33, pos=[(2,243,15)]) sign_ext.110: bits[8] = sign_ext(not.109, new_bit_count=8, id=110, pos=[(2,248,17)]) add.29: bits[4] = add(lz, literal.28, id=29, pos=[(2,240,32)]) nor.115: bits[1] = nor(eq.44, eq.36, id=115, pos=[(2,250,17)]) and.111: bits[8] = and(bexp, sign_ext.110, id=111, pos=[(2,248,17)]) literal.80: bits[8] = literal(value=134, id=80, pos=[(2,250,17)]) fraction: bits[7] = shll(unsigned, add.29, id=30, pos=[(2,240,19)]) sign_ext.113: bits[7] = sign_ext(nor.115, new_bit_count=7, id=113, pos=[(2,250,17)]) sel.74: bits[8] = sel(eq.44, cases=[and.111, literal.80], id=74, pos=[(2,250,17)]) and.114: bits[7] = and(fraction, sign_ext.113, id=114, pos=[(2,250,17)]) ret result__2: (bits[1], bits[8], bits[7]) = tuple(sign, sel.74, and.114, id=78, pos=[(2,250,17)]) }