hw-simd 0.1.1.0 → 0.1.1.1
raw patch · 3 files changed
+9/−8 lines, 3 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ HaskellWorks.Data.Simd.Comparison.Avx2: instance HaskellWorks.Data.Simd.Comparison.Avx2.CmpEqWord8s HaskellWorks.Data.Simd.Internal.ChunkString.ChunkString
Files
- hw-simd.cabal +1/−1
- src/HaskellWorks/Data/Simd/Comparison/Avx2.hs +8/−5
- src/HaskellWorks/Data/Simd/Internal/ChunkString.hs +0/−2
hw-simd.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: hw-simd-version: 0.1.1.0+version: 0.1.1.1 synopsis: SIMD library description: Please see the README on Github at <https://github.com/haskell-works/hw-simd#readme> category: Data, Bit, SIMD
src/HaskellWorks/Data/Simd/Comparison/Avx2.hs view
@@ -14,6 +14,7 @@ import qualified Foreign.Marshal.Unsafe as F import qualified Foreign.Ptr as F import qualified HaskellWorks.Data.ByteString as BS+import qualified HaskellWorks.Data.Simd.ChunkString as CS import qualified HaskellWorks.Data.Simd.Internal.Foreign as F import qualified HaskellWorks.Data.Vector.AsVector8 as V import qualified HaskellWorks.Data.Vector.Storable as DVS@@ -35,7 +36,7 @@ let ending = DVS.padded ((DVS.length v + 63) `div` 64) (DVS.drop alignment v) let (endFptr, _, _) = DVS.unsafeToForeignPtr ending F.withForeignPtr endFptr $ \endPtr -> do- void $ F.avx2Cmpeq8 (fromIntegral w8) (tgtPtr `F.plusPtr` (w64sLen * 64)) (fromIntegral w64sLen) (F.castPtr endPtr)+ void $ F.avx2Cmpeq8 (fromIntegral w8) (tgtPtr `F.plusPtr` (w64sLen * 8)) (fromIntegral disalignment) (F.castPtr endPtr) return $ DVS.unsafeFromForeignPtr tgtFptr 0 tgtLen where (srcFptr, srcOffset, srcLen) = DVS.unsafeToForeignPtr v@@ -81,7 +82,9 @@ cmpEqWord8s w8 vs = BS.toByteString . cmpEqWord8s w8 . V.asVector8 <$> vs {-# INLINE cmpEqWord8s #-} --- instance CmpEqWord8s CS.ChunkString where--- type Target CS.ChunkString = CS.ChunkString--- cmpEqWord8s w8 = CS.toChunkString . cmpEqWord8s w8 . BS.toByteStrings--- {-# INLINE cmpEqWord8s #-}+instance CmpEqWord8s CS.ChunkString where+ type Target CS.ChunkString = CS.ChunkString+ cmpEqWord8s w8 = CS.toChunkString . cmpEqWord8s w8 . BS.toByteStrings+ {-# INLINE cmpEqWord8s #-}++
src/HaskellWorks/Data/Simd/Internal/ChunkString.hs view
@@ -4,8 +4,6 @@ module HaskellWorks.Data.Simd.Internal.ChunkString where import Data.Word-import HaskellWorks.Data.AtIndex-import HaskellWorks.Data.Bits.BitWise import HaskellWorks.Data.ByteString import HaskellWorks.Data.ByteString.Lazy