diff --git a/pystencils/cpu/kernelcreation.py b/pystencils/cpu/kernelcreation.py index c99332ff0f5f4b181ec6f46ec0cf404c5d85359f..e58641e021d485f34098bfc920ad43beda10e589 100644 --- a/pystencils/cpu/kernelcreation.py +++ b/pystencils/cpu/kernelcreation.py @@ -76,6 +76,8 @@ def create_kernel(assignments: NodeCollection, base_pointer_spec = config.base_pointer_specification if base_pointer_spec is None: base_pointer_spec = [] + if config.cpu_vectorize_info and config.cpu_vectorize_info.get('nontemporal'): + base_pointer_spec = [['spatialInner0'], ['spatialInner1']] if len(loop_order) >= 2 else [['spatialInner0']] base_pointer_info = {field.name: parse_base_pointer_info(base_pointer_spec, loop_order, field.spatial_dimensions, field.index_dimensions) for field in fields_without_buffers} diff --git a/pystencils_tests/test_vectorization.py b/pystencils_tests/test_vectorization.py index 071bc240503a2ecf2729539d8cfb6101ff105ffa..302d8cbd9de5c53e60bb0b43d24e2ab1d8155228 100644 --- a/pystencils_tests/test_vectorization.py +++ b/pystencils_tests/test_vectorization.py @@ -141,8 +141,7 @@ def test_aligned_and_nt_stores(openmp, instruction_set=instruction_set): 'assume_inner_stride_one': True} update_rule = [ps.Assignment(f.center(), 0.25 * (g[-1, 0] + g[1, 0] + g[0, -1] + g[0, 1]))] # Without the base pointer spec, the inner store is not aligned - config = pystencils.config.CreateKernelConfig(target=dh.default_target, cpu_vectorize_info=opt, cpu_openmp=openmp, - base_pointer_specification=[['spatialInner0']]) + config = pystencils.config.CreateKernelConfig(target=dh.default_target, cpu_vectorize_info=opt, cpu_openmp=openmp) ast = ps.create_kernel(update_rule, config=config) if instruction_set in ['sse'] or instruction_set.startswith('avx'): assert 'stream' in ast.instruction_set diff --git a/pystencils_tests/test_vectorization_specific.py b/pystencils_tests/test_vectorization_specific.py index 610f671e7163ea7885ac1d2f43e7f78c96fab8ac..46e13c2d7f59bfaa9fa50f5e3d8632da3c1a25ac 100644 --- a/pystencils_tests/test_vectorization_specific.py +++ b/pystencils_tests/test_vectorization_specific.py @@ -116,8 +116,7 @@ def test_alignment_and_correct_ghost_layers(gl_field, gl_kernel, instruction_set opt = {'instruction_set': instruction_set, 'assume_aligned': True, 'nontemporal': True, 'assume_inner_stride_one': True} config = pystencils.config.CreateKernelConfig(target=dh.default_target, - cpu_vectorize_info=opt, ghost_layers=gl_kernel, - base_pointer_specification=[['spatialInner0']]) + cpu_vectorize_info=opt, ghost_layers=gl_kernel) ast = ps.create_kernel(update_rule, config=config) kernel = ast.compile() if gl_kernel != gl_field: