diff options
author | Andres Notzli <andres.noetzli@gmail.com> | 2016-11-29 17:30:54 -0800 |
---|---|---|
committer | Andres Notzli <andres.noetzli@gmail.com> | 2016-11-30 15:33:35 -0800 |
commit | 05c7d36e7a4844ac1c8a14035776fbba6e00704b (patch) | |
tree | 1c9a5919a9ce461f64b9f8b7c26c26cf54c1b4d3 /test | |
parent | bc2378517a2f4100ba614cd44b3aa047089c82c8 (diff) |
Remove wrong `ExtractMultLeadingBit` rule
The rule `ExtractMultLeadingBit` estimated the number of leading zeros
wrong: when there were ones in the leading constant parts of the
factors, it was using the length of the non-zero part instead of the
length of the zero part. This commit includes an example for which the
previous version of the rule would cause a wrong answer.
Diffstat (limited to 'test')
-rw-r--r-- | test/regress/regress0/bv/Makefile.am | 3 | ||||
-rw-r--r-- | test/regress/regress0/bv/bug_extract_mult_leading_bit.smt2 | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/test/regress/regress0/bv/Makefile.am b/test/regress/regress0/bv/Makefile.am index b3c7250ff..2caaea799 100644 --- a/test/regress/regress0/bv/Makefile.am +++ b/test/regress/regress0/bv/Makefile.am @@ -112,7 +112,8 @@ CVC_TESTS = bvsimple.cvc sizecheck.cvc BUG_TESTS = \ bug260a.smt \ bug260b.smt \ - bug440.smt + bug440.smt \ + bug_extract_mult_leading_bit.smt2 TESTS = $(SMT_TESTS) $(SMT2_TESTS) $(CVC_TESTS) $(BUG_TESTS) diff --git a/test/regress/regress0/bv/bug_extract_mult_leading_bit.smt2 b/test/regress/regress0/bv/bug_extract_mult_leading_bit.smt2 new file mode 100644 index 000000000..8e3728587 --- /dev/null +++ b/test/regress/regress0/bv/bug_extract_mult_leading_bit.smt2 @@ -0,0 +1,7 @@ +(set-logic QF_BV) +(set-info :status sat) +(declare-fun x1 () (_ BitVec 15)) +(declare-fun x2 () (_ BitVec 15)) +(assert (not (= ((_ extract 64 60) (bvmul (concat #b00000000000000000000000000000000000000000000000000 x1) (concat #b10000000000000000000000000000000000000000000000000 x2))) #b00000))) +(check-sat) +(exit) |