From a0dbb0b1ec00612c56771f0617fbe37f7934e68a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de>
Date: Thu, 13 Sep 2018 13:42:15 +0200
Subject: [PATCH] Bugfix: VectorizedSumfactKernel needs quadrature_permutation

---
 python/dune/perftool/sumfact/symbolic.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/python/dune/perftool/sumfact/symbolic.py b/python/dune/perftool/sumfact/symbolic.py
index c2117693..424b8714 100644
--- a/python/dune/perftool/sumfact/symbolic.py
+++ b/python/dune/perftool/sumfact/symbolic.py
@@ -575,6 +575,7 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable)
                  vertical_width=1,
                  buffer=None,
                  insn_dep=frozenset(),
+                 quadrature_permutation=None,
                  ):
         # Assert the input data structure
         assert isinstance(kernels, tuple)
@@ -596,6 +597,11 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable)
         # Join the instruction dependencies of all subkernels
         insn_dep = insn_dep.union(k.insn_dep for k in kernels)
 
+        # Get order of quadrature points
+        quadrature_permutation = kernels[0].quadrature_permutation
+        for k in kernels:
+            assert k.quadrature_permutation == quadrature_permutation
+
         # We currently assume that all subkernels are consecutive, 0-based within the vector
         assert None not in kernels
 
@@ -605,6 +611,7 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable)
                                  buffer=buffer,
                                  insn_dep=insn_dep,
                                  vertical_width=vertical_width,
+                                 quadrature_permutation=quadrature_permutation,
                                  )
 
         prim.Variable.__init__(self, "VecSUMFAC")
-- 
GitLab