llvm-extra 0.8.2 → 0.8.3
raw patch · 2 files changed
+14/−4 lines, 2 files
Files
- llvm-extra.cabal +2/−2
- src/Array.hs +12/−2
llvm-extra.cabal view
@@ -1,5 +1,5 @@ Name: llvm-extra-Version: 0.8.2+Version: 0.8.3 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -76,7 +76,7 @@ default: True Source-Repository this- Tag: 0.8.2+ Tag: 0.8.3 Type: darcs Location: http://code.haskell.org/~thielema/llvm-extra/
src/Array.hs view
@@ -111,6 +111,16 @@ A.mul (valueOf 0.25) =<< add s0 s1 -} +mixScalar :: Value (Vector D4 Float) -> CodeGenFunction r (Value Float)+mixScalar y = do+ y0 <- extractelement y (valueOf 0)+ y1 <- extractelement y (valueOf 1)+ y2 <- extractelement y (valueOf 2)+ y3 <- extractelement y (valueOf 3)+ s0 <- A.add y0 y1+ s1 <- A.add y2 y3+ A.mul (valueOf 0.25) =<< A.add s0 s1+ {- Here we do use consistently Vectors of size 4. Since we declare the upper floats as undefined@@ -133,8 +143,8 @@ -} mixHorizontal :: Value (Vector D4 Float) -> CodeGenFunction r (Value Float) mixHorizontal y = do- z <- Ext.runUnsafe X86.haddps (value undef) y- s <- Ext.runUnsafe X86.haddps (value undef) z+ z <- Ext.runUnsafe X86.haddps y (value undef)+ s <- Ext.runUnsafe X86.haddps z (value undef) A.mul (valueOf 0.25) =<< extractelement s (valueOf 0) {-