X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectorise.hs;h=1b7bca0153695641b1705c36d3b6a816fba1fcb2;hb=9fd454ab395b70946928ed92c3cb7b28a4d036bc;hp=fac66ec88de9fc1eb13f4f06fbbf3448034c234e;hpb=6bd4bdcbb35bb49728a025cf3b4b2a87793dbe8e;p=ghc-hetmet.git diff --git a/compiler/vectorise/Vectorise.hs b/compiler/vectorise/Vectorise.hs index fac66ec..1b7bca0 100644 --- a/compiler/vectorise/Vectorise.hs +++ b/compiler/vectorise/Vectorise.hs @@ -216,6 +216,8 @@ vectLiteral lit return (Lit lit, lexpr) vectPolyExpr :: CoreExprWithFVs -> VM VExpr +vectPolyExpr (_, AnnNote note expr) + = liftM (vNote note) $ vectPolyExpr expr vectPolyExpr expr = polyAbstract tvs $ \abstract -> do @@ -335,6 +337,14 @@ vectAlgCase tycon ty_args scrut bndr ty [(DEFAULT, [], body)] (vbndr, vbody) <- vectBndrIn bndr (vectExpr body) return $ vCaseDEFAULT vscrut vbndr vty lty vbody +vectAlgCase tycon ty_args scrut bndr ty [(DataAlt dc, [], body)] + = do + vscrut <- vectExpr scrut + vty <- vectType ty + lty <- mkPArrayType vty + (vbndr, vbody) <- vectBndrIn bndr (vectExpr body) + return $ vCaseDEFAULT vscrut vbndr vty lty vbody + vectAlgCase tycon ty_args scrut bndr ty [(DataAlt dc, bndrs, body)] = do vect_tc <- maybeV (lookupTyCon tycon)