Add RdrEnv to vectorisation state
[ghc-hetmet.git] / compiler / vectorise / VectCore.hs
index 9118214..1ccc381 100644 (file)
@@ -7,7 +7,7 @@ module VectCore (
   vNonRec, vRec,
 
   vVar, vType, vNote, vLet,
-  mkVLams, mkVVarApps
+  vLams, vLamsWithoutLC, vVarApps
 ) where
 
 #include "HsVersions.h"
@@ -54,13 +54,18 @@ vRec vs es = (Rec (zip vvs ves), Rec (zip lvs les))
 vLet :: VBind -> VExpr -> VExpr
 vLet = zipWithVect Let
 
-mkVLams :: [VVar] -> VExpr -> VExpr
-mkVLams vvs (ve,le) = (mkLams vs ve, mkLams ls le)
+vLams :: Var -> [VVar] -> VExpr -> VExpr
+vLams lc vs (ve, le) = (mkLams vvs ve, mkLams (lc:lvs) le)
+  where
+    (vvs,lvs) = unzip vs
+
+vLamsWithoutLC :: [VVar] -> VExpr -> VExpr
+vLamsWithoutLC vvs (ve,le) = (mkLams vs ve, mkLams ls le)
   where
     (vs,ls) = unzip vvs
 
-mkVVarApps :: Var -> VExpr -> [VVar] -> VExpr
-mkVVarApps lc (ve, le) vvs = (ve `mkVarApps` vs, le `mkVarApps` (lc : ls))
+vVarApps :: Var -> VExpr -> [VVar] -> VExpr
+vVarApps lc (ve, le) vvs = (ve `mkVarApps` vs, le `mkVarApps` (lc : ls))
   where
     (vs,ls) = unzip vvs