Vectorise.Exp
Description
Vectorisation of expressions.
- vectPolyExpr :: Bool -> [Var] -> CoreExprWithFVs -> VM (Inline, Bool, VExpr)
- vectScalarFun :: Bool -> [Var] -> CoreExpr -> VM VExpr
Documentation
Arguments
| :: Bool | When vectorising the RHS of a binding, whether that binding is a loop breaker. |
| -> [Var] | |
| -> CoreExprWithFVs | |
| -> VM (Inline, Bool, VExpr) |
Vectorise a polymorphic expression.
Arguments
| :: Bool | Was the function marked as scalar by the user? |
| -> [Var] | Functions names in same recursive binding group |
| -> CoreExpr | Expression to be vectorised |
| -> VM VExpr |
Vectorise an expression of functional type, where all arguments and the result are of scalar
type (i.e., Int, Float, Double etc.) and which does not contain any subcomputations that
involve parallel arrays. Such functionals do not requires the full blown vectorisation
transformation; instead, they can be lifted by application of a member of the zipWith family
(i.e., map, zipWith, zipWith3', etc.)