succinct-0.0.0.1: components/succinct-simd/src/Data/Succinct/Simd/Comparison.hs
{-# LANGUAGE MultiWayIf #-}
module Data.Succinct.Simd.Comparison
( CmpEqWord8s(..)
) where
import Data.Succinct.Simd.Capabilities
import Data.Word
import qualified Data.Succinct.Simd.Comparison.Avx2 as AVX2
import qualified Data.Succinct.Simd.Comparison.Stock as STOCK
import qualified Data.Vector.Storable as DVS
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 #-}
instance CmpEqWord8s (DVS.Vector Word8) where
cmpEqWord8s w bs = if
| avx2Enabled -> AVX2.cmpEqWord8s w bs
| True -> STOCK.cmpEqWord8s w bs
{-# INLINE cmpEqWord8s #-}
instance CmpEqWord8s [DVS.Vector Word64] where
cmpEqWord8s w bs = if
| avx2Enabled -> AVX2.cmpEqWord8s w bs
| True -> STOCK.cmpEqWord8s w bs
{-# INLINE cmpEqWord8s #-}
instance CmpEqWord8s [DVS.Vector Word8] where
cmpEqWord8s w bs = if
| avx2Enabled -> AVX2.cmpEqWord8s w bs
| True -> STOCK.cmpEqWord8s w bs
{-# INLINE cmpEqWord8s #-}