module __float64__fma( input wire [63:0] a, input wire [63:0] b, input wire [63:0] c, output wire [63:0] out ); // lint_off MULTIPLY function automatic [105:0] umul106b_53b_x_53b (input reg [52:0] lhs, input reg [52:0] rhs); begin umul106b_53b_x_53b = lhs * rhs; end endfunction // lint_on MULTIPLY function automatic priority_sel_1b_2way (input reg [1:0] sel, input reg case0, input reg case1, input reg default_value); begin casez (sel) 2'b?1: begin priority_sel_1b_2way = case0; end 2'b10: begin priority_sel_1b_2way = case1; end 2'b00: begin priority_sel_1b_2way = default_value; end default: begin // Propagate X priority_sel_1b_2way = 1'dx; end endcase end endfunction wire [10:0] a_bexp__1; wire [10:0] literal_2029; wire [10:0] b_bexp__1; wire cancel__1; wire bnot__1; wire [51:0] a_fraction__1; wire [51:0] b_fraction__1; wire eq_2035; wire eq_2036; wire [52:0] a_significand__1; wire [52:0] b_significand__1; wire nor_2041; wire [11:0] add_2042; wire [105:0] umul_2043; wire [10:0] max_exp; wire [51:0] literal_2046; wire [105:0] full_product; wire eq_2050; wire eq_2051; wire eq_2052; wire eq_2053; wire [12:0] exp; wire [11:0] literal_2056; wire in_upper_binade; wire [12:0] exp__1; wire has_inf_arg; wire [12:0] result_exp__3; wire [12:0] result_exp__4; wire is_subnormal; wire has_0_arg; wire is_result_nan__1; wire [11:0] result_exp__5; wire [11:0] literal_2079; wire [10:0] c_bexp__2; wire [11:0] ab_bexp__2; wire [10:0] bnot__2; wire [12:0] ab_bexp_extended__1; wire [12:0] bnot_extended__2; wire [12:0] full_result; wire overflow_detected; wire nc; wire [11:0] narrowed_result; wire [11:0] ab_bexpor_mask__2; wire [105:0] result_fraction__5; wire [11:0] result; wire [105:0] result_fraction__6; wire [11:0] exp_difference; wire [105:0] result_fraction__7; wire [159:0] literal_2106; wire [11:0] rshift_ab; wire [51:0] c_fraction__2; wire [11:0] rshift_c; wire [105:0] ab_fraction__2; wire [159:0] shll_2112; wire [52:0] sign_ext_2114; wire [159:0] shll_2115; wire a_sign__1; wire b_sign__1; wire [105:0] literal_2126; wire [52:0] wide_c__3; wire result_sign__3; wire [159:0] wide_ab; wire [158:0] literal_2133; wire [159:0] wide_c__2; wire [159:0] shifted_ab; wire [159:0] sticky_ab; wire [159:0] shifted_c; wire [159:0] sticky_c; wire c_sign__2; wire ab_sign__2; wire greater_sign; wire [160:0] shifted_ab__1_squeezed; wire [160:0] shifted_c__1_squeezed; wire [160:0] shifted_ab__2_squeezed; wire [160:0] shifted_c__2_squeezed; wire [161:0] shifted_ab__2; wire [161:0] shifted_c__2; wire [161:0] sum_fraction; wire [160:0] abs_fraction__2; wire [160:0] reverse_2162; wire [161:0] one_hot_2163; wire [7:0] encode_2164; wire cancel__2; wire carry_bit__2; wire [8:0] concat_2168; wire [8:0] add_2173; wire [159:0] carry_fraction__1; wire [2:0] concat_2181; wire [159:0] carry_fraction__4; wire [159:0] cancel_fraction__2; wire [159:0] shifted_fraction; wire [106:0] normal_chunk; wire [106:0] half_of_extra; wire [1:0] half_way_chunk; wire [53:0] concat_2193; wire [53:0] add_2196; wire [53:0] rounded_fraction__1; wire [11:0] greater_exp; wire rounding_carry; wire [8:0] sub_2203; wire fraction_is_zero; wire [12:0] bexp_associative_element__1; wire [12:0] bexp_associative_element__4; wire [12:0] bexp__1; wire [12:0] bexp__2; wire eq_2217; wire eq_2218; wire eq_2219; wire eq_2220; wire [11:0] bexp__6; wire and_2225; wire is_operand_inf; wire and_reduce_2234; wire has_pos_inf; wire has_neg_inf; wire is_result_nan; wire result_sign; wire [51:0] result_fraction; wire result_sign__1; wire [51:0] result_fraction__3; wire [3:0] one_hot_2264; wire result_sign__2; wire [10:0] result_exp__2; wire [51:0] result_fraction__4; assign a_bexp__1 = a[62:52]; assign literal_2029 = 11'h000; assign b_bexp__1 = b[62:52]; assign cancel__1 = 1'h0; assign bnot__1 = 1'h1; assign a_fraction__1 = a[51:0]; assign b_fraction__1 = b[51:0]; assign eq_2035 = a_bexp__1 == literal_2029; assign eq_2036 = b_bexp__1 == literal_2029; assign a_significand__1 = {bnot__1, a_fraction__1}; assign b_significand__1 = {bnot__1, b_fraction__1}; assign nor_2041 = ~(eq_2035 | eq_2036); assign add_2042 = {cancel__1, a_bexp__1} + {cancel__1, b_bexp__1}; assign umul_2043 = umul106b_53b_x_53b(a_significand__1, b_significand__1); assign max_exp = 11'h7ff; assign literal_2046 = 52'h0_0000_0000_0000; assign full_product = umul_2043 & {106{nor_2041}}; assign eq_2050 = a_bexp__1 == max_exp; assign eq_2051 = a_fraction__1 == literal_2046; assign eq_2052 = b_bexp__1 == max_exp; assign eq_2053 = b_fraction__1 == literal_2046; assign exp = {cancel__1, add_2042} + 13'h1c01; assign literal_2056 = 12'h000; assign in_upper_binade = full_product[105]; assign exp__1 = exp & {13{nor_2041}}; assign has_inf_arg = eq_2050 & eq_2051 | eq_2052 & eq_2053; assign result_exp__3 = exp__1 + {literal_2056, in_upper_binade}; assign result_exp__4 = has_inf_arg ? 13'h0fff : result_exp__3; assign is_subnormal = $signed(result_exp__4) <= $signed(13'h0000); assign has_0_arg = eq_2035 | eq_2036; assign is_result_nan__1 = ~(~eq_2050 | eq_2051) | ~(~eq_2052 | eq_2053) | has_0_arg & has_inf_arg; assign result_exp__5 = result_exp__4[11:0] & {12{~is_subnormal}}; assign literal_2079 = 12'hfff; assign c_bexp__2 = c[62:52]; assign ab_bexp__2 = is_result_nan__1 ? literal_2079 : result_exp__5; assign bnot__2 = ~c_bexp__2; assign ab_bexp_extended__1 = {cancel__1, ab_bexp__2}; assign bnot_extended__2 = {2'h1, bnot__2}; assign full_result = ab_bexp_extended__1 + bnot_extended__2; assign overflow_detected = full_result[12]; assign nc = ~overflow_detected; assign narrowed_result = full_result[11:0]; assign ab_bexpor_mask__2 = {12{nc}}; assign result_fraction__5 = in_upper_binade ? full_product : {full_product[104:0], cancel__1}; assign result = narrowed_result ^ ab_bexpor_mask__2; assign result_fraction__6 = result_fraction__5 & {106{~has_inf_arg}}; assign exp_difference = result + {literal_2029, overflow_detected}; assign result_fraction__7 = (-result_exp__4[11:0] & {12{is_subnormal}}) >= 12'h06a ? 106'h000_0000_0000_0000_0000_0000_0000 : result_fraction__6 >> (-result_exp__4[11:0] & {12{is_subnormal}}); assign literal_2106 = 160'hffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff; assign rshift_ab = exp_difference & ab_bexpor_mask__2; assign c_fraction__2 = c[51:0]; assign rshift_c = exp_difference & {12{overflow_detected}}; assign ab_fraction__2 = is_result_nan__1 ? 106'h300_0000_0000_0000_0000_0000_0000 : result_fraction__7; assign shll_2112 = rshift_ab >= 12'h0a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : literal_2106 << rshift_ab; assign sign_ext_2114 = {53{c_bexp__2 != literal_2029}}; assign shll_2115 = rshift_c >= 12'h0a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : literal_2106 << rshift_c; assign a_sign__1 = a[63:63]; assign b_sign__1 = b[63:63]; assign literal_2126 = 106'h000_0000_0000_0000_0000_0000_0000; assign wide_c__3 = {bnot__1, c_fraction__2} & sign_ext_2114; assign result_sign__3 = a_sign__1 ^ b_sign__1; assign wide_ab = {ab_fraction__2, 54'h00_0000_0000_0000}; assign literal_2133 = 159'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000; assign wide_c__2 = {wide_c__3, 107'h000_0000_0000_0000_0000_0000_0000}; assign shifted_ab = rshift_ab >= 12'h0a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : wide_ab >> rshift_ab; assign sticky_ab = {literal_2133, ~(~ab_fraction__2 | shll_2112[159:54]) != literal_2126}; assign shifted_c = rshift_c >= 12'h0a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : wide_c__2 >> rshift_c; assign sticky_c = {literal_2133, ~({cancel__1, ~c_fraction__2} | ~sign_ext_2114 | shll_2115[159:107]) != 53'h00_0000_0000_0000}; assign c_sign__2 = c[63:63]; assign ab_sign__2 = ~(is_result_nan__1 | ~result_sign__3); assign greater_sign = overflow_detected ? ab_sign__2 : c_sign__2; assign shifted_ab__1_squeezed = {cancel__1, shifted_ab | sticky_ab}; assign shifted_c__1_squeezed = {cancel__1, shifted_c | sticky_c}; assign shifted_ab__2_squeezed = ab_sign__2 ^ greater_sign ? -shifted_ab__1_squeezed : shifted_ab__1_squeezed; assign shifted_c__2_squeezed = c_sign__2 ^ greater_sign ? -shifted_c__1_squeezed : shifted_c__1_squeezed; assign shifted_ab__2 = {{1{shifted_ab__2_squeezed[160]}}, shifted_ab__2_squeezed}; assign shifted_c__2 = {{1{shifted_c__2_squeezed[160]}}, shifted_c__2_squeezed}; assign sum_fraction = shifted_ab__2 + shifted_c__2; assign abs_fraction__2 = sum_fraction[161] ? -sum_fraction[160:0] : sum_fraction[160:0]; assign reverse_2162 = {abs_fraction__2[0], abs_fraction__2[1], abs_fraction__2[2], abs_fraction__2[3], abs_fraction__2[4], abs_fraction__2[5], abs_fraction__2[6], abs_fraction__2[7], abs_fraction__2[8], abs_fraction__2[9], abs_fraction__2[10], abs_fraction__2[11], abs_fraction__2[12], abs_fraction__2[13], abs_fraction__2[14], abs_fraction__2[15], abs_fraction__2[16], abs_fraction__2[17], abs_fraction__2[18], abs_fraction__2[19], abs_fraction__2[20], abs_fraction__2[21], abs_fraction__2[22], abs_fraction__2[23], abs_fraction__2[24], abs_fraction__2[25], abs_fraction__2[26], abs_fraction__2[27], abs_fraction__2[28], abs_fraction__2[29], abs_fraction__2[30], abs_fraction__2[31], abs_fraction__2[32], abs_fraction__2[33], abs_fraction__2[34], abs_fraction__2[35], abs_fraction__2[36], abs_fraction__2[37], abs_fraction__2[38], abs_fraction__2[39], abs_fraction__2[40], abs_fraction__2[41], abs_fraction__2[42], abs_fraction__2[43], abs_fraction__2[44], abs_fraction__2[45], abs_fraction__2[46], abs_fraction__2[47], abs_fraction__2[48], abs_fraction__2[49], abs_fraction__2[50], abs_fraction__2[51], abs_fraction__2[52], abs_fraction__2[53], abs_fraction__2[54], abs_fraction__2[55], abs_fraction__2[56], abs_fraction__2[57], abs_fraction__2[58], abs_fraction__2[59], abs_fraction__2[60], abs_fraction__2[61], abs_fraction__2[62], abs_fraction__2[63], abs_fraction__2[64], abs_fraction__2[65], abs_fraction__2[66], abs_fraction__2[67], abs_fraction__2[68], abs_fraction__2[69], abs_fraction__2[70], abs_fraction__2[71], abs_fraction__2[72], abs_fraction__2[73], abs_fraction__2[74], abs_fraction__2[75], abs_fraction__2[76], abs_fraction__2[77], abs_fraction__2[78], abs_fraction__2[79], abs_fraction__2[80], abs_fraction__2[81], abs_fraction__2[82], abs_fraction__2[83], abs_fraction__2[84], abs_fraction__2[85], abs_fraction__2[86], abs_fraction__2[87], abs_fraction__2[88], abs_fraction__2[89], abs_fraction__2[90], abs_fraction__2[91], abs_fraction__2[92], abs_fraction__2[93], abs_fraction__2[94], abs_fraction__2[95], abs_fraction__2[96], abs_fraction__2[97], abs_fraction__2[98], abs_fraction__2[99], abs_fraction__2[100], abs_fraction__2[101], abs_fraction__2[102], abs_fraction__2[103], abs_fraction__2[104], abs_fraction__2[105], abs_fraction__2[106], abs_fraction__2[107], abs_fraction__2[108], abs_fraction__2[109], abs_fraction__2[110], abs_fraction__2[111], abs_fraction__2[112], abs_fraction__2[113], abs_fraction__2[114], abs_fraction__2[115], abs_fraction__2[116], abs_fraction__2[117], abs_fraction__2[118], abs_fraction__2[119], abs_fraction__2[120], abs_fraction__2[121], abs_fraction__2[122], abs_fraction__2[123], abs_fraction__2[124], abs_fraction__2[125], abs_fraction__2[126], abs_fraction__2[127], abs_fraction__2[128], abs_fraction__2[129], abs_fraction__2[130], abs_fraction__2[131], abs_fraction__2[132], abs_fraction__2[133], abs_fraction__2[134], abs_fraction__2[135], abs_fraction__2[136], abs_fraction__2[137], abs_fraction__2[138], abs_fraction__2[139], abs_fraction__2[140], abs_fraction__2[141], abs_fraction__2[142], abs_fraction__2[143], abs_fraction__2[144], abs_fraction__2[145], abs_fraction__2[146], abs_fraction__2[147], abs_fraction__2[148], abs_fraction__2[149], abs_fraction__2[150], abs_fraction__2[151], abs_fraction__2[152], abs_fraction__2[153], abs_fraction__2[154], abs_fraction__2[155], abs_fraction__2[156], abs_fraction__2[157], abs_fraction__2[158], abs_fraction__2[159], abs_fraction__2[160]}; assign one_hot_2163 = {reverse_2162[160:0] == 161'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[160] && reverse_2162[159:0] == 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[159] && reverse_2162[158:0] == 159'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[158] && reverse_2162[157:0] == 158'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[157] && reverse_2162[156:0] == 157'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[156] && reverse_2162[155:0] == 156'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[155] && reverse_2162[154:0] == 155'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[154] && reverse_2162[153:0] == 154'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[153] && reverse_2162[152:0] == 153'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[152] && reverse_2162[151:0] == 152'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[151] && reverse_2162[150:0] == 151'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[150] && reverse_2162[149:0] == 150'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[149] && reverse_2162[148:0] == 149'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[148] && reverse_2162[147:0] == 148'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[147] && reverse_2162[146:0] == 147'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[146] && reverse_2162[145:0] == 146'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[145] && reverse_2162[144:0] == 145'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[144] && reverse_2162[143:0] == 144'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[143] && reverse_2162[142:0] == 143'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[142] && reverse_2162[141:0] == 142'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[141] && reverse_2162[140:0] == 141'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[140] && reverse_2162[139:0] == 140'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[139] && reverse_2162[138:0] == 139'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[138] && reverse_2162[137:0] == 138'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[137] && reverse_2162[136:0] == 137'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[136] && reverse_2162[135:0] == 136'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[135] && reverse_2162[134:0] == 135'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[134] && reverse_2162[133:0] == 134'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[133] && reverse_2162[132:0] == 133'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[132] && reverse_2162[131:0] == 132'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[131] && reverse_2162[130:0] == 131'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[130] && reverse_2162[129:0] == 130'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[129] && reverse_2162[128:0] == 129'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[128] && reverse_2162[127:0] == 128'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[127] && reverse_2162[126:0] == 127'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[126] && reverse_2162[125:0] == 126'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[125] && reverse_2162[124:0] == 125'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[124] && reverse_2162[123:0] == 124'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[123] && reverse_2162[122:0] == 123'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[122] && reverse_2162[121:0] == 122'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[121] && reverse_2162[120:0] == 121'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2162[120] && reverse_2162[119:0] == 120'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2162[119] && reverse_2162[118:0] == 119'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2162[118] && reverse_2162[117:0] == 118'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2162[117] && reverse_2162[116:0] == 117'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2162[116] && reverse_2162[115:0] == 116'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2162[115] && reverse_2162[114:0] == 115'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2162[114] && reverse_2162[113:0] == 114'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2162[113] && reverse_2162[112:0] == 113'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2162[112] && reverse_2162[111:0] == 112'h0000_0000_0000_0000_0000_0000_0000, reverse_2162[111] && reverse_2162[110:0] == 111'h0000_0000_0000_0000_0000_0000_0000, reverse_2162[110] && reverse_2162[109:0] == 110'h0000_0000_0000_0000_0000_0000_0000, reverse_2162[109] && reverse_2162[108:0] == 109'h0000_0000_0000_0000_0000_0000_0000, reverse_2162[108] && reverse_2162[107:0] == 108'h000_0000_0000_0000_0000_0000_0000, reverse_2162[107] && reverse_2162[106:0] == 107'h000_0000_0000_0000_0000_0000_0000, reverse_2162[106] && reverse_2162[105:0] == 106'h000_0000_0000_0000_0000_0000_0000, reverse_2162[105] && reverse_2162[104:0] == 105'h000_0000_0000_0000_0000_0000_0000, reverse_2162[104] && reverse_2162[103:0] == 104'h00_0000_0000_0000_0000_0000_0000, reverse_2162[103] && reverse_2162[102:0] == 103'h00_0000_0000_0000_0000_0000_0000, reverse_2162[102] && reverse_2162[101:0] == 102'h00_0000_0000_0000_0000_0000_0000, reverse_2162[101] && reverse_2162[100:0] == 101'h00_0000_0000_0000_0000_0000_0000, reverse_2162[100] && reverse_2162[99:0] == 100'h0_0000_0000_0000_0000_0000_0000, reverse_2162[99] && reverse_2162[98:0] == 99'h0_0000_0000_0000_0000_0000_0000, reverse_2162[98] && reverse_2162[97:0] == 98'h0_0000_0000_0000_0000_0000_0000, reverse_2162[97] && reverse_2162[96:0] == 97'h0_0000_0000_0000_0000_0000_0000, reverse_2162[96] && reverse_2162[95:0] == 96'h0000_0000_0000_0000_0000_0000, reverse_2162[95] && reverse_2162[94:0] == 95'h0000_0000_0000_0000_0000_0000, reverse_2162[94] && reverse_2162[93:0] == 94'h0000_0000_0000_0000_0000_0000, reverse_2162[93] && reverse_2162[92:0] == 93'h0000_0000_0000_0000_0000_0000, reverse_2162[92] && reverse_2162[91:0] == 92'h000_0000_0000_0000_0000_0000, reverse_2162[91] && reverse_2162[90:0] == 91'h000_0000_0000_0000_0000_0000, reverse_2162[90] && reverse_2162[89:0] == 90'h000_0000_0000_0000_0000_0000, reverse_2162[89] && reverse_2162[88:0] == 89'h000_0000_0000_0000_0000_0000, reverse_2162[88] && reverse_2162[87:0] == 88'h00_0000_0000_0000_0000_0000, reverse_2162[87] && reverse_2162[86:0] == 87'h00_0000_0000_0000_0000_0000, reverse_2162[86] && reverse_2162[85:0] == 86'h00_0000_0000_0000_0000_0000, reverse_2162[85] && reverse_2162[84:0] == 85'h00_0000_0000_0000_0000_0000, reverse_2162[84] && reverse_2162[83:0] == 84'h0_0000_0000_0000_0000_0000, reverse_2162[83] && reverse_2162[82:0] == 83'h0_0000_0000_0000_0000_0000, reverse_2162[82] && reverse_2162[81:0] == 82'h0_0000_0000_0000_0000_0000, reverse_2162[81] && reverse_2162[80:0] == 81'h0_0000_0000_0000_0000_0000, reverse_2162[80] && reverse_2162[79:0] == 80'h0000_0000_0000_0000_0000, reverse_2162[79] && reverse_2162[78:0] == 79'h0000_0000_0000_0000_0000, reverse_2162[78] && reverse_2162[77:0] == 78'h0000_0000_0000_0000_0000, reverse_2162[77] && reverse_2162[76:0] == 77'h0000_0000_0000_0000_0000, reverse_2162[76] && reverse_2162[75:0] == 76'h000_0000_0000_0000_0000, reverse_2162[75] && reverse_2162[74:0] == 75'h000_0000_0000_0000_0000, reverse_2162[74] && reverse_2162[73:0] == 74'h000_0000_0000_0000_0000, reverse_2162[73] && reverse_2162[72:0] == 73'h000_0000_0000_0000_0000, reverse_2162[72] && reverse_2162[71:0] == 72'h00_0000_0000_0000_0000, reverse_2162[71] && reverse_2162[70:0] == 71'h00_0000_0000_0000_0000, reverse_2162[70] && reverse_2162[69:0] == 70'h00_0000_0000_0000_0000, reverse_2162[69] && reverse_2162[68:0] == 69'h00_0000_0000_0000_0000, reverse_2162[68] && reverse_2162[67:0] == 68'h0_0000_0000_0000_0000, reverse_2162[67] && reverse_2162[66:0] == 67'h0_0000_0000_0000_0000, reverse_2162[66] && reverse_2162[65:0] == 66'h0_0000_0000_0000_0000, reverse_2162[65] && reverse_2162[64:0] == 65'h0_0000_0000_0000_0000, reverse_2162[64] && reverse_2162[63:0] == 64'h0000_0000_0000_0000, reverse_2162[63] && reverse_2162[62:0] == 63'h0000_0000_0000_0000, reverse_2162[62] && reverse_2162[61:0] == 62'h0000_0000_0000_0000, reverse_2162[61] && reverse_2162[60:0] == 61'h0000_0000_0000_0000, reverse_2162[60] && reverse_2162[59:0] == 60'h000_0000_0000_0000, reverse_2162[59] && reverse_2162[58:0] == 59'h000_0000_0000_0000, reverse_2162[58] && reverse_2162[57:0] == 58'h000_0000_0000_0000, reverse_2162[57] && reverse_2162[56:0] == 57'h000_0000_0000_0000, reverse_2162[56] && reverse_2162[55:0] == 56'h00_0000_0000_0000, reverse_2162[55] && reverse_2162[54:0] == 55'h00_0000_0000_0000, reverse_2162[54] && reverse_2162[53:0] == 54'h00_0000_0000_0000, reverse_2162[53] && reverse_2162[52:0] == 53'h00_0000_0000_0000, reverse_2162[52] && reverse_2162[51:0] == 52'h0_0000_0000_0000, reverse_2162[51] && reverse_2162[50:0] == 51'h0_0000_0000_0000, reverse_2162[50] && reverse_2162[49:0] == 50'h0_0000_0000_0000, reverse_2162[49] && reverse_2162[48:0] == 49'h0_0000_0000_0000, reverse_2162[48] && reverse_2162[47:0] == 48'h0000_0000_0000, reverse_2162[47] && reverse_2162[46:0] == 47'h0000_0000_0000, reverse_2162[46] && reverse_2162[45:0] == 46'h0000_0000_0000, reverse_2162[45] && reverse_2162[44:0] == 45'h0000_0000_0000, reverse_2162[44] && reverse_2162[43:0] == 44'h000_0000_0000, reverse_2162[43] && reverse_2162[42:0] == 43'h000_0000_0000, reverse_2162[42] && reverse_2162[41:0] == 42'h000_0000_0000, reverse_2162[41] && reverse_2162[40:0] == 41'h000_0000_0000, reverse_2162[40] && reverse_2162[39:0] == 40'h00_0000_0000, reverse_2162[39] && reverse_2162[38:0] == 39'h00_0000_0000, reverse_2162[38] && reverse_2162[37:0] == 38'h00_0000_0000, reverse_2162[37] && reverse_2162[36:0] == 37'h00_0000_0000, reverse_2162[36] && reverse_2162[35:0] == 36'h0_0000_0000, reverse_2162[35] && reverse_2162[34:0] == 35'h0_0000_0000, reverse_2162[34] && reverse_2162[33:0] == 34'h0_0000_0000, reverse_2162[33] && reverse_2162[32:0] == 33'h0_0000_0000, reverse_2162[32] && reverse_2162[31:0] == 32'h0000_0000, reverse_2162[31] && reverse_2162[30:0] == 31'h0000_0000, reverse_2162[30] && reverse_2162[29:0] == 30'h0000_0000, reverse_2162[29] && reverse_2162[28:0] == 29'h0000_0000, reverse_2162[28] && reverse_2162[27:0] == 28'h000_0000, reverse_2162[27] && reverse_2162[26:0] == 27'h000_0000, reverse_2162[26] && reverse_2162[25:0] == 26'h000_0000, reverse_2162[25] && reverse_2162[24:0] == 25'h000_0000, reverse_2162[24] && reverse_2162[23:0] == 24'h00_0000, reverse_2162[23] && reverse_2162[22:0] == 23'h00_0000, reverse_2162[22] && reverse_2162[21:0] == 22'h00_0000, reverse_2162[21] && reverse_2162[20:0] == 21'h00_0000, reverse_2162[20] && reverse_2162[19:0] == 20'h0_0000, reverse_2162[19] && reverse_2162[18:0] == 19'h0_0000, reverse_2162[18] && reverse_2162[17:0] == 18'h0_0000, reverse_2162[17] && reverse_2162[16:0] == 17'h0_0000, reverse_2162[16] && reverse_2162[15:0] == 16'h0000, reverse_2162[15] && reverse_2162[14:0] == 15'h0000, reverse_2162[14] && reverse_2162[13:0] == 14'h0000, reverse_2162[13] && reverse_2162[12:0] == 13'h0000, reverse_2162[12] && reverse_2162[11:0] == 12'h000, reverse_2162[11] && reverse_2162[10:0] == 11'h000, reverse_2162[10] && reverse_2162[9:0] == 10'h000, reverse_2162[9] && reverse_2162[8:0] == 9'h000, reverse_2162[8] && reverse_2162[7:0] == 8'h00, reverse_2162[7] && reverse_2162[6:0] == 7'h00, reverse_2162[6] && reverse_2162[5:0] == 6'h00, reverse_2162[5] && reverse_2162[4:0] == 5'h00, reverse_2162[4] && reverse_2162[3:0] == 4'h0, reverse_2162[3] && reverse_2162[2:0] == 3'h0, reverse_2162[2] && reverse_2162[1:0] == 2'h0, reverse_2162[1] && !reverse_2162[0], reverse_2162[0]}; assign encode_2164 = {one_hot_2163[128] | one_hot_2163[129] | one_hot_2163[130] | one_hot_2163[131] | one_hot_2163[132] | one_hot_2163[133] | one_hot_2163[134] | one_hot_2163[135] | one_hot_2163[136] | one_hot_2163[137] | one_hot_2163[138] | one_hot_2163[139] | one_hot_2163[140] | one_hot_2163[141] | one_hot_2163[142] | one_hot_2163[143] | one_hot_2163[144] | one_hot_2163[145] | one_hot_2163[146] | one_hot_2163[147] | one_hot_2163[148] | one_hot_2163[149] | one_hot_2163[150] | one_hot_2163[151] | one_hot_2163[152] | one_hot_2163[153] | one_hot_2163[154] | one_hot_2163[155] | one_hot_2163[156] | one_hot_2163[157] | one_hot_2163[158] | one_hot_2163[159] | one_hot_2163[160] | one_hot_2163[161], one_hot_2163[64] | one_hot_2163[65] | one_hot_2163[66] | one_hot_2163[67] | one_hot_2163[68] | one_hot_2163[69] | one_hot_2163[70] | one_hot_2163[71] | one_hot_2163[72] | one_hot_2163[73] | one_hot_2163[74] | one_hot_2163[75] | one_hot_2163[76] | one_hot_2163[77] | one_hot_2163[78] | one_hot_2163[79] | one_hot_2163[80] | one_hot_2163[81] | one_hot_2163[82] | one_hot_2163[83] | one_hot_2163[84] | one_hot_2163[85] | one_hot_2163[86] | one_hot_2163[87] | one_hot_2163[88] | one_hot_2163[89] | one_hot_2163[90] | one_hot_2163[91] | one_hot_2163[92] | one_hot_2163[93] | one_hot_2163[94] | one_hot_2163[95] | one_hot_2163[96] | one_hot_2163[97] | one_hot_2163[98] | one_hot_2163[99] | one_hot_2163[100] | one_hot_2163[101] | one_hot_2163[102] | one_hot_2163[103] | one_hot_2163[104] | one_hot_2163[105] | one_hot_2163[106] | one_hot_2163[107] | one_hot_2163[108] | one_hot_2163[109] | one_hot_2163[110] | one_hot_2163[111] | one_hot_2163[112] | one_hot_2163[113] | one_hot_2163[114] | one_hot_2163[115] | one_hot_2163[116] | one_hot_2163[117] | one_hot_2163[118] | one_hot_2163[119] | one_hot_2163[120] | one_hot_2163[121] | one_hot_2163[122] | one_hot_2163[123] | one_hot_2163[124] | one_hot_2163[125] | one_hot_2163[126] | one_hot_2163[127], one_hot_2163[32] | one_hot_2163[33] | one_hot_2163[34] | one_hot_2163[35] | one_hot_2163[36] | one_hot_2163[37] | one_hot_2163[38] | one_hot_2163[39] | one_hot_2163[40] | one_hot_2163[41] | one_hot_2163[42] | one_hot_2163[43] | one_hot_2163[44] | one_hot_2163[45] | one_hot_2163[46] | one_hot_2163[47] | one_hot_2163[48] | one_hot_2163[49] | one_hot_2163[50] | one_hot_2163[51] | one_hot_2163[52] | one_hot_2163[53] | one_hot_2163[54] | one_hot_2163[55] | one_hot_2163[56] | one_hot_2163[57] | one_hot_2163[58] | one_hot_2163[59] | one_hot_2163[60] | one_hot_2163[61] | one_hot_2163[62] | one_hot_2163[63] | one_hot_2163[96] | one_hot_2163[97] | one_hot_2163[98] | one_hot_2163[99] | one_hot_2163[100] | one_hot_2163[101] | one_hot_2163[102] | one_hot_2163[103] | one_hot_2163[104] | one_hot_2163[105] | one_hot_2163[106] | one_hot_2163[107] | one_hot_2163[108] | one_hot_2163[109] | one_hot_2163[110] | one_hot_2163[111] | one_hot_2163[112] | one_hot_2163[113] | one_hot_2163[114] | one_hot_2163[115] | one_hot_2163[116] | one_hot_2163[117] | one_hot_2163[118] | one_hot_2163[119] | one_hot_2163[120] | one_hot_2163[121] | one_hot_2163[122] | one_hot_2163[123] | one_hot_2163[124] | one_hot_2163[125] | one_hot_2163[126] | one_hot_2163[127] | one_hot_2163[160] | one_hot_2163[161], one_hot_2163[16] | one_hot_2163[17] | one_hot_2163[18] | one_hot_2163[19] | one_hot_2163[20] | one_hot_2163[21] | one_hot_2163[22] | one_hot_2163[23] | one_hot_2163[24] | one_hot_2163[25] | one_hot_2163[26] | one_hot_2163[27] | one_hot_2163[28] | one_hot_2163[29] | one_hot_2163[30] | one_hot_2163[31] | one_hot_2163[48] | one_hot_2163[49] | one_hot_2163[50] | one_hot_2163[51] | one_hot_2163[52] | one_hot_2163[53] | one_hot_2163[54] | one_hot_2163[55] | one_hot_2163[56] | one_hot_2163[57] | one_hot_2163[58] | one_hot_2163[59] | one_hot_2163[60] | one_hot_2163[61] | one_hot_2163[62] | one_hot_2163[63] | one_hot_2163[80] | one_hot_2163[81] | one_hot_2163[82] | one_hot_2163[83] | one_hot_2163[84] | one_hot_2163[85] | one_hot_2163[86] | one_hot_2163[87] | one_hot_2163[88] | one_hot_2163[89] | one_hot_2163[90] | one_hot_2163[91] | one_hot_2163[92] | one_hot_2163[93] | one_hot_2163[94] | one_hot_2163[95] | one_hot_2163[112] | one_hot_2163[113] | one_hot_2163[114] | one_hot_2163[115] | one_hot_2163[116] | one_hot_2163[117] | one_hot_2163[118] | one_hot_2163[119] | one_hot_2163[120] | one_hot_2163[121] | one_hot_2163[122] | one_hot_2163[123] | one_hot_2163[124] | one_hot_2163[125] | one_hot_2163[126] | one_hot_2163[127] | one_hot_2163[144] | one_hot_2163[145] | one_hot_2163[146] | one_hot_2163[147] | one_hot_2163[148] | one_hot_2163[149] | one_hot_2163[150] | one_hot_2163[151] | one_hot_2163[152] | one_hot_2163[153] | one_hot_2163[154] | one_hot_2163[155] | one_hot_2163[156] | one_hot_2163[157] | one_hot_2163[158] | one_hot_2163[159], one_hot_2163[8] | one_hot_2163[9] | one_hot_2163[10] | one_hot_2163[11] | one_hot_2163[12] | one_hot_2163[13] | one_hot_2163[14] | one_hot_2163[15] | one_hot_2163[24] | one_hot_2163[25] | one_hot_2163[26] | one_hot_2163[27] | one_hot_2163[28] | one_hot_2163[29] | one_hot_2163[30] | one_hot_2163[31] | one_hot_2163[40] | one_hot_2163[41] | one_hot_2163[42] | one_hot_2163[43] | one_hot_2163[44] | one_hot_2163[45] | one_hot_2163[46] | one_hot_2163[47] | one_hot_2163[56] | one_hot_2163[57] | one_hot_2163[58] | one_hot_2163[59] | one_hot_2163[60] | one_hot_2163[61] | one_hot_2163[62] | one_hot_2163[63] | one_hot_2163[72] | one_hot_2163[73] | one_hot_2163[74] | one_hot_2163[75] | one_hot_2163[76] | one_hot_2163[77] | one_hot_2163[78] | one_hot_2163[79] | one_hot_2163[88] | one_hot_2163[89] | one_hot_2163[90] | one_hot_2163[91] | one_hot_2163[92] | one_hot_2163[93] | one_hot_2163[94] | one_hot_2163[95] | one_hot_2163[104] | one_hot_2163[105] | one_hot_2163[106] | one_hot_2163[107] | one_hot_2163[108] | one_hot_2163[109] | one_hot_2163[110] | one_hot_2163[111] | one_hot_2163[120] | one_hot_2163[121] | one_hot_2163[122] | one_hot_2163[123] | one_hot_2163[124] | one_hot_2163[125] | one_hot_2163[126] | one_hot_2163[127] | one_hot_2163[136] | one_hot_2163[137] | one_hot_2163[138] | one_hot_2163[139] | one_hot_2163[140] | one_hot_2163[141] | one_hot_2163[142] | one_hot_2163[143] | one_hot_2163[152] | one_hot_2163[153] | one_hot_2163[154] | one_hot_2163[155] | one_hot_2163[156] | one_hot_2163[157] | one_hot_2163[158] | one_hot_2163[159], one_hot_2163[4] | one_hot_2163[5] | one_hot_2163[6] | one_hot_2163[7] | one_hot_2163[12] | one_hot_2163[13] | one_hot_2163[14] | one_hot_2163[15] | one_hot_2163[20] | one_hot_2163[21] | one_hot_2163[22] | one_hot_2163[23] | one_hot_2163[28] | one_hot_2163[29] | one_hot_2163[30] | one_hot_2163[31] | one_hot_2163[36] | one_hot_2163[37] | one_hot_2163[38] | one_hot_2163[39] | one_hot_2163[44] | one_hot_2163[45] | one_hot_2163[46] | one_hot_2163[47] | one_hot_2163[52] | one_hot_2163[53] | one_hot_2163[54] | one_hot_2163[55] | one_hot_2163[60] | one_hot_2163[61] | one_hot_2163[62] | one_hot_2163[63] | one_hot_2163[68] | one_hot_2163[69] | one_hot_2163[70] | one_hot_2163[71] | one_hot_2163[76] | one_hot_2163[77] | one_hot_2163[78] | one_hot_2163[79] | one_hot_2163[84] | one_hot_2163[85] | one_hot_2163[86] | one_hot_2163[87] | one_hot_2163[92] | one_hot_2163[93] | one_hot_2163[94] | one_hot_2163[95] | one_hot_2163[100] | one_hot_2163[101] | one_hot_2163[102] | one_hot_2163[103] | one_hot_2163[108] | one_hot_2163[109] | one_hot_2163[110] | one_hot_2163[111] | one_hot_2163[116] | one_hot_2163[117] | one_hot_2163[118] | one_hot_2163[119] | one_hot_2163[124] | one_hot_2163[125] | one_hot_2163[126] | one_hot_2163[127] | one_hot_2163[132] | one_hot_2163[133] | one_hot_2163[134] | one_hot_2163[135] | one_hot_2163[140] | one_hot_2163[141] | one_hot_2163[142] | one_hot_2163[143] | one_hot_2163[148] | one_hot_2163[149] | one_hot_2163[150] | one_hot_2163[151] | one_hot_2163[156] | one_hot_2163[157] | one_hot_2163[158] | one_hot_2163[159], one_hot_2163[2] | one_hot_2163[3] | one_hot_2163[6] | one_hot_2163[7] | one_hot_2163[10] | one_hot_2163[11] | one_hot_2163[14] | one_hot_2163[15] | one_hot_2163[18] | one_hot_2163[19] | one_hot_2163[22] | one_hot_2163[23] | one_hot_2163[26] | one_hot_2163[27] | one_hot_2163[30] | one_hot_2163[31] | one_hot_2163[34] | one_hot_2163[35] | one_hot_2163[38] | one_hot_2163[39] | one_hot_2163[42] | one_hot_2163[43] | one_hot_2163[46] | one_hot_2163[47] | one_hot_2163[50] | one_hot_2163[51] | one_hot_2163[54] | one_hot_2163[55] | one_hot_2163[58] | one_hot_2163[59] | one_hot_2163[62] | one_hot_2163[63] | one_hot_2163[66] | one_hot_2163[67] | one_hot_2163[70] | one_hot_2163[71] | one_hot_2163[74] | one_hot_2163[75] | one_hot_2163[78] | one_hot_2163[79] | one_hot_2163[82] | one_hot_2163[83] | one_hot_2163[86] | one_hot_2163[87] | one_hot_2163[90] | one_hot_2163[91] | one_hot_2163[94] | one_hot_2163[95] | one_hot_2163[98] | one_hot_2163[99] | one_hot_2163[102] | one_hot_2163[103] | one_hot_2163[106] | one_hot_2163[107] | one_hot_2163[110] | one_hot_2163[111] | one_hot_2163[114] | one_hot_2163[115] | one_hot_2163[118] | one_hot_2163[119] | one_hot_2163[122] | one_hot_2163[123] | one_hot_2163[126] | one_hot_2163[127] | one_hot_2163[130] | one_hot_2163[131] | one_hot_2163[134] | one_hot_2163[135] | one_hot_2163[138] | one_hot_2163[139] | one_hot_2163[142] | one_hot_2163[143] | one_hot_2163[146] | one_hot_2163[147] | one_hot_2163[150] | one_hot_2163[151] | one_hot_2163[154] | one_hot_2163[155] | one_hot_2163[158] | one_hot_2163[159], one_hot_2163[1] | one_hot_2163[3] | one_hot_2163[5] | one_hot_2163[7] | one_hot_2163[9] | one_hot_2163[11] | one_hot_2163[13] | one_hot_2163[15] | one_hot_2163[17] | one_hot_2163[19] | one_hot_2163[21] | one_hot_2163[23] | one_hot_2163[25] | one_hot_2163[27] | one_hot_2163[29] | one_hot_2163[31] | one_hot_2163[33] | one_hot_2163[35] | one_hot_2163[37] | one_hot_2163[39] | one_hot_2163[41] | one_hot_2163[43] | one_hot_2163[45] | one_hot_2163[47] | one_hot_2163[49] | one_hot_2163[51] | one_hot_2163[53] | one_hot_2163[55] | one_hot_2163[57] | one_hot_2163[59] | one_hot_2163[61] | one_hot_2163[63] | one_hot_2163[65] | one_hot_2163[67] | one_hot_2163[69] | one_hot_2163[71] | one_hot_2163[73] | one_hot_2163[75] | one_hot_2163[77] | one_hot_2163[79] | one_hot_2163[81] | one_hot_2163[83] | one_hot_2163[85] | one_hot_2163[87] | one_hot_2163[89] | one_hot_2163[91] | one_hot_2163[93] | one_hot_2163[95] | one_hot_2163[97] | one_hot_2163[99] | one_hot_2163[101] | one_hot_2163[103] | one_hot_2163[105] | one_hot_2163[107] | one_hot_2163[109] | one_hot_2163[111] | one_hot_2163[113] | one_hot_2163[115] | one_hot_2163[117] | one_hot_2163[119] | one_hot_2163[121] | one_hot_2163[123] | one_hot_2163[125] | one_hot_2163[127] | one_hot_2163[129] | one_hot_2163[131] | one_hot_2163[133] | one_hot_2163[135] | one_hot_2163[137] | one_hot_2163[139] | one_hot_2163[141] | one_hot_2163[143] | one_hot_2163[145] | one_hot_2163[147] | one_hot_2163[149] | one_hot_2163[151] | one_hot_2163[153] | one_hot_2163[155] | one_hot_2163[157] | one_hot_2163[159] | one_hot_2163[161]}; assign cancel__2 = |encode_2164[7:1]; assign carry_bit__2 = abs_fraction__2[160]; assign concat_2168 = {cancel__1, encode_2164}; assign add_2173 = concat_2168 + 9'h1ff; assign carry_fraction__1 = abs_fraction__2[160:1]; assign concat_2181 = {~(carry_bit__2 | cancel__2), ~(carry_bit__2 | ~cancel__2), ~(~carry_bit__2 | cancel__2)}; assign carry_fraction__4 = carry_fraction__1 | {literal_2133, abs_fraction__2[0]}; assign cancel_fraction__2 = {{152{add_2173[8]}}, add_2173} >= 161'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000_00a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : abs_fraction__2[159:0] << {{152{add_2173[8]}}, add_2173}; assign shifted_fraction = carry_fraction__4 & {160{concat_2181[0]}} | cancel_fraction__2 & {160{concat_2181[1]}} | abs_fraction__2[159:0] & {160{concat_2181[2]}}; assign normal_chunk = shifted_fraction[106:0]; assign half_of_extra = 107'h400_0000_0000_0000_0000_0000_0000; assign half_way_chunk = shifted_fraction[107:106]; assign concat_2193 = {cancel__1, shifted_fraction[159:107]}; assign add_2196 = concat_2193 + 54'h00_0000_0000_0001; assign rounded_fraction__1 = normal_chunk > half_of_extra | half_way_chunk == 2'h3 ? add_2196 : concat_2193; assign greater_exp = overflow_detected ? ab_bexp__2 : {cancel__1, c_bexp__2}; assign rounding_carry = rounded_fraction__1[53]; assign sub_2203 = 9'h001 - concat_2168; assign fraction_is_zero = sum_fraction == 162'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000; assign bexp_associative_element__1 = {{4{sub_2203[8]}}, sub_2203}; assign bexp_associative_element__4 = {cancel__1, greater_exp} + {literal_2056, rounding_carry}; assign bexp__1 = bexp_associative_element__1 + bexp_associative_element__4; assign bexp__2 = bexp__1 & {13{~fraction_is_zero}}; assign eq_2217 = ab_bexp__2 == literal_2079; assign eq_2218 = ab_fraction__2 == literal_2126; assign eq_2219 = c_bexp__2 == max_exp; assign eq_2220 = c_fraction__2 == literal_2046; assign bexp__6 = bexp__2[11:0] & {12{~bexp__2[12]}}; assign and_2225 = eq_2217 & eq_2218; assign is_operand_inf = and_2225 | eq_2219 & eq_2220; assign and_reduce_2234 = &bexp__6[10:0]; assign has_pos_inf = ~(~(eq_2217 & eq_2218) | ab_sign__2) | ~(~eq_2219 | ~eq_2220 | c_sign__2); assign has_neg_inf = and_2225 & ab_sign__2 | eq_2219 & eq_2220 & c_sign__2; assign is_result_nan = ~(~eq_2217 | eq_2218) | ~(~eq_2219 | eq_2220) | has_pos_inf & has_neg_inf; assign result_sign = priority_sel_1b_2way({sum_fraction[161], fraction_is_zero}, cancel__1, ~greater_sign, greater_sign); assign result_fraction = rounded_fraction__1[51:0]; assign result_sign__1 = is_operand_inf ? ~has_pos_inf : result_sign; assign result_fraction__3 = result_fraction & {52{~(is_operand_inf | bexp__6[11] | and_reduce_2234 | bexp__6 == literal_2056)}}; assign one_hot_2264 = {concat_2181[2:0] == 3'h0, concat_2181[2] && concat_2181[1:0] == 2'h0, concat_2181[1] && !concat_2181[0], concat_2181[0]}; assign result_sign__2 = ~is_result_nan & result_sign__1; assign result_exp__2 = is_result_nan | is_operand_inf | bexp__6[11] | and_reduce_2234 ? max_exp : bexp__6[10:0]; assign result_fraction__4 = is_result_nan ? 52'h1_0000_0000_0000 : result_fraction__3; assign out = {result_sign__2, result_exp__2, result_fraction__4}; endmodule