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" fn __std__mask_bits__8() -> bits[8] { literal.2: bits[8] = literal(value=0, id=2, pos=[(0,835,41)]) X: bits[32] = literal(value=8, id=1, pos=[(0,835,17)]) ret not.3: bits[8] = not(literal.2, id=3, pos=[(0,835,40)]) } fn __apfloat__tag__8_7(input_float: (bits[1], bits[8], bits[7]) id=4) -> bits[3] { input_float_bexp: bits[8] = tuple_index(input_float, index=1, id=8, pos=[(1,40,22)]) input_float_fraction: bits[7] = tuple_index(input_float, index=2, id=9, pos=[(1,40,40)]) tuple.10: (bits[8], bits[7]) = tuple(input_float_bexp, input_float_fraction, id=10, pos=[(1,40,10)]) EXPR_MASK: bits[8] = invoke(to_apply=__std__mask_bits__8, id=7, pos=[(1,39,36)]) tuple_index.40: bits[8] = tuple_index(tuple.10, index=0, id=40) tuple_index.31: bits[8] = tuple_index(tuple.10, index=0, id=31) literal.23: bits[8] = literal(value=0, id=23, pos=[(1,42,9)]) tuple_index.22: bits[8] = tuple_index(tuple.10, index=0, id=22) literal.13: bits[8] = literal(value=0, id=13, pos=[(1,41,9)]) tuple_index.12: bits[8] = tuple_index(tuple.10, index=0, id=12) literal.39: bits[1] = literal(value=1, id=39) eq.41: bits[1] = eq(EXPR_MASK, tuple_index.40, id=41) literal.30: bits[1] = literal(value=1, id=30) eq.32: bits[1] = eq(EXPR_MASK, tuple_index.31, id=32) literal.35: bits[7] = literal(value=0, id=35, pos=[(1,43,20)]) tuple_index.34: bits[7] = tuple_index(tuple.10, index=1, id=34) literal.21: bits[1] = literal(value=1, id=21) eq.24: bits[1] = eq(literal.23, tuple_index.22, id=24) literal.11: bits[1] = literal(value=1, id=11) eq.14: bits[1] = eq(literal.13, tuple_index.12, id=14) literal.17: bits[7] = literal(value=0, id=17, pos=[(1,41,23)]) tuple_index.16: bits[7] = tuple_index(tuple.10, index=1, id=16) and.42: bits[1] = and(literal.39, eq.41, id=42) literal.44: bits[1] = literal(value=1, id=44, pos=[(1,44,20)]) and.33: bits[1] = and(literal.30, eq.32, id=33) eq.36: bits[1] = eq(literal.35, tuple_index.34, id=36) and.25: bits[1] = and(literal.21, eq.24, id=25) literal.27: bits[1] = literal(value=1, id=27, pos=[(1,42,23)]) and.15: bits[1] = and(literal.11, eq.14, id=15) eq.18: bits[1] = eq(literal.17, tuple_index.16, id=18) literal.47: bits[1] = literal(value=1, id=47) literal.49: bits[1] = literal(value=1, id=49, pos=[(1,45,9)]) and.45: bits[1] = and(and.42, literal.44, id=45) and.37: bits[1] = and(and.33, eq.36, id=37) and.28: bits[1] = and(and.25, literal.27, id=28) and.19: bits[1] = and(and.15, eq.18, id=19) and.50: bits[1] = and(literal.47, literal.49, id=50) literal.52: bits[1] = literal(value=1, id=52, pos=[(1,45,12)]) concat.55: bits[4] = concat(and.45, and.37, and.28, and.19, id=55) literal.20: bits[3] = literal(value=3, id=20, pos=[(1,41,45)]) literal.29: bits[3] = literal(value=2, id=29, pos=[(1,42,29)]) literal.38: bits[3] = literal(value=1, id=38, pos=[(1,43,42)]) literal.46: bits[3] = literal(value=0, id=46, pos=[(1,44,26)]) literal.54: bits[3] = literal(value=4, id=54, pos=[(1,45,18)]) EXP_SZ: bits[32] = literal(value=8, id=5, pos=[(1,38,11)]) FRACTION_SZ: bits[32] = literal(value=7, id=6, pos=[(1,38,24)]) tuple_index.26: bits[7] = tuple_index(tuple.10, index=1, id=26) tuple_index.43: bits[7] = tuple_index(tuple.10, index=1, id=43) tuple_index.48: bits[8] = tuple_index(tuple.10, index=0, id=48) tuple_index.51: bits[7] = tuple_index(tuple.10, index=1, id=51) and.53: bits[1] = and(and.50, literal.52, id=53) ret priority_sel.56: bits[3] = priority_sel(concat.55, cases=[literal.20, literal.29, literal.38, literal.46], default=literal.54, id=56) } top fn __bfloat16__tag(f: (bits[1], bits[8], bits[7]) id=57) -> bits[3] { ret invoke.58: bits[3] = invoke(f, to_apply=__apfloat__tag__8_7, id=58, pos=[(2,110,46)]) }