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__floor_with_denorms(f: (bits[1], bits[8], bits[7]) id=201) -> (bits[1], bits[8], bits[7]) { f_bexp__1: bits[8] = tuple_index(f, index=1, id=466, pos=[(1,266,6), (1,4234,31), (1,4505,45), (2,182,72)]) literal.467: bits[8] = literal(value=129, id=467, pos=[(1,266,6), (1,4268,31), (1,4508,47), (2,182,72)]) exp: bits[8] = add(f_bexp__1, literal.467, id=468, pos=[(1,266,6), (1,4268,31), (1,4508,47), (2,182,72)]) literal.469: bits[7] = literal(value=127, id=469, pos=[(1,4270,40), (1,4508,47), (2,182,72)]) sign_ext.470: bits[32] = sign_ext(exp, new_bit_count=32, id=470, pos=[(1,4508,47), (2,182,72)]) literal.471: bits[1] = literal(value=0, id=471, pos=[(1,4501,46), (2,182,72)]) f_fraction__1: bits[7] = tuple_index(f, index=2, id=472, pos=[(1,4255,9), (1,4505,45), (2,182,72)]) fractional_mask__2: bits[7] = shrl(literal.469, sign_ext.470, id=473, pos=[(1,4270,40), (1,4508,47), (2,182,72)]) concat.474: bits[8] = concat(literal.471, f_fraction__1, id=474, pos=[(1,4505,45), (2,182,72)]) concat.475: bits[8] = concat(literal.471, fractional_mask__2, id=475, pos=[(1,4505,45), (2,182,72)]) fraction_up__2: bits[8] = add(concat.474, concat.475, id=479, pos=[(1,4255,9), (1,4505,45), (2,182,72)]) bit_slice.484: bits[7] = bit_slice(fraction_up__2, start=0, width=7, id=484, pos=[(1,4260,39), (1,4505,45), (2,182,72)]) bit_slice.487: bits[7] = bit_slice(f_bexp__1, start=0, width=7, id=487, pos=[(1,4215,5), (1,4495,43), (2,182,72)]) literal.478: bits[8] = literal(value=0, id=478, pos=[(1,4496,16), (2,182,72)]) literal.477: bits[7] = literal(value=0, id=477, pos=[(1,4495,19), (2,182,72)]) EXPR_MASK: bits[8] = literal(value=255, id=476, pos=[(1,39,36), (1,4488,13), (2,182,72)]) not.489: bits[7] = not(f_fraction__1, id=489, pos=[(1,4272,29), (1,4508,47), (2,182,72)]) not.490: bits[7] = not(bit_slice.484, id=490, pos=[(1,4260,39), (1,4505,45), (2,182,72)]) bit_slice.497: bits[1] = bit_slice(f_bexp__1, start=7, width=1, id=497, pos=[(1,4215,5), (1,4495,43), (2,182,72)]) and_reduce.498: bits[1] = and_reduce(bit_slice.487, id=498, pos=[(1,4215,5), (1,4495,43), (2,182,72)]) eq.482: bits[1] = eq(f_bexp__1, literal.478, id=482, pos=[(1,4488,13), (2,182,72)]) eq.481: bits[1] = eq(f_fraction__1, literal.477, id=481, pos=[(1,4488,13), (2,182,72)]) eq.480: bits[1] = eq(f_bexp__1, EXPR_MASK, id=480, pos=[(1,4488,13), (2,182,72)]) f_sign__1: bits[1] = tuple_index(f, index=0, id=499, pos=[(1,4273,21), (1,4508,47), (2,182,72)]) bit_slice.483: bits[1] = bit_slice(fraction_up__2, start=7, width=1, id=483, pos=[(1,4258,46), (1,4505,45), (2,182,72)]) fraction_integral__2: bits[7] = nor(not.489, fractional_mask__2, id=502, pos=[(1,4272,29), (1,4508,47), (2,182,72)]) fraction_integral__4: bits[7] = nor(not.490, fractional_mask__2, id=503, pos=[(1,4260,39), (1,4505,45), (2,182,72)]) or.602: bits[1] = or(bit_slice.497, and_reduce.498, id=602, pos=[(1,4495,19), (2,182,72)]) and.486: bits[1] = and(eq.482, eq.481, id=486, pos=[(1,4488,13), (2,182,72)]) and.485: bits[1] = and(eq.480, eq.481, id=485, pos=[(1,4488,13), (2,182,72)]) not.626: bits[1] = not(eq.480, id=626, pos=[(2,182,72)]) and.594: bits[1] = and(f_sign__1, bit_slice.483, id=594) literal.505: bits[8] = literal(value=134, id=505, pos=[(1,4188,17), (1,4493,35), (2,182,72)]) sel.509: bits[7] = sel(f_sign__1, cases=[fraction_integral__2, fraction_integral__4], id=509, pos=[(1,4503,19), (2,182,72)]) sign_ext.562: bits[7] = sign_ext(or.602, new_bit_count=7, id=562, pos=[(1,4495,19), (2,182,72)]) or.600: bits[1] = or(and.486, and.485, id=600, pos=[(2,182,72)]) nor.637: bits[1] = nor(not.626, eq.481, id=637, pos=[(2,182,72)]) concat.595: bits[8] = concat(literal.477, and.594, id=595) sign_ext.633: bits[7] = sign_ext(f_sign__1, new_bit_count=7, id=633, pos=[(1,4496,16), (2,182,72)]) ult.513: bits[1] = ult(f_bexp__1, literal.505, id=513, pos=[(1,4188,5), (1,4493,35), (2,182,72)]) and.563: bits[7] = and(sel.509, sign_ext.562, id=563, pos=[(1,4495,19), (2,182,72)]) or.617: bits[1] = or(or.600, nor.637, id=617, pos=[(2,182,72)]) nor.506: bits[1] = nor(bit_slice.497, and_reduce.498, id=506, pos=[(1,4215,5), (1,4495,43), (2,182,72)]) add.551: bits[8] = add(f_bexp__1, concat.595, id=551) concat.634: bits[8] = concat(literal.471, sign_ext.633, id=634, pos=[(1,4496,16), (2,182,72)]) sel.519: bits[7] = sel(ult.513, cases=[f_fraction__1, and.563], id=519, pos=[(1,4493,12), (2,182,72)]) not.635: bits[1] = not(or.617, id=635, pos=[(2,182,72)]) sel.514: bits[8] = sel(nor.506, cases=[add.551, concat.634], id=514, pos=[(1,4495,19), (2,182,72)]) concat.598: bits[2] = concat(or.600, nor.637, id=598, pos=[(2,182,72)]) literal.544: bits[1] = literal(value=1, id=544, pos=[(2,182,72)]) bit_slice.580: bits[1] = bit_slice(sel.519, start=6, width=1, id=580, pos=[(2,182,72)]) bit_slice.576: bits[6] = bit_slice(sel.519, start=0, width=6, id=576, pos=[(2,182,72)]) sign_ext.630: bits[6] = sign_ext(not.635, new_bit_count=6, id=630, pos=[(2,182,72)]) not.533: bits[1] = not(f_sign__1, id=533, pos=[(2,182,72)]) concat.597: bits[2] = concat(and.486, eq.480, id=597, pos=[(2,182,72)]) sel.517: bits[8] = sel(ult.513, cases=[f_bexp__1, sel.514], id=517, pos=[(1,4493,12), (2,182,72)]) priority_sel.581: bits[1] = priority_sel(concat.598, cases=[literal.544, literal.471], default=bit_slice.580, id=581, pos=[(2,182,72)]) and.631: bits[6] = and(bit_slice.576, sign_ext.630, id=631, pos=[(2,182,72)]) nor.534: bits[1] = nor(nor.637, not.533, id=534, pos=[(2,182,72)]) priority_sel.568: bits[8] = priority_sel(concat.597, cases=[EXPR_MASK, literal.478], default=sel.517, id=568, pos=[(2,182,72)]) concat.582: bits[7] = concat(priority_sel.581, and.631, id=582, pos=[(2,182,72)]) ret tuple.523: (bits[1], bits[8], bits[7]) = tuple(nor.534, priority_sel.568, concat.582, id=523, pos=[(2,182,72)]) }