Vectorisation of expressions.
- vectPolyExpr :: Bool -> [Var] -> CoreExprWithFVs -> VM (Inline, Bool, VExpr)
- vectScalarFun :: Bool -> [Var] -> CoreExpr -> VM VExpr
Documentation
:: 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.
:: 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.)