hw-simd-0.1.1.4: hw-simd.cabal
cabal-version: 2.2
name: hw-simd
version: 0.1.1.4
synopsis: SIMD library
description: Please see the README on Github at <https://github.com/haskell-works/hw-simd#readme>
category: Data, Bit, SIMD
homepage: https://github.com/haskell-works/hw-simd#readme
bug-reports: https://github.com/haskell-works/hw-simd/issues
author: John Ky
maintainer: newhoggy@gmail.com
copyright: 2018 John Ky
license: BSD-3-Clause
license-file: LICENSE
tested-with: GHC == 8.6.4, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2
build-type: Simple
extra-source-files:
README.md
ChangeLog.md
cbits/simd.h
cbits/simd_debug.h
source-repository head
type: git
location: https://github.com/haskell-works/hw-simd
flag avx2
description: Enable avx2 instruction set
manual: False
default: False
flag bmi2
description: Enable bmi2 instruction set
manual: False
default: False
flag sse42
description: Enable SSE 4.2 optimisations.
manual: False
default: True
common base { build-depends: base >= 4.7 && < 5 }
common bits-extra { build-depends: bits-extra >= 0.0.1.2 && < 0.1 }
common bytestring { build-depends: bytestring >= 0.10 && < 0.11 }
common cassava { build-depends: cassava >= 0.5.1.0 && < 0.6 }
common containers { build-depends: containers }
common criterion { build-depends: criterion >= 1.4.1.0 && < 1.6 }
common deepseq { build-depends: deepseq >= 1.4 && < 1.5 }
common directory { build-depends: directory >= 1.2.2 && < 1.4 }
common hedgehog { build-depends: hedgehog >= 0.5 && < 0.7 }
common hspec { build-depends: hspec >= 2.4 && < 3 }
common hw-bits { build-depends: hw-bits >= 0.7.0.2 && < 0.8 }
common hw-hedgehog { build-depends: hw-hedgehog >= 0.1.0.1 && < 0.2 }
common hw-hspec-hedgehog { build-depends: hw-hspec-hedgehog >= 0.1.0.4 && < 0.2 }
common hw-prim { build-depends: hw-prim >= 0.6.2.12 && < 0.7 }
common hw-rankselect { build-depends: hw-rankselect >= 0.13 && < 0.14 }
common hw-rankselect-base { build-depends: hw-rankselect-base >= 0.3.2.0 && < 0.4 }
common lens { build-depends: lens }
common mmap { build-depends: mmap >= 0.5.9 && < 0.6 }
common text { build-depends: text >= 1.2.2 && < 2.0 }
common vector { build-depends: vector >= 0.12.0.1 && < 0.13 }
common semigroups { if (!impl(ghc >= 8.0.1)) { build-depends: semigroups >= 0.8.4 && < 0.19 } }
common transformers { if (!impl(ghc >= 8.0.1)) { build-depends: transformers >= 0.4 && < 0.6 } }
common common
default-language: Haskell2010
library
import: base, common
, bits-extra
, bytestring
, deepseq
, hw-bits
, hw-prim
, hw-rankselect
, hw-rankselect-base
, semigroups
, transformers
, vector
exposed-modules:
HaskellWorks.Data.Simd.Capabilities
HaskellWorks.Data.Simd.ChunkString
HaskellWorks.Data.Simd.Comparison
HaskellWorks.Data.Simd.Comparison.Avx2
HaskellWorks.Data.Simd.Comparison.Stock
HaskellWorks.Data.Simd.Internal.Bits
HaskellWorks.Data.Simd.Internal.Broadword
HaskellWorks.Data.Simd.Internal.ChunkString
HaskellWorks.Data.Simd.Internal.Foreign
HaskellWorks.Data.Simd.Internal.Marshal
HaskellWorks.Data.Simd.Logical
HaskellWorks.Data.Simd.Logical.Avx2
HaskellWorks.Data.Simd.Logical.Stock
other-modules: Paths_hw_simd
autogen-modules: Paths_hw_simd
hs-source-dirs: src
ghc-options: -O2 -Wall
include-dirs: cbits
c-sources:
cbits/simd_avx2.c
cbits/simd_sse2.c
if flag(sse42)
ghc-options: -msse4.2
cc-options: -msse4.2
if flag(bmi2)
cc-options: -mbmi2 -DBMI2_ENABLED
if (flag(bmi2)) && (impl(ghc >=8.4.1))
ghc-options: -mbmi2 -msse4.2
if flag(avx2)
cc-options: -mavx2 -DAVX2_ENABLED
if (flag(avx2)) && (impl(ghc >=8.4.1))
ghc-options: -mbmi2 -msse4.2
cpp-options: -DBMI2_ENABLED -DAVX2_ENABLED
if (impl(ghc >=8.0.1))
ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
if (!impl(ghc >=8.0.1))
build-depends:
semigroups >=0.8.4 && <0.19
, transformers >=0.4 && <0.6
build-tools:
c2hs
test-suite hw-simd-test
import: base, common
, bits-extra
, bytestring
, deepseq
, directory
, hedgehog
, hspec
, hw-bits
, hw-hedgehog
, hw-hspec-hedgehog
, hw-prim
, hw-rankselect
, hw-rankselect-base
, lens
, text
, vector
type: exitcode-stdio-1.0
main-is: Spec.hs
build-depends: hw-simd
other-modules:
HaskellWorks.Data.Simd.ComparisonSpec
HaskellWorks.Data.Simd.Internal.BroadwordSpec
HaskellWorks.Data.Simd.LogicalSpec
Paths_hw_simd
autogen-modules: Paths_hw_simd
hs-source-dirs: test
ghc-options: -O2 -Wall -threaded -rtsopts -with-rtsopts=-N
if flag(sse42)
ghc-options: -msse4.2
cc-options: -msse4.2
if flag(bmi2)
cc-options: -mbmi2 -DBMI2_ENABLED
if (flag(bmi2)) && (impl(ghc >=8.4.1))
ghc-options: -mbmi2 -msse4.2
if flag(avx2)
cc-options: -mavx2 -DAVX2_ENABLED
if (flag(avx2)) && (impl(ghc >=8.4.1))
ghc-options: -mbmi2 -msse4.2
cpp-options: -DBMI2_ENABLED -DAVX2_ENABLED
if (impl(ghc >=8.0.1))
ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
build-tool-depends: hspec-discover:hspec-discover
benchmark bench
import: base, common
, bits-extra
, bytestring
, cassava
, containers
, criterion
, deepseq
, directory
, hw-bits
, hw-prim
, hw-rankselect
, hw-rankselect-base
, mmap
, semigroups
, transformers
, vector
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules: Paths_hw_simd
autogen-modules: Paths_hw_simd
hs-source-dirs: bench
ghc-options: -O2 -Wall -msse4.2
build-depends: hw-simd
if flag(sse42)
ghc-options: -msse4.2
cc-options: -msse4.2
if flag(bmi2)
cc-options: -mbmi2 -DBMI2_ENABLED
if (flag(bmi2)) && (impl(ghc >=8.4.1))
ghc-options: -mbmi2 -msse4.2
if flag(avx2)
cc-options: -mavx2 -DAVX2_ENABLED
if (flag(avx2)) && (impl(ghc >=8.4.1))
ghc-options: -mbmi2 -msse4.2
cpp-options: -DBMI2_ENABLED -DAVX2_ENABLED
if (impl(ghc >=8.0.1))
ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints