From 3d8dd38fdb0d29a44fbe01819f9ac7c9bba050db Mon Sep 17 00:00:00 2001
From: Nils Kohl <nils.kohl@fau.de>
Date: Fri, 26 Apr 2019 16:07:34 +0200
Subject: [PATCH] Relaxed assertion in vectorization

---
 pystencils/cpu/vectorization.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/pystencils/cpu/vectorization.py b/pystencils/cpu/vectorization.py
index 2790fe3df..619a55ad0 100644
--- a/pystencils/cpu/vectorization.py
+++ b/pystencils/cpu/vectorization.py
@@ -92,8 +92,10 @@ def vectorize_inner_loops_and_adapt_load_stores(ast_node, vector_width, assume_a
             loop_node.stop = new_stop
         else:
             cutting_point = modulo_floor(loop_range, vector_width) + loop_node.start
-            loop_nodes = cut_loop(loop_node, [cutting_point])
-            assert len(loop_nodes) in (1, 2)  # 2 for main and tail loop, 1 if loop range divisible by vector width
+            loop_nodes = [l for l in cut_loop(loop_node, [cutting_point]).args if isinstance(l, ast.LoopOverCoordinate)]
+            assert len(loop_nodes) in (0, 1, 2)  # 2 for main and tail loop, 1 if loop range divisible by vector width
+            if len(loop_nodes) == 0:
+                continue
             loop_node = loop_nodes[0]
         
         # Find all array accesses (indexed) that depend on the loop counter as offset
-- 
GitLab