pystencils.backend.ast.axes.PsSimdAxis#
- class pystencils.backend.ast.axes.PsSimdAxis(lanes, range, body)#
Axis modelling a SIMD block.
A SIMD axis with k lanes translates to k iterations unrolled and packed into vectorized operations.
The range of a SIMD axis is interpreted as follows: -
counteris the scalar counter symbol that will be vectorized -startis the value ofcounteron the first SIMD lane -stepis the counter’s stride -stopmust be equal tostart + lanes * step- Parameters:
lanes (int)
range (PsAxisRange)
body (PsBlock)
-
can_hoist:
bool= True# Whether or not this axis type is subject to iteration-invariant code motion.
If set to
False, theHoistIterationInvariantDeclarationspass will ignore this axis type.
- _clone_structural()#
Implementation of structural node cloning.
- Return type:
PsStructuralNode