module __bfloat16__gt_2( input wire [15:0] x, input wire [15:0] y, output wire out ); function automatic priority_sel_1b_3way (input reg [2:0] sel, input reg case0, input reg case1, input reg case2, input reg default_value); begin casez (sel) 3'b??1: begin priority_sel_1b_3way = case0; end 3'b?10: begin priority_sel_1b_3way = case1; end 3'b100: begin priority_sel_1b_3way = case2; end 3'b000: begin priority_sel_1b_3way = default_value; end default: begin // Propagate X priority_sel_1b_3way = 1'dx; end endcase end endfunction wire [7:0] x_bexp__1; wire [7:0] literal_484; wire [7:0] y_bexp__2; wire eq_486; wire eq_487; wire [6:0] x_fraction__1; wire [6:0] y_fraction__1; wire [7:0] literal_494; wire [6:0] literal_495; wire x_sign__2; wire y_sign__1; wire [6:0] x__1_fraction__2; wire [6:0] y__1_fraction__2; wire eq_504; wire eq_exp; wire gt_fraction; wire and_508; wire and_509; wire and_511; wire gt_exp; wire nor_514; wire abs_gt; wire and_530; wire result; wire and_537; assign x_bexp__1 = x[14:7]; assign literal_484 = 8'h00; assign y_bexp__2 = y[14:7]; assign eq_486 = x_bexp__1 == literal_484; assign eq_487 = y_bexp__2 == literal_484; assign x_fraction__1 = x[6:0]; assign y_fraction__1 = y[6:0]; assign literal_494 = 8'hff; assign literal_495 = 7'h00; assign x_sign__2 = x[15:15]; assign y_sign__1 = y[15:15]; assign x__1_fraction__2 = x_fraction__1 & {7{~eq_486}}; assign y__1_fraction__2 = y_fraction__1 & {7{~eq_487}}; assign eq_504 = x_sign__2 == y_sign__1; assign eq_exp = x_bexp__1 == y_bexp__2; assign gt_fraction = x__1_fraction__2 > y__1_fraction__2; assign and_508 = x_bexp__1 == literal_494 & x_fraction__1 != literal_495; assign and_509 = y_bexp__2 == literal_494 & y_fraction__1 != literal_495; assign and_511 = eq_486 & eq_487; assign gt_exp = x_bexp__1 > y_bexp__2; assign nor_514 = ~(and_508 | and_509); assign abs_gt = gt_exp | eq_exp & gt_fraction; assign and_530 = ~abs_gt & ~(nor_514 & (eq_504 & eq_exp & x__1_fraction__2 == y__1_fraction__2 | and_511)); assign result = priority_sel_1b_3way({~(~x_sign__2 | y_sign__1), ~(x_sign__2 | ~y_sign__1), ~(x_sign__2 | y_sign__1)}, abs_gt, 1'h1, 1'h0, and_530); assign and_537 = ~(nor_514 & (eq_504 & eq_exp & x_fraction__1 == y_fraction__1 | and_511)) & ~(and_508 | and_509 | ~result); assign out = and_537; endmodule