Add counter-example from @cliffordwolf
authorEddie Hung <eddie@fpgeh.com>
Fri, 13 Sep 2019 23:41:10 +0000 (16:41 -0700)
committerEddie Hung <eddie@fpgeh.com>
Fri, 13 Sep 2019 23:41:10 +0000 (16:41 -0700)
tests/various/peepopt.ys

index abee9cc0a5325e904c276ff65f419bad3a51098b..7c1c3b5bc03f95575039db497bb37287003c1841 100644 (file)
@@ -30,6 +30,30 @@ select -assert-count 0 t:$shr t:$mul %% t:* %D
 
 ####################
 
+design -reset
+read_verilog <<EOT
+module peepopt_shiftmul_2 (input [11:0] D, input [1:0] S, output [11:0] Y);
+       assign Y = D >> (S*3);
+endmodule
+EOT
+
+prep
+design -save gold
+peepopt
+design -stash gate
+
+design -import gold -as gold peepopt_shiftmul_2
+design -import gate -as gate peepopt_shiftmul_2
+
+miter -equiv -make_assert -make_outputs -ignore_gold_x -flatten gold gate miter
+sat -show-public -enable_undef -prove-asserts miter
+select -assert-count 1 t:$shr
+select -assert-count 1 t:$mul
+select -assert-count 0 t:$shr t:$mul %% t:* %D
+exit
+
+####################
+
 design -reset
 read_verilog <<EOT
 module peepopt_muldiv_0(input [1:0] i, output [1:0] o);