combinational_critical_path { total_delay_ps: 661 nodes { total_delay_ps: 661 op: OP_TUPLE id: 1407 ir: "tuple.1407: (bits[1], bits[8], bits[7]) = tuple(x_sign: bits[1], x_bexp__1: bits[8], and.1451: bits[7], id=1407, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } nodes { total_delay_ps: 661 node_delay_ps: 23 op: OP_AND id: 1451 ir: "and.1451: bits[7] = and(concat.1473: bits[7], sign_ext.1450: bits[7], id=1451, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } nodes { total_delay_ps: 638 node_delay_ps: 17 op: OP_SIGN_EXT id: 1450 ir: "sign_ext.1450: bits[7] = sign_ext(ne.1515: bits[1], new_bit_count=7, id=1450, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } nodes { total_delay_ps: 621 node_delay_ps: 96 op: OP_NE id: 1515 ir: "ne.1515: bits[1] = ne(x_bexp__1: bits[8], literal.1350: bits[8], id=1515, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } nodes { total_delay_ps: 525 node_delay_ps: 135 op: OP_PRIORITY_SEL id: 1440 ir: "x_bexp__1: bits[8] = priority_sel(concat.1439, cases=[INF_EXP, literal.1350], default=f32_cast_bexp__2, id=1440, pos=[(1,1721,31), (2,226,25)])" } nodes { total_delay_ps: 390 node_delay_ps: 212 op: OP_ADD id: 1427 ir: "f32_cast_bexp__2: bits[8] = add(f32_bexp__2: bits[8], concat.1605: bits[8], id=1427)" } nodes { total_delay_ps: 178 op: OP_CONCAT id: 1605 ir: "concat.1605: bits[8] = concat(literal.1566: bits[7], renormalize: bits[1], id=1605)" } nodes { total_delay_ps: 178 node_delay_ps: 23 op: OP_AND id: 1371 ir: "renormalize: bits[1] = and(round_up: bits[1], and_reduce.1363: bits[1], id=1371, pos=[(1,1115,22), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } nodes { total_delay_ps: 155 node_delay_ps: 19 op: OP_OR id: 1362 ir: "round_up: bits[1] = or(and.1357: bits[1], and.1358: bits[1], id=1362, pos=[(1,428,13), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } nodes { total_delay_ps: 136 node_delay_ps: 23 op: OP_AND id: 1357 ir: "and.1357: bits[1] = and(round_bit: bits[1], sticky: bits[1], id=1357, pos=[(1,428,13), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } nodes { total_delay_ps: 113 node_delay_ps: 113 op: OP_NE id: 1352 ir: "sticky: bits[1] = ne(bit_slice.1345: bits[15], literal.1346: bits[15], id=1352, pos=[(0,1501,17), (0,1528,22), (1,421,43), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } nodes { op: OP_LITERAL id: 1346 ir: "literal.1346: bits[15] = literal(value=0, id=1346, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (1,421,43), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } } all_nodes { op: OP_PARAM id: 493 ir: "f32: (bits[1], bits[8], bits[23]) = param(name=f32, id=493)" } all_nodes { op: OP_TUPLE_INDEX id: 1344 ir: "f32_fraction__1: bits[23] = tuple_index(f32: (bits[1], bits[8], bits[23]), index=2, id=1344, pos=[(1,1327,30), (1,1383,33), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_BIT_SLICE id: 1345 ir: "bit_slice.1345: bits[15] = bit_slice(f32_fraction__1: bits[23], start=0, width=15, id=1345, pos=[(1,1327,30), (1,1383,33), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1346 ir: "literal.1346: bits[15] = literal(value=0, id=1346, pos=[(0,1411,19), (0,1501,17), (0,1528,22), (1,421,43), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_BIT_SLICE id: 1351 ir: "round_bit: bits[1] = bit_slice(f32_fraction__1: bits[23], start=15, width=1, id=1351, pos=[(1,415,28), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 113 op: OP_NE id: 1352 ir: "sticky: bits[1] = ne(bit_slice.1345: bits[15], literal.1346: bits[15], id=1352, pos=[(0,1501,17), (0,1528,22), (1,421,43), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_BIT_SLICE id: 1353 ir: "bit_slice.1353: bits[1] = bit_slice(f32_fraction__1: bits[23], start=16, width=1, id=1353, pos=[(1,419,57), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1357 ir: "and.1357: bits[1] = and(round_bit: bits[1], sticky: bits[1], id=1357, pos=[(1,428,13), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1358 ir: "and.1358: bits[1] = and(round_bit: bits[1], bit_slice.1353: bits[1], id=1358, pos=[(1,428,38), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_BIT_SLICE id: 1359 ir: "truncated_fraction: bits[7] = bit_slice(f32_fraction__1: bits[23], start=16, width=7, id=1359, pos=[(1,1111,39), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 19 op: OP_OR id: 1362 ir: "round_up: bits[1] = or(and.1357: bits[1], and.1358: bits[1], id=1362, pos=[(1,428,13), (1,1113,36), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 64 op: OP_AND_REDUCE id: 1363 ir: "and_reduce.1363: bits[1] = and_reduce(truncated_fraction: bits[7], id=1363, pos=[(1,1115,44), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1566 ir: "literal.1566: bits[7] = literal(value=0, id=1566)" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1371 ir: "renormalize: bits[1] = and(round_up: bits[1], and_reduce.1363: bits[1], id=1371, pos=[(1,1115,22), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_TUPLE_INDEX id: 1347 ir: "f32_bexp__2: bits[8] = tuple_index(f32: (bits[1], bits[8], bits[23]), index=1, id=1347, pos=[(1,40,22), (1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1350 ir: "literal.1350: bits[8] = literal(value=0, id=1350, pos=[(1,41,9), (1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_CONCAT id: 1605 ir: "concat.1605: bits[8] = concat(literal.1566: bits[7], renormalize: bits[1], id=1605)" } all_nodes { node_delay_ps: 96 op: OP_EQ id: 1356 ir: "eq.1356: bits[1] = eq(f32_bexp__2: bits[8], literal.1350: bits[8], id=1356, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1349 ir: "literal.1349: bits[23] = literal(value=0, id=1349, pos=[(1,41,23), (1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1348 ir: "INF_EXP: bits[8] = literal(value=255, id=1348, pos=[(1,1370,43), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1486 ir: "literal.1486: bits[6] = literal(value=0, id=1486, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 212 op: OP_ADD id: 1427 ir: "f32_cast_bexp__2: bits[8] = add(f32_bexp__2: bits[8], concat.1605: bits[8], id=1427)" } all_nodes { op: OP_NOT id: 1654 ir: "not.1654: bits[1] = not(eq.1356: bits[1], id=1654, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 125 op: OP_EQ id: 1355 ir: "eq.1355: bits[1] = eq(f32_fraction__1: bits[23], literal.1349: bits[23], id=1355, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 96 op: OP_EQ id: 1354 ir: "eq.1354: bits[1] = eq(f32_bexp__2: bits[8], INF_EXP: bits[8], id=1354, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_CONCAT id: 1606 ir: "concat.1606: bits[7] = concat(literal.1486: bits[6], round_up: bits[1], id=1606)" } all_nodes { node_delay_ps: 96 op: OP_NE id: 1516 ir: "ne.1516: bits[1] = ne(f32_cast_bexp__2: bits[8], INF_EXP: bits[8], id=1516, pos=[(1,1373,4), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 27 op: OP_NOR id: 1655 ir: "nor.1655: bits[1] = nor(not.1654: bits[1], eq.1355: bits[1], id=1655, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1361 ir: "and.1361: bits[1] = and(eq.1356: bits[1], eq.1355: bits[1], id=1361, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1360 ir: "and.1360: bits[1] = and(eq.1354: bits[1], eq.1355: bits[1], id=1360, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_NOT id: 1652 ir: "not.1652: bits[1] = not(eq.1354: bits[1], id=1652, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 198 op: OP_ADD id: 1430 ir: "f32_cast_fraction__1: bits[7] = add(truncated_fraction: bits[7], concat.1606: bits[7], id=1430)" } all_nodes { node_delay_ps: 17 op: OP_SIGN_EXT id: 1442 ir: "sign_ext.1442: bits[7] = sign_ext(ne.1516: bits[1], new_bit_count=7, id=1442, pos=[(1,1373,4), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 27 op: OP_OR id: 1505 ir: "or.1505: bits[1] = or(nor.1655: bits[1], and.1361: bits[1], and.1360: bits[1], id=1505, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 27 op: OP_NOR id: 1659 ir: "nor.1659: bits[1] = nor(not.1652: bits[1], eq.1355: bits[1], id=1659, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1443 ir: "and.1443: bits[7] = and(f32_cast_fraction__1: bits[7], sign_ext.1442: bits[7], id=1443, pos=[(1,1373,4), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 27 op: OP_NOR id: 1657 ir: "nor.1657: bits[1] = nor(eq.1354: bits[1], eq.1356: bits[1], id=1657, pos=[(1,1721,31), (2,226,25)])" } all_nodes { op: OP_CONCAT id: 1439 ir: "concat.1439: bits[2] = concat(eq.1356: bits[1], eq.1354: bits[1], id=1439, pos=[(1,1721,31), (2,226,25)])" } all_nodes { op: OP_CONCAT id: 1492 ir: "concat.1492: bits[2] = concat(or.1505: bits[1], nor.1659: bits[1], id=1492, pos=[(1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1478 ir: "literal.1478: bits[1] = literal(value=1, id=1478, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_LITERAL id: 1474 ir: "literal.1474: bits[1] = literal(value=0, id=1474, pos=[(1,1407,13), (1,1721,31), (2,226,25)])" } all_nodes { op: OP_BIT_SLICE id: 1471 ir: "bit_slice.1471: bits[1] = bit_slice(and.1443: bits[7], start=6, width=1, id=1471, pos=[(1,1721,31), (2,226,25)])" } all_nodes { op: OP_BIT_SLICE id: 1467 ir: "bit_slice.1467: bits[6] = bit_slice(and.1443: bits[7], start=0, width=6, id=1467, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 17 op: OP_SIGN_EXT id: 1597 ir: "sign_ext.1597: bits[6] = sign_ext(nor.1657: bits[1], new_bit_count=6, id=1597, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 135 op: OP_PRIORITY_SEL id: 1440 ir: "x_bexp__1: bits[8] = priority_sel(concat.1439, cases=[INF_EXP, literal.1350], default=f32_cast_bexp__2, id=1440, pos=[(1,1721,31), (2,226,25)])" } all_nodes { op: OP_TUPLE_INDEX id: 1394 ir: "f32_sign__2: bits[1] = tuple_index(f32: (bits[1], bits[8], bits[23]), index=0, id=1394, pos=[(1,1121,15), (1,1366,27), (1,1416,45), (1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 90 op: OP_PRIORITY_SEL id: 1472 ir: "priority_sel.1472: bits[1] = priority_sel(concat.1492, cases=[literal.1478, literal.1474], default=bit_slice.1471, id=1472, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1598 ir: "and.1598: bits[6] = and(bit_slice.1467: bits[6], sign_ext.1597: bits[6], id=1598, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 96 op: OP_NE id: 1515 ir: "ne.1515: bits[1] = ne(x_bexp__1: bits[8], literal.1350: bits[8], id=1515, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } all_nodes { op: OP_NOT id: 1422 ir: "not.1422: bits[1] = not(f32_sign__2: bits[1], id=1422, pos=[(1,1721,31), (2,226,25)])" } all_nodes { op: OP_CONCAT id: 1473 ir: "concat.1473: bits[7] = concat(priority_sel.1472: bits[1], and.1598: bits[6], id=1473, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 17 op: OP_SIGN_EXT id: 1450 ir: "sign_ext.1450: bits[7] = sign_ext(ne.1515: bits[1], new_bit_count=7, id=1450, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } all_nodes { node_delay_ps: 27 op: OP_NOR id: 1423 ir: "x_sign: bits[1] = nor(nor.1659: bits[1], not.1422: bits[1], id=1423, pos=[(1,1721,31), (2,226,25)])" } all_nodes { node_delay_ps: 23 op: OP_AND id: 1451 ir: "and.1451: bits[7] = and(concat.1473: bits[7], sign_ext.1450: bits[7], id=1451, pos=[(1,809,4), (1,1721,22), (2,226,25)])" } all_nodes { op: OP_TUPLE id: 1407 ir: "tuple.1407: (bits[1], bits[8], bits[7]) = tuple(x_sign: bits[1], x_bexp__1: bits[8], and.1451: bits[7], id=1407, pos=[(1,809,4), (1,1721,22), (2,226,25)])" }