X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectType.hs;h=e69bfd9f722686ed71ef111146bda0e26b731ca3;hb=a41bfc02fa0ce49f587e4b088d62c56266ab8889;hp=64de665f20ab9a71cff8e4b50c46ae6c6bf67921;hpb=91b99be06b80df38be9d099d8871e0a1ab1b3cd3;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectType.hs b/compiler/vectorise/VectType.hs index 64de665..e69bfd9 100644 --- a/compiler/vectorise/VectType.hs +++ b/compiler/vectorise/VectType.hs @@ -431,7 +431,7 @@ arrReprVars repr mkRepr :: TyCon -> VM Repr mkRepr vect_tc | [tys] <- rep_tys = boxedProductRepr tys - | all null rep_tys = enumRepr + -- | all null rep_tys = enumRepr | otherwise = sumRepr =<< mapM unboxedProductRepr rep_tys where rep_tys = map dataConRepArgTys $ tyConDataCons vect_tc @@ -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