diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py
index d6d6760c7eb35396d8b7898bb1c373e8e4ab00b4..ccd70e9974f8f17f9454081553fb10849c88425d 100644
--- a/pystencils/backends/cbackend.py
+++ b/pystencils/backends/cbackend.py
@@ -539,11 +539,11 @@ class CustomSympyPrinter(CCodePrinter):
     def _print_Abs(self, expr):
         if expr.args[0].is_integer:
             return f'abs({self._print(expr.args[0])})'
-        elif get_type_of_expression(expr).is_half():
+        elif hasattr(get_type_of_expression(expr), "is_half") and get_type_of_expression(expr).is_half():
             # TODO outsource this check to the AST optimization or even better to the introduction of abs() in HFG
             #   FIXME evaluate the rhs just once
             return f'({self._print(expr.args[0])} < 0) ? {self._print(sp.Mul(sp.Integer(-1), expr.args[0]))} : {self._print(expr.args[0])}'
-        elif get_type_of_expression(expr).identifier is not None:
+        elif hasattr(get_type_of_expression(expr), "identifier") and get_type_of_expression(expr).identifier is not None:
             # In HyTeG fabs and float32 don't like each ofter for whatever reason...
             return f'abs({self._print(expr.args[0])})'
         else:
@@ -888,6 +888,8 @@ class VectorizedCustomSympyPrinter(CustomSympyPrinter):
         else:
             exp = expr.exp
 
+        exp_num, exp_denom = sp.fraction(exp)
+
         # TODO the printer should not have any intelligence like this.
         # TODO To remove all of these cases the vectoriser needs to be reworked. See loop cutting
         if exp.is_integer and exp.is_number and 0 < exp < 8:
@@ -901,6 +903,11 @@ class VectorizedCustomSympyPrinter(CustomSympyPrinter):
             return root
         elif exp == -0.5:
             return self.instruction_set['/'].format(one, root, **self._kwargs)
+        elif exp_denom == 2 and exp_num.is_integer:
+            return self._print(
+                sp.Mul(*[sp.Mul(*[expr.base] * exp_num, evaluate=False),
+                         expr.base ** 0.5],
+                       evaluate=False))
         else:
             raise ValueError("Generic exponential not supported: " + str(expr))