Fix bugs in vectorisation of case expressions
[ghc-hetmet.git] / compiler / vectorise / VectType.hs
index 64de665..a9db43c 100644 (file)
@@ -1022,7 +1022,7 @@ fromVect (FunTy arg_ty res_ty) expr
       vres_ty <- vectType res_ty
       apply   <- builtin applyClosureVar
       body    <- fromVect res_ty
-               $ Var apply `mkTyApps` [arg_ty, res_ty] `mkApps` [expr, Var arg]
+               $ Var apply `mkTyApps` [varg_ty, vres_ty] `mkApps` [expr, varg]
       return $ Lam arg body
 fromVect ty expr
   = identityConv ty >> return expr
@@ -1042,6 +1042,7 @@ identityConvTyCon :: TyCon -> VM ()
 identityConvTyCon tc
   | isBoxedTupleTyCon tc = return ()
   | isUnLiftedTyCon tc   = return ()
-  | otherwise            = maybeV (lookupTyCon tc) >> return ()
-
+  | otherwise            = do
+                             tc' <- maybeV (lookupTyCon tc)
+                             if tc == tc' then return () else noV