[commit: ghc] simd: Add the Float32X4# primitive type and associated primops. (8cf2ee1)
Geoffrey Mainland
gmainlan at microsoft.com
Thu Jan 31 10:52:58 CET 2013
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : simd
http://hackage.haskell.org/trac/ghc/changeset/8cf2ee100babbc6ed1f679ec722b898109fb93a3
>---------------------------------------------------------------
commit 8cf2ee100babbc6ed1f679ec722b898109fb93a3
Author: Geoffrey Mainland <gmainlan at microsoft.com>
Date: Fri Oct 19 09:06:17 2012 +0100
Add the Float32X4# primitive type and associated primops.
This patch lays the groundwork needed for primop support for SIMD vectors. In
addition to the groundwork, we add support for the FloatX4# primitive type and
associated primops.
* Add the FloatX4# primitive type and associated primops.
* Add CodeGen support for Float vectors.
* Compile vector operations to LLVM vector operations in the LLVM code
generator.
* Make the x86 native backend fail gracefully when encountering vector primops.
* Only generate primop wrappers for vector primops when using LLVM.
compiler/cmm/CmmMachOp.hs | 29 ++
compiler/cmm/PprC.hs | 30 ++
compiler/codeGen/StgCmmPrim.hs | 478 ++++++++++++++++++++++---------
compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 43 +++
compiler/nativeGen/X86/CodeGen.hs | 36 +++-
compiler/prelude/PrelNames.lhs | 5 +
compiler/prelude/TysPrim.lhs | 23 ++-
compiler/prelude/primops.txt.pp | 95 ++++++
utils/genprimopcode/Main.hs | 28 ++-
9 files changed, 620 insertions(+), 147 deletions(-)
Diff suppressed because of size. To see it, use:
git show 8cf2ee100babbc6ed1f679ec722b898109fb93a3
More information about the ghc-commits
mailing list