module opt_share_test( input [15:0] a, input [15:0] b, input [15:0] c, input [2:0] sel, output reg [31:0] res ); always @* begin case(sel) 0: res = {a + b, a}; 1: res = {a - b, b}; 2: res = {a + c, c}; 3: res = {a - c, a}; 4: res = {b, b}; 5: res = {c, c}; default: res = 32'bx; endcase end endmodule