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_2027; 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_2033; wire eq_2034; wire [52:0] a_significand__1; wire [52:0] b_significand__1; wire nor_2039; wire [11:0] add_2040; wire [105:0] umul_2041; wire [10:0] max_exp; wire [51:0] literal_2044; wire [105:0] full_product; wire eq_2048; wire eq_2049; wire eq_2050; wire eq_2051; wire [12:0] exp; wire [11:0] literal_2054; 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_2077; 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_2104; 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_2110; wire [52:0] sign_ext_2112; wire [159:0] shll_2113; wire a_sign__1; wire b_sign__1; wire [105:0] literal_2124; wire [52:0] wide_c__3; wire result_sign__3; wire [159:0] wide_ab; wire [158:0] literal_2131; 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_2160; wire [161:0] one_hot_2161; wire [7:0] encode_2162; wire cancel__2; wire carry_bit__2; wire [8:0] concat_2166; wire [8:0] add_2171; wire [159:0] carry_fraction__1; wire [2:0] concat_2179; 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_2191; wire [53:0] add_2194; wire [53:0] rounded_fraction__1; wire [11:0] greater_exp; wire rounding_carry; wire [8:0] sub_2201; 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_2215; wire eq_2216; wire eq_2217; wire eq_2218; wire [11:0] bexp__6; wire and_2223; wire is_operand_inf; wire and_reduce_2232; 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_2262; 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_2027 = 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_2033 = a_bexp__1 == literal_2027; assign eq_2034 = b_bexp__1 == literal_2027; assign a_significand__1 = {bnot__1, a_fraction__1}; assign b_significand__1 = {bnot__1, b_fraction__1}; assign nor_2039 = ~(eq_2033 | eq_2034); assign add_2040 = {cancel__1, a_bexp__1} + {cancel__1, b_bexp__1}; assign umul_2041 = umul106b_53b_x_53b(a_significand__1, b_significand__1); assign max_exp = 11'h7ff; assign literal_2044 = 52'h0_0000_0000_0000; assign full_product = umul_2041 & {106{nor_2039}}; assign eq_2048 = a_bexp__1 == max_exp; assign eq_2049 = a_fraction__1 == literal_2044; assign eq_2050 = b_bexp__1 == max_exp; assign eq_2051 = b_fraction__1 == literal_2044; assign exp = {cancel__1, add_2040} + 13'h1c01; assign literal_2054 = 12'h000; assign in_upper_binade = full_product[105]; assign exp__1 = exp & {13{nor_2039}}; assign has_inf_arg = eq_2048 & eq_2049 | eq_2050 & eq_2051; assign result_exp__3 = exp__1 + {literal_2054, 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_2033 | eq_2034; assign is_result_nan__1 = ~(~eq_2048 | eq_2049) | ~(~eq_2050 | eq_2051) | has_0_arg & has_inf_arg; assign result_exp__5 = result_exp__4[11:0] & {12{~is_subnormal}}; assign literal_2077 = 12'hfff; assign c_bexp__2 = c[62:52]; assign ab_bexp__2 = is_result_nan__1 ? literal_2077 : 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_2027, 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_2104 = 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_2110 = rshift_ab >= 12'h0a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : literal_2104 << rshift_ab; assign sign_ext_2112 = {53{c_bexp__2 != literal_2027}}; assign shll_2113 = rshift_c >= 12'h0a0 ? 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 : literal_2104 << rshift_c; assign a_sign__1 = a[63:63]; assign b_sign__1 = b[63:63]; assign literal_2124 = 106'h000_0000_0000_0000_0000_0000_0000; assign wide_c__3 = {bnot__1, c_fraction__2} & sign_ext_2112; assign result_sign__3 = a_sign__1 ^ b_sign__1; assign wide_ab = {ab_fraction__2, 54'h00_0000_0000_0000}; assign literal_2131 = 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_2131, ~(~ab_fraction__2 | shll_2110[159:54]) != literal_2124}; 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_2131, ~({cancel__1, ~c_fraction__2} | ~sign_ext_2112 | shll_2113[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_2160 = {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_2161 = {reverse_2160[160:0] == 161'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[160] && reverse_2160[159:0] == 160'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[159] && reverse_2160[158:0] == 159'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[158] && reverse_2160[157:0] == 158'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[157] && reverse_2160[156:0] == 157'h0000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[156] && reverse_2160[155:0] == 156'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[155] && reverse_2160[154:0] == 155'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[154] && reverse_2160[153:0] == 154'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[153] && reverse_2160[152:0] == 153'h000_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[152] && reverse_2160[151:0] == 152'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[151] && reverse_2160[150:0] == 151'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[150] && reverse_2160[149:0] == 150'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[149] && reverse_2160[148:0] == 149'h00_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[148] && reverse_2160[147:0] == 148'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[147] && reverse_2160[146:0] == 147'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[146] && reverse_2160[145:0] == 146'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[145] && reverse_2160[144:0] == 145'h0_0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[144] && reverse_2160[143:0] == 144'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[143] && reverse_2160[142:0] == 143'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[142] && reverse_2160[141:0] == 142'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[141] && reverse_2160[140:0] == 141'h0000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[140] && reverse_2160[139:0] == 140'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[139] && reverse_2160[138:0] == 139'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[138] && reverse_2160[137:0] == 138'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[137] && reverse_2160[136:0] == 137'h000_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[136] && reverse_2160[135:0] == 136'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[135] && reverse_2160[134:0] == 135'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[134] && reverse_2160[133:0] == 134'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[133] && reverse_2160[132:0] == 133'h00_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[132] && reverse_2160[131:0] == 132'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[131] && reverse_2160[130:0] == 131'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[130] && reverse_2160[129:0] == 130'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[129] && reverse_2160[128:0] == 129'h0_0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[128] && reverse_2160[127:0] == 128'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[127] && reverse_2160[126:0] == 127'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[126] && reverse_2160[125:0] == 126'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[125] && reverse_2160[124:0] == 125'h0000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[124] && reverse_2160[123:0] == 124'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[123] && reverse_2160[122:0] == 123'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[122] && reverse_2160[121:0] == 122'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[121] && reverse_2160[120:0] == 121'h000_0000_0000_0000_0000_0000_0000_0000, reverse_2160[120] && reverse_2160[119:0] == 120'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2160[119] && reverse_2160[118:0] == 119'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2160[118] && reverse_2160[117:0] == 118'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2160[117] && reverse_2160[116:0] == 117'h00_0000_0000_0000_0000_0000_0000_0000, reverse_2160[116] && reverse_2160[115:0] == 116'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2160[115] && reverse_2160[114:0] == 115'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2160[114] && reverse_2160[113:0] == 114'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2160[113] && reverse_2160[112:0] == 113'h0_0000_0000_0000_0000_0000_0000_0000, reverse_2160[112] && reverse_2160[111:0] == 112'h0000_0000_0000_0000_0000_0000_0000, reverse_2160[111] && reverse_2160[110:0] == 111'h0000_0000_0000_0000_0000_0000_0000, reverse_2160[110] && reverse_2160[109:0] == 110'h0000_0000_0000_0000_0000_0000_0000, reverse_2160[109] && reverse_2160[108:0] == 109'h0000_0000_0000_0000_0000_0000_0000, reverse_2160[108] && reverse_2160[107:0] == 108'h000_0000_0000_0000_0000_0000_0000, reverse_2160[107] && reverse_2160[106:0] == 107'h000_0000_0000_0000_0000_0000_0000, reverse_2160[106] && reverse_2160[105:0] == 106'h000_0000_0000_0000_0000_0000_0000, reverse_2160[105] && reverse_2160[104:0] == 105'h000_0000_0000_0000_0000_0000_0000, reverse_2160[104] && reverse_2160[103:0] == 104'h00_0000_0000_0000_0000_0000_0000, reverse_2160[103] && reverse_2160[102:0] == 103'h00_0000_0000_0000_0000_0000_0000, reverse_2160[102] && reverse_2160[101:0] == 102'h00_0000_0000_0000_0000_0000_0000, reverse_2160[101] && reverse_2160[100:0] == 101'h00_0000_0000_0000_0000_0000_0000, reverse_2160[100] && reverse_2160[99:0] == 100'h0_0000_0000_0000_0000_0000_0000, reverse_2160[99] && reverse_2160[98:0] == 99'h0_0000_0000_0000_0000_0000_0000, reverse_2160[98] && reverse_2160[97:0] == 98'h0_0000_0000_0000_0000_0000_0000, reverse_2160[97] && reverse_2160[96:0] == 97'h0_0000_0000_0000_0000_0000_0000, reverse_2160[96] && reverse_2160[95:0] == 96'h0000_0000_0000_0000_0000_0000, reverse_2160[95] && reverse_2160[94:0] == 95'h0000_0000_0000_0000_0000_0000, reverse_2160[94] && reverse_2160[93:0] == 94'h0000_0000_0000_0000_0000_0000, reverse_2160[93] && reverse_2160[92:0] == 93'h0000_0000_0000_0000_0000_0000, reverse_2160[92] && reverse_2160[91:0] == 92'h000_0000_0000_0000_0000_0000, reverse_2160[91] && reverse_2160[90:0] == 91'h000_0000_0000_0000_0000_0000, reverse_2160[90] && reverse_2160[89:0] == 90'h000_0000_0000_0000_0000_0000, reverse_2160[89] && reverse_2160[88:0] == 89'h000_0000_0000_0000_0000_0000, reverse_2160[88] && reverse_2160[87:0] == 88'h00_0000_0000_0000_0000_0000, reverse_2160[87] && reverse_2160[86:0] == 87'h00_0000_0000_0000_0000_0000, reverse_2160[86] && reverse_2160[85:0] == 86'h00_0000_0000_0000_0000_0000, reverse_2160[85] && reverse_2160[84:0] == 85'h00_0000_0000_0000_0000_0000, reverse_2160[84] && reverse_2160[83:0] == 84'h0_0000_0000_0000_0000_0000, reverse_2160[83] && reverse_2160[82:0] == 83'h0_0000_0000_0000_0000_0000, reverse_2160[82] && reverse_2160[81:0] == 82'h0_0000_0000_0000_0000_0000, reverse_2160[81] && reverse_2160[80:0] == 81'h0_0000_0000_0000_0000_0000, reverse_2160[80] && reverse_2160[79:0] == 80'h0000_0000_0000_0000_0000, reverse_2160[79] && reverse_2160[78:0] == 79'h0000_0000_0000_0000_0000, reverse_2160[78] && reverse_2160[77:0] == 78'h0000_0000_0000_0000_0000, reverse_2160[77] && reverse_2160[76:0] == 77'h0000_0000_0000_0000_0000, reverse_2160[76] && reverse_2160[75:0] == 76'h000_0000_0000_0000_0000, reverse_2160[75] && reverse_2160[74:0] == 75'h000_0000_0000_0000_0000, reverse_2160[74] && reverse_2160[73:0] == 74'h000_0000_0000_0000_0000, reverse_2160[73] && reverse_2160[72:0] == 73'h000_0000_0000_0000_0000, reverse_2160[72] && reverse_2160[71:0] == 72'h00_0000_0000_0000_0000, reverse_2160[71] && reverse_2160[70:0] == 71'h00_0000_0000_0000_0000, reverse_2160[70] && reverse_2160[69:0] == 70'h00_0000_0000_0000_0000, reverse_2160[69] && reverse_2160[68:0] == 69'h00_0000_0000_0000_0000, reverse_2160[68] && reverse_2160[67:0] == 68'h0_0000_0000_0000_0000, reverse_2160[67] && reverse_2160[66:0] == 67'h0_0000_0000_0000_0000, reverse_2160[66] && reverse_2160[65:0] == 66'h0_0000_0000_0000_0000, reverse_2160[65] && reverse_2160[64:0] == 65'h0_0000_0000_0000_0000, reverse_2160[64] && reverse_2160[63:0] == 64'h0000_0000_0000_0000, reverse_2160[63] && reverse_2160[62:0] == 63'h0000_0000_0000_0000, reverse_2160[62] && reverse_2160[61:0] == 62'h0000_0000_0000_0000, reverse_2160[61] && reverse_2160[60:0] == 61'h0000_0000_0000_0000, reverse_2160[60] && reverse_2160[59:0] == 60'h000_0000_0000_0000, reverse_2160[59] && reverse_2160[58:0] == 59'h000_0000_0000_0000, reverse_2160[58] && reverse_2160[57:0] == 58'h000_0000_0000_0000, reverse_2160[57] && reverse_2160[56:0] == 57'h000_0000_0000_0000, reverse_2160[56] && reverse_2160[55:0] == 56'h00_0000_0000_0000, reverse_2160[55] && reverse_2160[54:0] == 55'h00_0000_0000_0000, reverse_2160[54] && reverse_2160[53:0] == 54'h00_0000_0000_0000, reverse_2160[53] && reverse_2160[52:0] == 53'h00_0000_0000_0000, reverse_2160[52] && reverse_2160[51:0] == 52'h0_0000_0000_0000, reverse_2160[51] && reverse_2160[50:0] == 51'h0_0000_0000_0000, reverse_2160[50] && reverse_2160[49:0] == 50'h0_0000_0000_0000, reverse_2160[49] && reverse_2160[48:0] == 49'h0_0000_0000_0000, reverse_2160[48] && reverse_2160[47:0] == 48'h0000_0000_0000, reverse_2160[47] && reverse_2160[46:0] == 47'h0000_0000_0000, reverse_2160[46] && reverse_2160[45:0] == 46'h0000_0000_0000, reverse_2160[45] && reverse_2160[44:0] == 45'h0000_0000_0000, reverse_2160[44] && reverse_2160[43:0] == 44'h000_0000_0000, reverse_2160[43] && reverse_2160[42:0] == 43'h000_0000_0000, reverse_2160[42] && reverse_2160[41:0] == 42'h000_0000_0000, reverse_2160[41] && reverse_2160[40:0] == 41'h000_0000_0000, reverse_2160[40] && reverse_2160[39:0] == 40'h00_0000_0000, reverse_2160[39] && reverse_2160[38:0] == 39'h00_0000_0000, reverse_2160[38] && reverse_2160[37:0] == 38'h00_0000_0000, reverse_2160[37] && reverse_2160[36:0] == 37'h00_0000_0000, reverse_2160[36] && reverse_2160[35:0] == 36'h0_0000_0000, reverse_2160[35] && reverse_2160[34:0] == 35'h0_0000_0000, reverse_2160[34] && reverse_2160[33:0] == 34'h0_0000_0000, reverse_2160[33] && reverse_2160[32:0] == 33'h0_0000_0000, reverse_2160[32] && reverse_2160[31:0] == 32'h0000_0000, reverse_2160[31] && reverse_2160[30:0] == 31'h0000_0000, reverse_2160[30] && reverse_2160[29:0] == 30'h0000_0000, reverse_2160[29] && reverse_2160[28:0] == 29'h0000_0000, reverse_2160[28] && reverse_2160[27:0] == 28'h000_0000, reverse_2160[27] && reverse_2160[26:0] == 27'h000_0000, reverse_2160[26] && reverse_2160[25:0] == 26'h000_0000, reverse_2160[25] && reverse_2160[24:0] == 25'h000_0000, reverse_2160[24] && reverse_2160[23:0] == 24'h00_0000, reverse_2160[23] && reverse_2160[22:0] == 23'h00_0000, reverse_2160[22] && reverse_2160[21:0] == 22'h00_0000, reverse_2160[21] && reverse_2160[20:0] == 21'h00_0000, reverse_2160[20] && reverse_2160[19:0] == 20'h0_0000, reverse_2160[19] && reverse_2160[18:0] == 19'h0_0000, reverse_2160[18] && reverse_2160[17:0] == 18'h0_0000, reverse_2160[17] && reverse_2160[16:0] == 17'h0_0000, reverse_2160[16] && reverse_2160[15:0] == 16'h0000, reverse_2160[15] && reverse_2160[14:0] == 15'h0000, reverse_2160[14] && reverse_2160[13:0] == 14'h0000, reverse_2160[13] && reverse_2160[12:0] == 13'h0000, reverse_2160[12] && reverse_2160[11:0] == 12'h000, reverse_2160[11] && reverse_2160[10:0] == 11'h000, reverse_2160[10] && reverse_2160[9:0] == 10'h000, reverse_2160[9] && reverse_2160[8:0] == 9'h000, reverse_2160[8] && reverse_2160[7:0] == 8'h00, reverse_2160[7] && reverse_2160[6:0] == 7'h00, reverse_2160[6] && reverse_2160[5:0] == 6'h00, reverse_2160[5] && reverse_2160[4:0] == 5'h00, reverse_2160[4] && reverse_2160[3:0] == 4'h0, reverse_2160[3] && reverse_2160[2:0] == 3'h0, reverse_2160[2] && reverse_2160[1:0] == 2'h0, reverse_2160[1] && !reverse_2160[0], reverse_2160[0]}; assign encode_2162 = {one_hot_2161[128] | one_hot_2161[129] | one_hot_2161[130] | one_hot_2161[131] | one_hot_2161[132] | one_hot_2161[133] | one_hot_2161[134] | one_hot_2161[135] | one_hot_2161[136] | one_hot_2161[137] | one_hot_2161[138] | one_hot_2161[139] | one_hot_2161[140] | one_hot_2161[141] | one_hot_2161[142] | one_hot_2161[143] | one_hot_2161[144] | one_hot_2161[145] | one_hot_2161[146] | one_hot_2161[147] | one_hot_2161[148] | one_hot_2161[149] | one_hot_2161[150] | one_hot_2161[151] | one_hot_2161[152] | one_hot_2161[153] | one_hot_2161[154] | one_hot_2161[155] | one_hot_2161[156] | one_hot_2161[157] | one_hot_2161[158] | one_hot_2161[159] | one_hot_2161[160] | one_hot_2161[161], one_hot_2161[64] | one_hot_2161[65] | one_hot_2161[66] | one_hot_2161[67] | one_hot_2161[68] | one_hot_2161[69] | one_hot_2161[70] | one_hot_2161[71] | one_hot_2161[72] | one_hot_2161[73] | one_hot_2161[74] | one_hot_2161[75] | one_hot_2161[76] | one_hot_2161[77] | one_hot_2161[78] | one_hot_2161[79] | one_hot_2161[80] | one_hot_2161[81] | one_hot_2161[82] | one_hot_2161[83] | one_hot_2161[84] | one_hot_2161[85] | one_hot_2161[86] | one_hot_2161[87] | one_hot_2161[88] | one_hot_2161[89] | one_hot_2161[90] | one_hot_2161[91] | one_hot_2161[92] | one_hot_2161[93] | one_hot_2161[94] | one_hot_2161[95] | one_hot_2161[96] | one_hot_2161[97] | one_hot_2161[98] | one_hot_2161[99] | one_hot_2161[100] | one_hot_2161[101] | one_hot_2161[102] | one_hot_2161[103] | one_hot_2161[104] | one_hot_2161[105] | one_hot_2161[106] | one_hot_2161[107] | one_hot_2161[108] | one_hot_2161[109] | one_hot_2161[110] | one_hot_2161[111] | one_hot_2161[112] | one_hot_2161[113] | one_hot_2161[114] | one_hot_2161[115] | one_hot_2161[116] | one_hot_2161[117] | one_hot_2161[118] | one_hot_2161[119] | one_hot_2161[120] | one_hot_2161[121] | one_hot_2161[122] | one_hot_2161[123] | one_hot_2161[124] | one_hot_2161[125] | one_hot_2161[126] | one_hot_2161[127], one_hot_2161[32] | one_hot_2161[33] | one_hot_2161[34] | one_hot_2161[35] | one_hot_2161[36] | one_hot_2161[37] | one_hot_2161[38] | one_hot_2161[39] | one_hot_2161[40] | one_hot_2161[41] | one_hot_2161[42] | one_hot_2161[43] | one_hot_2161[44] | one_hot_2161[45] | one_hot_2161[46] | one_hot_2161[47] | one_hot_2161[48] | one_hot_2161[49] | one_hot_2161[50] | one_hot_2161[51] | one_hot_2161[52] | one_hot_2161[53] | one_hot_2161[54] | one_hot_2161[55] | one_hot_2161[56] | one_hot_2161[57] | one_hot_2161[58] | one_hot_2161[59] | one_hot_2161[60] | one_hot_2161[61] | one_hot_2161[62] | one_hot_2161[63] | one_hot_2161[96] | one_hot_2161[97] | one_hot_2161[98] | one_hot_2161[99] | one_hot_2161[100] | one_hot_2161[101] | one_hot_2161[102] | one_hot_2161[103] | one_hot_2161[104] | one_hot_2161[105] | one_hot_2161[106] | one_hot_2161[107] | one_hot_2161[108] | one_hot_2161[109] | one_hot_2161[110] | one_hot_2161[111] | one_hot_2161[112] | one_hot_2161[113] | one_hot_2161[114] | one_hot_2161[115] | one_hot_2161[116] | one_hot_2161[117] | one_hot_2161[118] | one_hot_2161[119] | one_hot_2161[120] | one_hot_2161[121] | one_hot_2161[122] | one_hot_2161[123] | one_hot_2161[124] | one_hot_2161[125] | one_hot_2161[126] | one_hot_2161[127] | one_hot_2161[160] | one_hot_2161[161], one_hot_2161[16] | one_hot_2161[17] | one_hot_2161[18] | one_hot_2161[19] | one_hot_2161[20] | one_hot_2161[21] | one_hot_2161[22] | one_hot_2161[23] | one_hot_2161[24] | one_hot_2161[25] | one_hot_2161[26] | one_hot_2161[27] | one_hot_2161[28] | one_hot_2161[29] | one_hot_2161[30] | one_hot_2161[31] | one_hot_2161[48] | one_hot_2161[49] | one_hot_2161[50] | one_hot_2161[51] | one_hot_2161[52] | one_hot_2161[53] | one_hot_2161[54] | one_hot_2161[55] | one_hot_2161[56] | one_hot_2161[57] | one_hot_2161[58] | one_hot_2161[59] | one_hot_2161[60] | one_hot_2161[61] | one_hot_2161[62] | one_hot_2161[63] | one_hot_2161[80] | one_hot_2161[81] | one_hot_2161[82] | one_hot_2161[83] | one_hot_2161[84] | one_hot_2161[85] | one_hot_2161[86] | one_hot_2161[87] | one_hot_2161[88] | one_hot_2161[89] | one_hot_2161[90] | one_hot_2161[91] | one_hot_2161[92] | one_hot_2161[93] | one_hot_2161[94] | one_hot_2161[95] | one_hot_2161[112] | one_hot_2161[113] | one_hot_2161[114] | one_hot_2161[115] | one_hot_2161[116] | one_hot_2161[117] | one_hot_2161[118] | one_hot_2161[119] | one_hot_2161[120] | one_hot_2161[121] | one_hot_2161[122] | one_hot_2161[123] | one_hot_2161[124] | one_hot_2161[125] | one_hot_2161[126] | one_hot_2161[127] | one_hot_2161[144] | one_hot_2161[145] | one_hot_2161[146] | one_hot_2161[147] | one_hot_2161[148] | one_hot_2161[149] | one_hot_2161[150] | one_hot_2161[151] | one_hot_2161[152] | one_hot_2161[153] | one_hot_2161[154] | one_hot_2161[155] | one_hot_2161[156] | one_hot_2161[157] | one_hot_2161[158] | one_hot_2161[159], one_hot_2161[8] | one_hot_2161[9] | one_hot_2161[10] | one_hot_2161[11] | one_hot_2161[12] | one_hot_2161[13] | one_hot_2161[14] | one_hot_2161[15] | one_hot_2161[24] | one_hot_2161[25] | one_hot_2161[26] | one_hot_2161[27] | one_hot_2161[28] | one_hot_2161[29] | one_hot_2161[30] | one_hot_2161[31] | one_hot_2161[40] | one_hot_2161[41] | one_hot_2161[42] | one_hot_2161[43] | one_hot_2161[44] | one_hot_2161[45] | one_hot_2161[46] | one_hot_2161[47] | one_hot_2161[56] | one_hot_2161[57] | one_hot_2161[58] | one_hot_2161[59] | one_hot_2161[60] | one_hot_2161[61] | one_hot_2161[62] | one_hot_2161[63] | one_hot_2161[72] | one_hot_2161[73] | one_hot_2161[74] | one_hot_2161[75] | one_hot_2161[76] | one_hot_2161[77] | one_hot_2161[78] | one_hot_2161[79] | one_hot_2161[88] | one_hot_2161[89] | one_hot_2161[90] | one_hot_2161[91] | one_hot_2161[92] | one_hot_2161[93] | one_hot_2161[94] | one_hot_2161[95] | one_hot_2161[104] | one_hot_2161[105] | one_hot_2161[106] | one_hot_2161[107] | one_hot_2161[108] | one_hot_2161[109] | one_hot_2161[110] | one_hot_2161[111] | one_hot_2161[120] | one_hot_2161[121] | one_hot_2161[122] | one_hot_2161[123] | one_hot_2161[124] | one_hot_2161[125] | one_hot_2161[126] | one_hot_2161[127] | one_hot_2161[136] | one_hot_2161[137] | one_hot_2161[138] | one_hot_2161[139] | one_hot_2161[140] | one_hot_2161[141] | one_hot_2161[142] | one_hot_2161[143] | one_hot_2161[152] | one_hot_2161[153] | one_hot_2161[154] | one_hot_2161[155] | one_hot_2161[156] | one_hot_2161[157] | one_hot_2161[158] | one_hot_2161[159], one_hot_2161[4] | one_hot_2161[5] | one_hot_2161[6] | one_hot_2161[7] | one_hot_2161[12] | one_hot_2161[13] | one_hot_2161[14] | one_hot_2161[15] | one_hot_2161[20] | one_hot_2161[21] | one_hot_2161[22] | one_hot_2161[23] | one_hot_2161[28] | one_hot_2161[29] | one_hot_2161[30] | one_hot_2161[31] | one_hot_2161[36] | one_hot_2161[37] | one_hot_2161[38] | one_hot_2161[39] | one_hot_2161[44] | one_hot_2161[45] | one_hot_2161[46] | one_hot_2161[47] | one_hot_2161[52] | one_hot_2161[53] | one_hot_2161[54] | one_hot_2161[55] | one_hot_2161[60] | one_hot_2161[61] | one_hot_2161[62] | one_hot_2161[63] | one_hot_2161[68] | one_hot_2161[69] | one_hot_2161[70] | one_hot_2161[71] | one_hot_2161[76] | one_hot_2161[77] | one_hot_2161[78] | one_hot_2161[79] | one_hot_2161[84] | one_hot_2161[85] | one_hot_2161[86] | one_hot_2161[87] | one_hot_2161[92] | one_hot_2161[93] | one_hot_2161[94] | one_hot_2161[95] | one_hot_2161[100] | one_hot_2161[101] | one_hot_2161[102] | one_hot_2161[103] | one_hot_2161[108] | one_hot_2161[109] | one_hot_2161[110] | one_hot_2161[111] | one_hot_2161[116] | one_hot_2161[117] | one_hot_2161[118] | one_hot_2161[119] | one_hot_2161[124] | one_hot_2161[125] | one_hot_2161[126] | one_hot_2161[127] | one_hot_2161[132] | one_hot_2161[133] | one_hot_2161[134] | one_hot_2161[135] | one_hot_2161[140] | one_hot_2161[141] | one_hot_2161[142] | one_hot_2161[143] | one_hot_2161[148] | one_hot_2161[149] | one_hot_2161[150] | one_hot_2161[151] | one_hot_2161[156] | one_hot_2161[157] | one_hot_2161[158] | one_hot_2161[159], one_hot_2161[2] | one_hot_2161[3] | one_hot_2161[6] | one_hot_2161[7] | one_hot_2161[10] | one_hot_2161[11] | one_hot_2161[14] | one_hot_2161[15] | one_hot_2161[18] | one_hot_2161[19] | one_hot_2161[22] | one_hot_2161[23] | one_hot_2161[26] | one_hot_2161[27] | one_hot_2161[30] | one_hot_2161[31] | one_hot_2161[34] | one_hot_2161[35] | one_hot_2161[38] | one_hot_2161[39] | one_hot_2161[42] | one_hot_2161[43] | one_hot_2161[46] | one_hot_2161[47] | one_hot_2161[50] | one_hot_2161[51] | one_hot_2161[54] | one_hot_2161[55] | one_hot_2161[58] | one_hot_2161[59] | one_hot_2161[62] | one_hot_2161[63] | one_hot_2161[66] | one_hot_2161[67] | one_hot_2161[70] | one_hot_2161[71] | one_hot_2161[74] | one_hot_2161[75] | one_hot_2161[78] | one_hot_2161[79] | one_hot_2161[82] | one_hot_2161[83] | one_hot_2161[86] | one_hot_2161[87] | one_hot_2161[90] | one_hot_2161[91] | one_hot_2161[94] | one_hot_2161[95] | one_hot_2161[98] | one_hot_2161[99] | one_hot_2161[102] | one_hot_2161[103] | one_hot_2161[106] | one_hot_2161[107] | one_hot_2161[110] | one_hot_2161[111] | one_hot_2161[114] | one_hot_2161[115] | one_hot_2161[118] | one_hot_2161[119] | one_hot_2161[122] | one_hot_2161[123] | one_hot_2161[126] | one_hot_2161[127] | one_hot_2161[130] | one_hot_2161[131] | one_hot_2161[134] | one_hot_2161[135] | one_hot_2161[138] | one_hot_2161[139] | one_hot_2161[142] | one_hot_2161[143] | one_hot_2161[146] | one_hot_2161[147] | one_hot_2161[150] | one_hot_2161[151] | one_hot_2161[154] | one_hot_2161[155] | one_hot_2161[158] | one_hot_2161[159], one_hot_2161[1] | one_hot_2161[3] | one_hot_2161[5] | one_hot_2161[7] | one_hot_2161[9] | one_hot_2161[11] | one_hot_2161[13] | one_hot_2161[15] | one_hot_2161[17] | one_hot_2161[19] | one_hot_2161[21] | one_hot_2161[23] | one_hot_2161[25] | one_hot_2161[27] | one_hot_2161[29] | one_hot_2161[31] | one_hot_2161[33] | one_hot_2161[35] | one_hot_2161[37] | one_hot_2161[39] | one_hot_2161[41] | one_hot_2161[43] | one_hot_2161[45] | one_hot_2161[47] | one_hot_2161[49] | one_hot_2161[51] | one_hot_2161[53] | one_hot_2161[55] | one_hot_2161[57] | one_hot_2161[59] | one_hot_2161[61] | one_hot_2161[63] | one_hot_2161[65] | one_hot_2161[67] | one_hot_2161[69] | one_hot_2161[71] | one_hot_2161[73] | one_hot_2161[75] | one_hot_2161[77] | one_hot_2161[79] | one_hot_2161[81] | one_hot_2161[83] | one_hot_2161[85] | one_hot_2161[87] | one_hot_2161[89] | one_hot_2161[91] | one_hot_2161[93] | one_hot_2161[95] | one_hot_2161[97] | one_hot_2161[99] | one_hot_2161[101] | one_hot_2161[103] | one_hot_2161[105] | one_hot_2161[107] | one_hot_2161[109] | one_hot_2161[111] | one_hot_2161[113] | one_hot_2161[115] | one_hot_2161[117] | one_hot_2161[119] | one_hot_2161[121] | one_hot_2161[123] | one_hot_2161[125] | one_hot_2161[127] | one_hot_2161[129] | one_hot_2161[131] | one_hot_2161[133] | one_hot_2161[135] | one_hot_2161[137] | one_hot_2161[139] | one_hot_2161[141] | one_hot_2161[143] | one_hot_2161[145] | one_hot_2161[147] | one_hot_2161[149] | one_hot_2161[151] | one_hot_2161[153] | one_hot_2161[155] | one_hot_2161[157] | one_hot_2161[159] | one_hot_2161[161]}; assign cancel__2 = |encode_2162[7:1]; assign carry_bit__2 = abs_fraction__2[160]; assign concat_2166 = {cancel__1, encode_2162}; assign add_2171 = concat_2166 + 9'h1ff; assign carry_fraction__1 = abs_fraction__2[160:1]; assign concat_2179 = {~(carry_bit__2 | cancel__2), ~(carry_bit__2 | ~cancel__2), ~(~carry_bit__2 | cancel__2)}; assign carry_fraction__4 = carry_fraction__1 | {literal_2131, abs_fraction__2[0]}; assign cancel_fraction__2 = {{152{add_2171[8]}}, add_2171} >= 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_2171[8]}}, add_2171}; assign shifted_fraction = carry_fraction__4 & {160{concat_2179[0]}} | cancel_fraction__2 & {160{concat_2179[1]}} | abs_fraction__2[159:0] & {160{concat_2179[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_2191 = {cancel__1, shifted_fraction[159:107]}; assign add_2194 = concat_2191 + 54'h00_0000_0000_0001; assign rounded_fraction__1 = normal_chunk > half_of_extra | half_way_chunk == 2'h3 ? add_2194 : concat_2191; assign greater_exp = overflow_detected ? ab_bexp__2 : {cancel__1, c_bexp__2}; assign rounding_carry = rounded_fraction__1[53]; assign sub_2201 = 9'h001 - concat_2166; 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_2201[8]}}, sub_2201}; assign bexp_associative_element__4 = {cancel__1, greater_exp} + {literal_2054, rounding_carry}; assign bexp__1 = bexp_associative_element__1 + bexp_associative_element__4; assign bexp__2 = bexp__1 & {13{~fraction_is_zero}}; assign eq_2215 = ab_bexp__2 == literal_2077; assign eq_2216 = ab_fraction__2 == literal_2124; assign eq_2217 = c_bexp__2 == max_exp; assign eq_2218 = c_fraction__2 == literal_2044; assign bexp__6 = bexp__2[11:0] & {12{~bexp__2[12]}}; assign and_2223 = eq_2215 & eq_2216; assign is_operand_inf = and_2223 | eq_2217 & eq_2218; assign and_reduce_2232 = &bexp__6[10:0]; assign has_pos_inf = ~(~(eq_2215 & eq_2216) | ab_sign__2) | ~(~eq_2217 | ~eq_2218 | c_sign__2); assign has_neg_inf = and_2223 & ab_sign__2 | eq_2217 & eq_2218 & c_sign__2; assign is_result_nan = ~(~eq_2215 | eq_2216) | ~(~eq_2217 | eq_2218) | 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_2232 | bexp__6 == literal_2054)}}; assign one_hot_2262 = {concat_2179[2:0] == 3'h0, concat_2179[2] && concat_2179[1:0] == 2'h0, concat_2179[1] && !concat_2179[0], concat_2179[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_2232 ? 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