sbv-8.7: SBVBenchSuite/BenchSuite/BitPrecise/MultMask.hs
-----------------------------------------------------------------------------
-- |
-- Module : BenchSuite.BitPrecise.MultMask
-- Copyright : (c) Jeffrey Young
-- Levent Erkok
-- License : BSD3
-- Maintainer: erkokl@gmail.com
-- Stability : experimental
--
-- Bench suite for Documentation.SBV.Examples.BitPrecise.MultMask
-----------------------------------------------------------------------------
{-# OPTIONS_GHC -Wall -Werror #-}
module BenchSuite.BitPrecise.MultMask(benchmarks) where
import BenchSuite.Bench.Bench as B
import Data.SBV
-- benchmark suite
benchmarks :: Runner
benchmarks = rGroup
[ B.runWith conf "MultMask" find
]
where find = do mask <- exists "mask"
mult <- exists "mult"
inp <- forall "inp"
let res = (mask .&. inp) * (mult :: SWord64)
solve [inp `sExtractBits` [7, 15 .. 63] .== res `sExtractBits` [56 .. 63]]
conf = z3{printBase=16, satCmd = "(check-sat-using (and-then simplify smtfd))"}