bv2int: new options for bvand translation (#5096)
authoryoni206 <yoni206@users.noreply.github.com>
Wed, 23 Sep 2020 13:00:59 +0000 (06:00 -0700)
committerGitHub <noreply@github.com>
Wed, 23 Sep 2020 13:00:59 +0000 (08:00 -0500)
commit9967954ba1b7b405b6d92d83ebc0adc43f6623b9
treed2c08b4b644a23e1092f31a4d242949f3c5a293f
parentcfe0fc1346c41048fa76f7e0fc582afbe95364a2
bv2int: new options for bvand translation (#5096)

Currently, (bvand x y) is translated into a sum of ITEs.
This PR introduces two more options for the translation of (bvand x y):

bv: cast the integer translations of x and y back to bit-vectors, do a bvand, and cast the result to integers.
iand: use the builtin iand operator.
These options are added to many of the tests, and some new tests are added.
In addition, some tests are cleaned up (e.g., removing --no-check-unsat-cores for satisfiable benchmarks).
Finally, some tests are moved from regress0 to regress2 because they take several seconds to complete (2 -- 10 seconds).
27 files changed:
src/options/smt_options.toml
src/preprocessing/passes/bv_to_int.cpp
test/regress/CMakeLists.txt
test/regress/regress0/bv/bv_to_int1.smt2
test/regress/regress0/bv/bv_to_int2.smt2 [deleted file]
test/regress/regress0/bv/bv_to_int_bitwise.smt2 [deleted file]
test/regress/regress0/bv/bv_to_int_bvmul1.smt2 [deleted file]
test/regress/regress0/bv/bv_to_int_bvmul2.smt2
test/regress/regress0/bv/bv_to_int_bvuf_to_intuf.smt2
test/regress/regress0/bv/bv_to_int_bvuf_to_intuf_smtlib.smt2 [deleted file]
test/regress/regress0/bv/bv_to_int_bvuf_to_intuf_sorts.smt2
test/regress/regress2/bv_to_int2.smt2 [new file with mode: 0644]
test/regress/regress2/bv_to_int_ashr.smt2
test/regress/regress2/bv_to_int_bitwise.smt2 [new file with mode: 0644]
test/regress/regress2/bv_to_int_bvmul1.smt2 [new file with mode: 0644]
test/regress/regress2/bv_to_int_bvuf_to_intuf_smtlib.smt2 [new file with mode: 0644]
test/regress/regress2/bv_to_int_inc1.smt2
test/regress/regress2/bv_to_int_mask_array_1.smt2
test/regress/regress2/bv_to_int_mask_array_2.smt2
test/regress/regress2/bv_to_int_mask_array_3.smt2
test/regress/regress3/bv_to_int_bench_9839.smt2.minimized.smt2 [new file with mode: 0644]
test/regress/regress3/bv_to_int_check_bvsge_bvashr0_4bit.smt2.minimized.smt2
test/regress/regress3/bv_to_int_check_bvsgt_bvlshr0_4bit.smt2.minimized.smt2 [new file with mode: 0644]
test/regress/regress3/bv_to_int_check_ne_bvlshr0_4bit.smt2.minimized.smt2
test/regress/regress3/bv_to_int_quant1.smt2 [new file with mode: 0644]
test/regress/regress3/bv_to_int_quant2.smt2 [new file with mode: 0644]
test/regress/regress3/bv_to_int_signed_sub_or.smt2 [new file with mode: 0644]