hw-simd-0.1.0.0: src/HaskellWorks/Data/Simd/Comparison.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiWayIf #-}
module HaskellWorks.Data.Simd.Comparison
( CmpEqWord8s(..)
) where
import Data.Word
import HaskellWorks.Data.Simd.Capabilities
import qualified Data.Vector.Storable as DVS
import qualified HaskellWorks.Data.Simd.Comparison.Avx2 as AVX2
import qualified HaskellWorks.Data.Simd.Comparison.Stock as STOCK
class CmpEqWord8s a where
cmpEqWord8s :: Word8 -> a -> a
instance CmpEqWord8s (DVS.Vector Word64) where
cmpEqWord8s w bs = if
| avx2Enabled -> AVX2.cmpEqWord8s w bs
| True -> STOCK.cmpEqWord8s w bs
{-# INLINE cmpEqWord8s #-}