diff --git a/python/dune/perftool/loopy/transformations/vectorview.py b/python/dune/perftool/loopy/transformations/vectorview.py
index 0fa7ff09d8978f2d9f0176698bde6745c8d19b51..5ff07aeb79c49171f245f31ee5f9a306fc3a83a6 100644
--- a/python/dune/perftool/loopy/transformations/vectorview.py
+++ b/python/dune/perftool/loopy/transformations/vectorview.py
@@ -9,6 +9,7 @@ from dune.perftool.loopy.vcl import get_vcl_type_size
 import loopy as lp
 import numpy as np
 import pymbolic.primitives as prim
+import pytools as pt
 
 
 def get_vector_view_name(tmpname):
@@ -37,8 +38,16 @@ def add_vector_view(knl, tmpname):
         bsname = temp.base_storage
 
     # Determine the shape by dividing total size by vector size
+    # Also apply the padding we need for rotation
+    # TODO: *Only* apply this padding if really needed (a bit hard to figure out)
     vecsize = get_vcl_type_size(temp.dtype)
-    size = prim.FloorDiv(prim.Product(temp.shape), vecsize)
+    if all(isinstance(s, int) for s in temp.shape):
+        size = pt.product(temp.shape) // vecsize
+        if size % vecsize != 0:
+            size = (size // vecsize + 1) * vecsize
+    else:
+        size = prim.FloorDiv(prim.Product(temp.shape), vecsize)
+        size = (size // vecsize + 1) * vecsize
 
     # Now add a vector view temporary
     vecname = tmpname + "_vec"
diff --git a/python/loopy b/python/loopy
index c16057b7c361584d04edb59132f0742ecaa38226..87331320981ca8f7419f32b48609e6dc465bbfff 160000
--- a/python/loopy
+++ b/python/loopy
@@ -1 +1 @@
-Subproject commit c16057b7c361584d04edb59132f0742ecaa38226
+Subproject commit 87331320981ca8f7419f32b48609e6dc465bbfff