module Main where

import Criterion.Main
import Data.Bits
import Data.Monoid            ((<>))
import Data.Word
import HaskellWorks.Prim.Bits

import qualified Data.Vector.Storable as DVS

setup :: IO ()
setup = return ()

benchPdep :: [Benchmark]
benchPdep =
  [ env setup $ \bv -> bgroup "bits"
    [ bench "pdep64"    (whnf (pdep64 0) (0 :: Word64))
    , bench "popCount"  (whnf popCount   (0 :: Word64))
    , bench "sin"       (whnf sin        (0 :: Double))
    ]
  ]

main :: IO ()
main = defaultMain benchPdep