  SIMD vectorization has lately become a key challenge in high-performance
computing. However, hand-written explicitly vectorized code often poses a
threat to the software's sustainability. In this publication we solve this
sustainability and performance portability issue by enriching the simulation
framework dune-pdelab with a code generation approach. The approach is based on
the well-known domain-specific language UFL, but combines it with loopy, a more
powerful intermediate representation for the computational kernel. Given this
flexible tool, we present and implement a new class of vectorization strategies
for the assembly of Discontinuous Galerkin methods on hexahedral meshes
exploiting the finite element's tensor product structure. The optimal variant
from this class is chosen by the code generator through an autotuning approach.
The implementation is done within the open source PDE software framework Dune
and the discretization module dune-pdelab. The strength of the proposed
approach is illustrated with performance measurements for DG schemes for a
scalar diffusion reaction equation and the Stokes equation. In our
measurements, we utilize both the AVX2 and the AVX512 instruction set,
achieving 40\% to 60\% of the machine's theoretical peak performance for one
matrix-free application of the operator.
