package std file_number 0 "/inputs/subtree/xls/dslx/stdlib/std.x" fn __std__clzt_pow2_1(value: bits[1] id=1) -> bits[1] { ret not.2: bits[1] = not(value, id=2, pos=[(0,1584,4)]) } fn __std__combine_clzt_halfs__1(left: bits[1] id=3, right: bits[1] id=4) -> bits[2] { bit_slice.6: bits[1] = bit_slice(left, start=0, width=1, id=6, pos=[(0,1539,15)]) bit_slice.7: bits[1] = bit_slice(right, start=0, width=1, id=7, pos=[(0,1539,27)]) tuple.8: (bits[1], bits[1]) = tuple(bit_slice.6, bit_slice.7, id=8, pos=[(0,1539,10)]) literal.22: bits[1] = literal(value=1, id=22, pos=[(0,1541,9)]) tuple_index.21: bits[1] = tuple_index(tuple.8, index=0, id=21) literal.11: bits[1] = literal(value=1, id=11, pos=[(0,1540,9)]) tuple_index.10: bits[1] = tuple_index(tuple.8, index=0, id=10) literal.20: bits[1] = literal(value=1, id=20) eq.23: bits[1] = eq(literal.22, tuple_index.21, id=23) literal.26: bits[1] = literal(value=0, id=26, pos=[(0,1541,15)]) tuple_index.25: bits[1] = tuple_index(tuple.8, index=1, id=25) literal.9: bits[1] = literal(value=1, id=9) eq.12: bits[1] = eq(literal.11, tuple_index.10, id=12) literal.15: bits[1] = literal(value=1, id=15, pos=[(0,1540,15)]) tuple_index.14: bits[1] = tuple_index(tuple.8, index=1, id=14) and.24: bits[1] = and(literal.20, eq.23, id=24) eq.27: bits[1] = eq(literal.26, tuple_index.25, id=27) and.13: bits[1] = and(literal.9, eq.12, id=13) eq.16: bits[1] = eq(literal.15, tuple_index.14, id=16) and.28: bits[1] = and(and.24, eq.27, id=28) and.17: bits[1] = and(and.13, eq.16, id=17) literal.18: bits[1] = literal(value=0, id=18, pos=[(0,1540,32)]) literal.29: bits[2] = literal(value=1, id=29, pos=[(0,1541,24)]) bit_slice.30: bits[0] = bit_slice(right, start=0, width=0, id=30, pos=[(0,1541,40)]) literal.33: bits[1] = literal(value=0, id=33, pos=[(0,1542,13)]) concat.35: bits[2] = concat(and.28, and.17, id=35) concat.19: bits[2] = concat(left, literal.18, id=19, pos=[(0,1540,24)]) concat.31: bits[2] = concat(literal.29, bit_slice.30, id=31, pos=[(0,1541,24)]) concat.34: bits[2] = concat(literal.33, left, id=34, pos=[(0,1542,13)]) N: bits[32] = literal(value=1, id=5, pos=[(0,1538,22)]) literal.32: bits[1] = literal(value=1, id=32, pos=[(0,1542,8)]) ret priority_sel.36: bits[2] = priority_sel(concat.35, cases=[concat.19, concat.31], default=concat.34, id=36) } fn __std__clzt_pow2_2(value: bits[2] id=37) -> bits[2] { literal.38: bits[32] = literal(value=2, id=38, pos=[(0,1590,20)]) literal.39: bits[1] = literal(value=1, id=39, pos=[(0,1590,29)]) bit_slice.42: bits[1] = bit_slice(value, start=1, width=1, id=42, pos=[(0,1591,40)]) bit_slice.44: bits[1] = bit_slice(value, start=0, width=1, id=44, pos=[(0,1591,70)]) shrl.40: bits[32] = shrl(literal.38, literal.39, id=40, pos=[(0,1590,20)]) invoke.43: bits[1] = invoke(bit_slice.42, to_apply=__std__clzt_pow2_1, id=43, pos=[(0,1591,34)]) invoke.45: bits[1] = invoke(bit_slice.44, to_apply=__std__clzt_pow2_1, id=45, pos=[(0,1591,64)]) N_HALF: bits[32] = zero_ext(shrl.40, new_bit_count=32, id=41) ret invoke.46: bits[2] = invoke(invoke.43, invoke.45, to_apply=__std__combine_clzt_halfs__1, id=46, pos=[(0,1591,22)]) } fn __std__combine_clzt_halfs__2(left: bits[2] id=47, right: bits[2] id=48) -> bits[3] { bit_slice.50: bits[1] = bit_slice(left, start=1, width=1, id=50, pos=[(0,1539,15)]) bit_slice.51: bits[1] = bit_slice(right, start=1, width=1, id=51, pos=[(0,1539,27)]) tuple.52: (bits[1], bits[1]) = tuple(bit_slice.50, bit_slice.51, id=52, pos=[(0,1539,10)]) literal.66: bits[1] = literal(value=1, id=66, pos=[(0,1541,9)]) tuple_index.65: bits[1] = tuple_index(tuple.52, index=0, id=65) literal.55: bits[1] = literal(value=1, id=55, pos=[(0,1540,9)]) tuple_index.54: bits[1] = tuple_index(tuple.52, index=0, id=54) literal.64: bits[1] = literal(value=1, id=64) eq.67: bits[1] = eq(literal.66, tuple_index.65, id=67) literal.70: bits[1] = literal(value=0, id=70, pos=[(0,1541,15)]) tuple_index.69: bits[1] = tuple_index(tuple.52, index=1, id=69) literal.53: bits[1] = literal(value=1, id=53) eq.56: bits[1] = eq(literal.55, tuple_index.54, id=56) literal.59: bits[1] = literal(value=1, id=59, pos=[(0,1540,15)]) tuple_index.58: bits[1] = tuple_index(tuple.52, index=1, id=58) and.68: bits[1] = and(literal.64, eq.67, id=68) eq.71: bits[1] = eq(literal.70, tuple_index.69, id=71) and.57: bits[1] = and(literal.53, eq.56, id=57) eq.60: bits[1] = eq(literal.59, tuple_index.58, id=60) and.72: bits[1] = and(and.68, eq.71, id=72) and.61: bits[1] = and(and.57, eq.60, id=61) literal.62: bits[1] = literal(value=0, id=62, pos=[(0,1540,32)]) literal.73: bits[2] = literal(value=1, id=73, pos=[(0,1541,24)]) bit_slice.74: bits[1] = bit_slice(right, start=0, width=1, id=74, pos=[(0,1541,40)]) literal.77: bits[1] = literal(value=0, id=77, pos=[(0,1542,13)]) concat.79: bits[2] = concat(and.72, and.61, id=79) concat.63: bits[3] = concat(left, literal.62, id=63, pos=[(0,1540,24)]) concat.75: bits[3] = concat(literal.73, bit_slice.74, id=75, pos=[(0,1541,24)]) concat.78: bits[3] = concat(literal.77, left, id=78, pos=[(0,1542,13)]) N: bits[32] = literal(value=2, id=49, pos=[(0,1538,22)]) literal.76: bits[1] = literal(value=1, id=76, pos=[(0,1542,8)]) ret priority_sel.80: bits[3] = priority_sel(concat.79, cases=[concat.63, concat.75], default=concat.78, id=80) } top fn __std__clzt_pow2_4(value: bits[4] id=81) -> bits[3] { literal.82: bits[32] = literal(value=4, id=82, pos=[(0,1595,20)]) literal.83: bits[1] = literal(value=1, id=83, pos=[(0,1595,29)]) bit_slice.86: bits[2] = bit_slice(value, start=2, width=2, id=86, pos=[(0,1596,40)]) bit_slice.88: bits[2] = bit_slice(value, start=0, width=2, id=88, pos=[(0,1596,70)]) shrl.84: bits[32] = shrl(literal.82, literal.83, id=84, pos=[(0,1595,20)]) invoke.87: bits[2] = invoke(bit_slice.86, to_apply=__std__clzt_pow2_2, id=87, pos=[(0,1596,34)]) invoke.89: bits[2] = invoke(bit_slice.88, to_apply=__std__clzt_pow2_2, id=89, pos=[(0,1596,64)]) N_HALF: bits[32] = zero_ext(shrl.84, new_bit_count=32, id=85) ret invoke.90: bits[3] = invoke(invoke.87, invoke.89, to_apply=__std__combine_clzt_halfs__2, id=90, pos=[(0,1596,22)]) }