# https://github.com/YosysHQ/yosys/issues/1381
read_verilog <<EOT
module sub(input i, output o, (* techmap_autopurge *) input j);
foobar f(i, o, j);
endmodule
EOT
design -stash techmap

read_verilog <<EOT
(* blackbox *)
module sub(input i, output o, input j);
endmodule

(* blackbox *)
module foobar(input i, output o, input j);
endmodule

module top(input i, output o);
sub s0(i, o);
endmodule
EOT

techmap -map %techmap
hierarchy
check -assert

# https://github.com/YosysHQ/yosys/issues/1391
design -reset
read_verilog <<EOT
module sub(input i, output o, (* techmap_autopurge *) input [1:0] j);
foobar f(i, o, j);
endmodule
EOT
design -stash techmap

read_verilog <<EOT
(* blackbox *)
module sub(input i, output o, input j);
endmodule

(* blackbox *)
module foobar(input i, output o, input j);
endmodule

module top(input i, output o);
sub s0(i, o);
endmodule
EOT

techmap -map %techmap
hierarchy
check -assert

read_verilog -overwrite <<EOT
module top(input i, output o);
wire j;
sub s0(i, o, j);
endmodule
EOT

techmap -map %techmap
hierarchy
