module __float32__from_int32( input wire [31:0] x, output wire [31:0] out ); wire sign; wire [30:0] fraction; wire [30:0] reverse_386; wire [31:0] one_hot_387; wire literal_388; wire [4:0] encode_389; wire [5:0] add_394; wire [32:0] fraction__1_narrowed; wire [25:0] fraction__2; wire [2:0] normal_chunk; wire [1:0] half_way_chunk; wire [22:0] literal_410; wire [23:0] add_414; wire [1:0] bexp_associative_element_squeezed; wire [7:0] lz; wire [7:0] bexp__1; wire [22:0] fraction__4; wire and_reduce_428; wire ne_429; wire is_neg_int_max; wire or_432; wire [22:0] and_443; assign sign = x[31]; assign fraction = sign ? -x[30:0] : x[30:0]; assign reverse_386 = {fraction[0], fraction[1], fraction[2], fraction[3], fraction[4], fraction[5], fraction[6], fraction[7], fraction[8], fraction[9], fraction[10], fraction[11], fraction[12], fraction[13], fraction[14], fraction[15], fraction[16], fraction[17], fraction[18], fraction[19], fraction[20], fraction[21], fraction[22], fraction[23], fraction[24], fraction[25], fraction[26], fraction[27], fraction[28], fraction[29], fraction[30]}; assign one_hot_387 = {reverse_386[30:0] == 31'h0000_0000, reverse_386[30] && reverse_386[29:0] == 30'h0000_0000, reverse_386[29] && reverse_386[28:0] == 29'h0000_0000, reverse_386[28] && reverse_386[27:0] == 28'h000_0000, reverse_386[27] && reverse_386[26:0] == 27'h000_0000, reverse_386[26] && reverse_386[25:0] == 26'h000_0000, reverse_386[25] && reverse_386[24:0] == 25'h000_0000, reverse_386[24] && reverse_386[23:0] == 24'h00_0000, reverse_386[23] && reverse_386[22:0] == 23'h00_0000, reverse_386[22] && reverse_386[21:0] == 22'h00_0000, reverse_386[21] && reverse_386[20:0] == 21'h00_0000, reverse_386[20] && reverse_386[19:0] == 20'h0_0000, reverse_386[19] && reverse_386[18:0] == 19'h0_0000, reverse_386[18] && reverse_386[17:0] == 18'h0_0000, reverse_386[17] && reverse_386[16:0] == 17'h0_0000, reverse_386[16] && reverse_386[15:0] == 16'h0000, reverse_386[15] && reverse_386[14:0] == 15'h0000, reverse_386[14] && reverse_386[13:0] == 14'h0000, reverse_386[13] && reverse_386[12:0] == 13'h0000, reverse_386[12] && reverse_386[11:0] == 12'h000, reverse_386[11] && reverse_386[10:0] == 11'h000, reverse_386[10] && reverse_386[9:0] == 10'h000, reverse_386[9] && reverse_386[8:0] == 9'h000, reverse_386[8] && reverse_386[7:0] == 8'h00, reverse_386[7] && reverse_386[6:0] == 7'h00, reverse_386[6] && reverse_386[5:0] == 6'h00, reverse_386[5] && reverse_386[4:0] == 5'h00, reverse_386[4] && reverse_386[3:0] == 4'h0, reverse_386[3] && reverse_386[2:0] == 3'h0, reverse_386[2] && reverse_386[1:0] == 2'h0, reverse_386[1] && !reverse_386[0], reverse_386[0]}; assign literal_388 = 1'h0; assign encode_389 = {one_hot_387[16] | one_hot_387[17] | one_hot_387[18] | one_hot_387[19] | one_hot_387[20] | one_hot_387[21] | one_hot_387[22] | one_hot_387[23] | one_hot_387[24] | one_hot_387[25] | one_hot_387[26] | one_hot_387[27] | one_hot_387[28] | one_hot_387[29] | one_hot_387[30] | one_hot_387[31], one_hot_387[8] | one_hot_387[9] | one_hot_387[10] | one_hot_387[11] | one_hot_387[12] | one_hot_387[13] | one_hot_387[14] | one_hot_387[15] | one_hot_387[24] | one_hot_387[25] | one_hot_387[26] | one_hot_387[27] | one_hot_387[28] | one_hot_387[29] | one_hot_387[30] | one_hot_387[31], one_hot_387[4] | one_hot_387[5] | one_hot_387[6] | one_hot_387[7] | one_hot_387[12] | one_hot_387[13] | one_hot_387[14] | one_hot_387[15] | one_hot_387[20] | one_hot_387[21] | one_hot_387[22] | one_hot_387[23] | one_hot_387[28] | one_hot_387[29] | one_hot_387[30] | one_hot_387[31], one_hot_387[2] | one_hot_387[3] | one_hot_387[6] | one_hot_387[7] | one_hot_387[10] | one_hot_387[11] | one_hot_387[14] | one_hot_387[15] | one_hot_387[18] | one_hot_387[19] | one_hot_387[22] | one_hot_387[23] | one_hot_387[26] | one_hot_387[27] | one_hot_387[30] | one_hot_387[31], one_hot_387[1] | one_hot_387[3] | one_hot_387[5] | one_hot_387[7] | one_hot_387[9] | one_hot_387[11] | one_hot_387[13] | one_hot_387[15] | one_hot_387[17] | one_hot_387[19] | one_hot_387[21] | one_hot_387[23] | one_hot_387[25] | one_hot_387[27] | one_hot_387[29] | one_hot_387[31]}; assign add_394 = {literal_388, encode_389} + 6'h03; assign fraction__1_narrowed = add_394 >= 6'h21 ? 33'h0_0000_0000 : {2'h0, fraction} << add_394; assign fraction__2 = fraction__1_narrowed[32:7] | {25'h000_0000, fraction__1_narrowed[6:3] != 4'h0}; assign normal_chunk = fraction__2[2:0]; assign half_way_chunk = fraction__2[3:2]; assign literal_410 = 23'h00_0000; assign add_414 = {literal_388, fraction__2[25:3]} + {literal_410, normal_chunk > 3'h4 | half_way_chunk == 2'h3}; assign bexp_associative_element_squeezed = 2'h1; assign lz = {3'h0, encode_389}; assign bexp__1 = {6'h27, add_414[23] ? 2'h2 : bexp_associative_element_squeezed} - lz; assign fraction__4 = add_414[22:0]; assign and_reduce_428 = &bexp__1[6:0]; assign ne_429 = fraction__4 != literal_410; assign is_neg_int_max = x == 32'h8000_0000; assign or_432 = bexp__1[7] | and_reduce_428 | ne_429; assign and_443 = fraction__4 & {23{~(is_neg_int_max | ~(bexp__1[7] | and_reduce_428 | ne_429))}}; assign out = {is_neg_int_max | ~is_neg_int_max & or_432 & sign, is_neg_int_max ? 8'h9e : bexp__1 & {8{or_432}}, and_443}; endmodule