diff options
| author | Alasdair | 2019-04-13 17:47:26 +0100 |
|---|---|---|
| committer | Alasdair | 2019-04-13 17:47:26 +0100 |
| commit | 7cfbabc2bfba4f7d2ba0d3f91c7068ac3b1a84d1 (patch) | |
| tree | fcd9dd98fc2c1ae2a30c0e4379e9d4550126b3c1 /test/smt/lzcnt_3.unsat.sail | |
| parent | e89581c010b88de474f3f31748cb815a3b21d1af (diff) | |
SMT: Add count_leading_zeros and more builtins
Diffstat (limited to 'test/smt/lzcnt_3.unsat.sail')
| -rw-r--r-- | test/smt/lzcnt_3.unsat.sail | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/smt/lzcnt_3.unsat.sail b/test/smt/lzcnt_3.unsat.sail new file mode 100644 index 00000000..b949a545 --- /dev/null +++ b/test/smt/lzcnt_3.unsat.sail @@ -0,0 +1,17 @@ +default Order dec + +$include <prelude.sail> + +val lzcnt = "count_leading_zeros" : forall 'w, 'w >= 1. bits('w) -> range(0, 'w) + +$property +function prop(bv: bits(5)) -> bool = { + let x = unsigned(bv); + if x > 0 then { + let z = sail_zeros(x); + let p1 = lzcnt(z) == x; + let p2 = lzcnt(z @ 0xF) == x; + let p3 = lzcnt(0x0 @ z) == 4 + x; + p1 & p2 + } else true +} |
