package bfloat16 file_number 0 "/inputs/subtree/xls/dslx/stdlib/apfloat.x" file_number 1 "/inputs/subtree/xls/dslx/stdlib/bfloat16.x" fn __apfloat__is_zero_or_subnormal__8_7(x: (bits[1], bits[8], bits[7]) id=1) -> bits[1] { x_bexp: bits[8] = tuple_index(x, index=1, id=4, pos=[(0,804,5)]) literal.5: bits[8] = literal(value=0, id=5, pos=[(0,804,14)]) EXP_SZ: bits[32] = literal(value=8, id=2, pos=[(0,802,28)]) FRACTION_SZ: bits[32] = literal(value=7, id=3, pos=[(0,802,41)]) ret eq.6: bits[1] = eq(x_bexp, literal.5, id=6, pos=[(0,804,5)]) } fn __apfloat__zero__8_7(sign: bits[1] id=7) -> (bits[1], bits[8], bits[7]) { literal.10: bits[8] = literal(value=0, id=10, pos=[(0,131,47)]) literal.11: bits[7] = literal(value=0, id=11, pos=[(0,131,73)]) EXP_SZ: bits[32] = literal(value=8, id=8, pos=[(0,130,12)]) FRACTION_SZ: bits[32] = literal(value=7, id=9, pos=[(0,130,25)]) ret tuple.12: (bits[1], bits[8], bits[7]) = tuple(sign, literal.10, literal.11, id=12, pos=[(0,131,33)]) } fn __apfloat__subnormals_to_zero__8_7(x: (bits[1], bits[8], bits[7]) id=13) -> (bits[1], bits[8], bits[7]) { x_sign: bits[1] = tuple_index(x, index=0, id=17, pos=[(0,809,60)]) invoke.16: bits[1] = invoke(x, to_apply=__apfloat__is_zero_or_subnormal__8_7, id=16, pos=[(0,809,27)]) invoke.18: (bits[1], bits[8], bits[7]) = invoke(x_sign, to_apply=__apfloat__zero__8_7, id=18, pos=[(0,809,37)]) EXP_SZ: bits[32] = literal(value=8, id=14, pos=[(0,807,26)]) FRACTION_SZ: bits[32] = literal(value=7, id=15, pos=[(0,807,39)]) ret sel.19: (bits[1], bits[8], bits[7]) = sel(invoke.16, cases=[x, invoke.18], id=19, pos=[(0,809,4)]) } top fn __bfloat16__subnormals_to_zero(f: (bits[1], bits[8], bits[7]) id=20) -> (bits[1], bits[8], bits[7]) { ret invoke.21: (bits[1], bits[8], bits[7]) = invoke(f, to_apply=__apfloat__subnormals_to_zero__8_7, id=21, pos=[(1,79,31)]) }