diff --git a/python/dune/perftool/blockstructured/vectorization.py b/python/dune/perftool/blockstructured/vectorization.py
index 18f8fb021b94d513f73cfea82445ce0954a3bf8c..f1c0f3559debb8dc212b7469d5a98d8c27dd181d 100644
--- a/python/dune/perftool/blockstructured/vectorization.py
+++ b/python/dune/perftool/blockstructured/vectorization.py
@@ -170,13 +170,10 @@ def add_vcl_vector(knl, iname_inner, iname_outer):
             index = prim.Sum(tuple(prim.Product(z) for z in zip(substitute(expr, {iname_inner:0}).index_tuple, strides)))
 
             # add load instruction
-            code = "{}.load({} + {});".format(vec, alias, index)
-            # load_id = knl.make_unique_instruction_id(insns=knl.instructions+load_insns, based_on='insn_'+vec+'_load')
             load_id = idg('insn_'+vec+'_load')
-            load_insns.append(lp.CInstruction(iname_exprs=[], code=code, read_variables=frozenset({alias}),
-                                              within_inames=insn.within_inames|insn.reduction_inames(),
-                                              #assignees=(lp.TaggedVariable(vec, 'coeff_vec'), ), #sonst denkt looy das müsste ein array von Vec4d sein...
-                                              id=load_id))
+            call_load = prim.Call(prim.Variable(vec+'.load'), (prim.Sum((prim.Variable(alias), index)),))
+            load_insns.append(lp.CallInstruction(assignees=(),expression=call_load,
+                                                 id=load_id,within_inames=insn.within_inames|insn.reduction_inames(),))
             read_dependencies.setdefault(insn.id, set())
             read_dependencies[insn.id].add(load_id)
 
@@ -191,15 +188,14 @@ def add_vcl_vector(knl, iname_inner, iname_outer):
             index = prim.Sum(tuple(prim.Product(z) for z in zip(substitute(expr, {iname_inner: 0, iname_ix: 0}).index_tuple, strides)))
 
             # add store instruction
-            code = "{}.store({} + {});".format(vec, alias, index)
-            #store_id = knl.make_unique_instruction_id(insns=knl.instructions+load_insns, based_on='insn_'+vec+'_store')
             store_id = idg('insn_'+vec+'_store')
-            store_insns.append(lp.CInstruction(iname_exprs=[], code=code,read_variables=frozenset({alias}),
-                                               within_inames=insn.within_inames,
-                                               depends_on=insn.depends_on
-                                                          | frozenset({insn.id})
-                                                          | read_dependencies[insn.id],
-                                               id=store_id))
+            call_store = prim.Call(prim.Variable(vec+'.store'), (prim.Sum((prim.Variable(alias), index)),))
+            store_insns.append(lp.CallInstruction(assignees=(),expression=call_store,
+                                                  id=store_id,within_inames=insn.within_inames,
+                                                  depends_on=insn.depends_on
+                                                             | frozenset({insn.id})
+                                                             | read_dependencies[insn.id],
+                                                  ))
 
     # exchange alias for vector
     new_insns = []