diff --git a/python/dune/perftool/sumfact/symbolic.py b/python/dune/perftool/sumfact/symbolic.py index c21176933d79139b4d7fa06aef15b77d5634370c..424b87142b6846f390e25c8e995509a6144e0ea0 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")