From: Roman Leshchinskiy Date: Thu, 13 Dec 2007 03:48:55 +0000 (+0000) Subject: Treat some standard data cons specially during vectorisation X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0873e46c2f20a6a168bca71a14d48613b22c94da;p=ghc-hetmet.git Treat some standard data cons specially during vectorisation This is a temporary hack which allows us to vectorise literals. --- diff --git a/compiler/vectorise/Vectorise.hs b/compiler/vectorise/Vectorise.hs index 1b7bca0..80c896c 100644 --- a/compiler/vectorise/Vectorise.hs +++ b/compiler/vectorise/Vectorise.hs @@ -243,6 +243,17 @@ vectExpr e@(_, AnnApp _ arg) where (fn, tys) = collectAnnTypeArgs e +vectExpr (_, AnnApp (_, AnnVar v) (_, AnnLit lit)) + | Just con <- isDataConId_maybe v + , is_special_con con + = do + let vexpr = App (Var v) (Lit lit) + lexpr <- liftPA vexpr + return (vexpr, lexpr) + where + is_special_con con = con `elem` [intDataCon, floatDataCon, doubleDataCon] + + vectExpr (_, AnnApp fn arg) = do arg_ty' <- vectType arg_ty