3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-20 22:25:49 +00:00

[ENG-1692] negopt runtime fix + small cleanup

This commit is contained in:
Abhinav Tondapu 2026-03-30 16:30:46 -07:00
parent 5e7e172570
commit df43a3097a
8 changed files with 123 additions and 12 deletions

View file

@ -42,6 +42,56 @@ select -assert-count 2 t:$neg
design -reset
log -pop
log -header "Positive case: neg input is sign extension of mux output"
log -push
design -reset
read_verilog <<EOF
module top(a, b, s, y);
input wire signed [7:0] a;
input wire signed [7:0] b;
input wire s;
output wire signed [11:0] y;
wire signed [7:0] m;
wire signed [11:0] m_ext;
assign m = s ? a : b;
assign m_ext = m;
assign y = -m_ext;
endmodule
EOF
proc; opt
check -assert
equiv_opt -assert negopt -pre
design -load postopt
select -assert-count 1 t:$mux
select -assert-count 2 t:$neg
design -reset
log -pop
log -header "Positive case: neg input is zero extension of mux output"
log -push
design -reset
read_verilog <<EOF
module top(a, b, s, y);
input wire [7:0] a;
input wire [7:0] b;
input wire s;
output wire [11:0] y;
wire [7:0] m;
wire [11:0] m_ext;
assign m = s ? a : b;
assign m_ext = m;
assign y = -m_ext;
endmodule
EOF
proc; opt
check -assert
equiv_opt -assert negopt -pre
design -load postopt
select -assert-count 1 t:$mux
select -assert-count 2 t:$neg
design -reset
log -pop
log -header "Negative case: mux output has extra fanout"
log -push
design -reset

View file

@ -40,6 +40,35 @@ select -assert-none t:$sub
design -reset
log -pop
log -header "Negative case: add inputs are sign-extended neg outputs"
log -push
design -reset
read_verilog <<EOF
module top(a, b, y);
input wire signed [7:0] a;
input wire signed [7:0] b;
output wire signed [11:0] y;
wire signed [7:0] na;
wire signed [7:0] nb;
wire signed [11:0] na_ext;
wire signed [11:0] nb_ext;
assign na = -a;
assign nb = -b;
assign na_ext = na;
assign nb_ext = nb;
assign y = na_ext + nb_ext;
endmodule
EOF
proc; opt
check -assert
equiv_opt -assert negopt -post
design -load postopt
select -assert-count 1 t:$add
select -assert-count 2 t:$neg
select -assert-none t:$sub
design -reset
log -pop
log -header "Anchor case: neg branches with different widths"
log -push
design -reset