diff --git a/src/pystencils/backend/ast/vector.py b/src/pystencils/backend/ast/vector.py index 36217fa2c31a0ea89f7a5bc5255165456df8a7ba..84875c60455b640f0bdec464169cee15e6ee7507 100644 --- a/src/pystencils/backend/ast/vector.py +++ b/src/pystencils/backend/ast/vector.py @@ -50,6 +50,8 @@ class PsVecMemAcc(PsExpression, PsLvalue, PsVectorOp): offset: Offset inside the memory region vector_entries: Number of elements to access stride: Optional integer step size for strided access, or ``None`` for contiguous access + aligned: For contiguous accesses, whether the access is guaranteed to be naturally aligned + according to the vector data type """ __match_args__ = ("pointer", "offset", "vector_entries", "stride", "aligned") diff --git a/src/pystencils/backend/transformations/loop_vectorizer.py b/src/pystencils/backend/transformations/loop_vectorizer.py index 9ee6ec366315e2e53d83b7013474dfeff8c2dd86..e01e657e3edf015f85fec2b3954ec40157051515 100644 --- a/src/pystencils/backend/transformations/loop_vectorizer.py +++ b/src/pystencils/backend/transformations/loop_vectorizer.py @@ -187,13 +187,13 @@ class LoopVectorizer: trailing_ctr = self._ctx.duplicate_symbol(scalar_ctr) trailing_loop_body = substitute_symbols( - loop.body, {scalar_ctr: PsExpression.make(trailing_ctr)} + loop.body.clone(), {scalar_ctr: PsExpression.make(trailing_ctr)} ) trailing_loop = PsLoop( PsExpression.make(trailing_ctr), PsExpression.make(trailing_start), - loop.stop, - loop.step, + loop.stop.clone(), + loop.step.clone(), trailing_loop_body, )