mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
Add initial implementation of bit-vector SLS evaluation module in bv_sls_eval.cpp
This commit is contained in:
parent
27e3d28cfc
commit
027dd9cfd8
3 changed files with 1996 additions and 5 deletions
1995
src/ast/sls/bv_sls_eval.cpp
Normal file
1995
src/ast/sls/bv_sls_eval.cpp
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1838,7 +1838,6 @@ namespace sls {
|
|||
auto& ve = assign_value(e);
|
||||
for (unsigned j = e->get_num_args() - 1; j > idx; --j)
|
||||
bw += bv.get_bv_size(e->get_arg(j));
|
||||
//verbose_stream() << m_bounded_pp(e, m) << " " << idx << " " << bw << "\n";
|
||||
auto& a = wval(e, idx);
|
||||
for (unsigned i = 0; i < a.bw; ++i)
|
||||
m_tmp.set(i, ve.get(i + bw));
|
||||
|
|
|
@ -47,10 +47,7 @@ namespace sls {
|
|||
for (unsigned i = 1; i < num_args; ++i)\
|
||||
r = oper(r, arg(i)); \
|
||||
|
||||
if (bv.is_concat(e)) {
|
||||
FOLD_OP(bv.mk_concat);
|
||||
}
|
||||
else if (bv.is_bv_sdiv(e) || bv.is_bv_sdiv0(e) || bv.is_bv_sdivi(e)) {
|
||||
if (bv.is_bv_sdiv(e) || bv.is_bv_sdiv0(e) || bv.is_bv_sdivi(e)) {
|
||||
r = mk_sdiv(arg(0), arg(1));
|
||||
}
|
||||
else if (bv.is_bv_smod(e) || bv.is_bv_smod0(e) || bv.is_bv_smodi(e)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue