[commit: ghc] : Add the Float32X4# primitive type and associated primops. (4af6207)
Geoffrey Mainland
gmainlan at microsoft.com
Fri Feb 1 23:02:33 CET 2013
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch :
http://hackage.haskell.org/trac/ghc/changeset/4af62075bbe9e96a3678fc90288496e0c4c7c17d
>---------------------------------------------------------------
commit 4af62075bbe9e96a3678fc90288496e0c4c7c17d
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 4af62075bbe9e96a3678fc90288496e0c4c7c17d
More information about the ghc-commits
mailing list