From 50d53928234be0594657b74c8b4edae12e746eb0 Mon Sep 17 00:00:00 2001
From: Markus Holzer <markus.holzer@fau.de>
Date: Sun, 6 Dec 2020 22:30:29 +0100
Subject: [PATCH] FIX pystencils install bug

---
 MANIFEST.in                                   |  2 ++
 pystencils_tests/test_vectorization.py        |  2 +-
 .../test_vectorization_specific.py            | 35 +++++++++++++++++++
 setup.py                                      |  3 +-
 4 files changed, 40 insertions(+), 2 deletions(-)
 create mode 100644 pystencils_tests/test_vectorization_specific.py

diff --git a/MANIFEST.in b/MANIFEST.in
index f32d4f3d1..5c16bb200 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,3 +1,5 @@
 include README.md
 include COPYING.txt
 include RELEASE-VERSION
+global-include *.pyx
+global-exclude boundaries/createindexlistcython.c
diff --git a/pystencils_tests/test_vectorization.py b/pystencils_tests/test_vectorization.py
index 3cc1be4f3..057402c33 100644
--- a/pystencils_tests/test_vectorization.py
+++ b/pystencils_tests/test_vectorization.py
@@ -42,7 +42,7 @@ def test_inplace_update():
         f1 @= 2 * s.tmp0
         f2 @= 2 * s.tmp0
 
-    ast = ps.create_kernel(update_rule, cpu_vectorize_info={'instruction_set': 'avx'})
+    ast = ps.create_kernel(update_rule, cpu_vectorize_info=True)
     kernel = ast.compile()
     kernel(f=arr)
     np.testing.assert_equal(arr, 2)
diff --git a/pystencils_tests/test_vectorization_specific.py b/pystencils_tests/test_vectorization_specific.py
new file mode 100644
index 000000000..6764f282b
--- /dev/null
+++ b/pystencils_tests/test_vectorization_specific.py
@@ -0,0 +1,35 @@
+import pytest
+
+import numpy as np
+import sympy as sp
+
+import pystencils as ps
+from pystencils.backends.simd_instruction_sets import get_supported_instruction_sets
+from pystencils.cpu.vectorization import vectorize
+from pystencils.fast_approximation import insert_fast_sqrts, insert_fast_divisions
+from pystencils.transformations import replace_inner_stride_with_one
+from pystencils.backends.simd_instruction_sets import get_supported_instruction_sets
+
+supported_instruction_sets = get_supported_instruction_sets() if get_supported_instruction_sets() else []
+
+
+@pytest.mark.parametrize('instruction_set', supported_instruction_sets)
+def test_vectorisation_varying_arch(instruction_set):
+    shape = (9, 9, 3)
+    arr = np.ones(shape, order='f')
+
+    @ps.kernel
+    def update_rule(s):
+        f = ps.fields("f(3) : [2D]", f=arr)
+        s.tmp0 @= f(0)
+        s.tmp1 @= f(1)
+        s.tmp2 @= f(2)
+        f0, f1, f2 = f(0), f(1), f(2)
+        f0 @= 2 * s.tmp0
+        f1 @= 2 * s.tmp0
+        f2 @= 2 * s.tmp0
+
+    ast = ps.create_kernel(update_rule, cpu_vectorize_info={'instruction_set': instruction_set})
+    kernel = ast.compile()
+    kernel(f=arr)
+    np.testing.assert_equal(arr, 2)
diff --git a/setup.py b/setup.py
index d917867c1..b209fcbb9 100644
--- a/setup.py
+++ b/setup.py
@@ -88,7 +88,8 @@ setuptools.setup(name='pystencils',
                  install_requires=['sympy>=1.1', 'numpy', 'appdirs', 'joblib'],
                  package_data={'pystencils': ['include/*.h',
                                               'backends/cuda_known_functions.txt',
-                                              'backends/opencl1.1_known_functions.txt']},
+                                              'backends/opencl1.1_known_functions.txt',
+                                              'boundaries/createindexlistcython.pyx']},
 
                  ext_modules=cython_extensions("pystencils.boundaries.createindexlistcython") if USE_CYTHON else [],
                  classifiers=[
-- 
GitLab