diff --git a/backends/cbackend.py b/backends/cbackend.py
index 80f07557d5cb9382cdafdab27365fea21cd3cb0b..a11ef1305356f9897f0a9b944cb371874f239b74 100644
--- a/backends/cbackend.py
+++ b/backends/cbackend.py
@@ -164,8 +164,14 @@ class CBackend:
                 if aligned:
                     instr = 'stream' if nontemporal else 'storeA'
 
+                rhs_type = get_type_of_expression(node.rhs)
+                if type(rhs_type) is not VectorType:
+                    rhs = cast_func(node.rhs, VectorType(rhs_type))
+                else:
+                    rhs = node.rhs
+
                 return self._vectorInstructionSet[instr].format("&" + self.sympy_printer.doprint(node.lhs.args[0]),
-                                                                self.sympy_printer.doprint(node.rhs)) + ';'
+                                                                self.sympy_printer.doprint(rhs)) + ';'
             else:
                 return "%s = %s;" % (self.sympy_printer.doprint(node.lhs), self.sympy_printer.doprint(node.rhs))