diff --git a/src/pystencils/backend/ast/expressions.py b/src/pystencils/backend/ast/expressions.py
index 67fd6b27ea9bad0b037affa63913193560ea6ed2..908f31052ed4b8d49a66cd1ce801d9841ef4fb7d 100644
--- a/src/pystencils/backend/ast/expressions.py
+++ b/src/pystencils/backend/ast/expressions.py
@@ -636,7 +636,7 @@ class PsIntDiv(PsBinOp, PsIntOpTrait):
 
     @property
     def python_operator(self) -> Callable[[Any, Any], Any]:
-        from .util import c_intdiv
+        from ...utils import c_intdiv
 
         return c_intdiv
 
@@ -646,7 +646,7 @@ class PsRem(PsBinOp, PsIntOpTrait):
 
     @property
     def python_operator(self) -> Callable[[Any, Any], Any]:
-        from .util import c_rem
+        from ...utils import c_rem
 
         return c_rem
 
diff --git a/src/pystencils/backend/ast/util.py b/src/pystencils/backend/ast/util.py
index 2fdf6078d0cf285062656a739d2bdcea7736e1c2..0d3b78629fa9ee41d753893b1b6b4198cc75ae51 100644
--- a/src/pystencils/backend/ast/util.py
+++ b/src/pystencils/backend/ast/util.py
@@ -36,14 +36,3 @@ class AstEqWrapper:
         #   TODO: consider replacing this with smth. more performant
         #   TODO: Check that repr is implemented by all AST nodes
         return hash(repr(self._node))
-
-
-def c_intdiv(num, denom):
-    """C-style integer division"""
-    return int(num / denom)
-
-
-def c_rem(num, denom):
-    """C-style integer remainder"""
-    div = c_intdiv(num, denom)
-    return num - div * denom
diff --git a/src/pystencils/backend/transformations/eliminate_constants.py b/src/pystencils/backend/transformations/eliminate_constants.py
index 15a6d5c5c48f5e27f7bc65880f0ad1eb851b4825..bd3b2bb5871b59dd1e0431ed3d5ee7d26c4ff7a6 100644
--- a/src/pystencils/backend/transformations/eliminate_constants.py
+++ b/src/pystencils/backend/transformations/eliminate_constants.py
@@ -316,7 +316,7 @@ class EliminateConstants:
                                 )
                             elif isinstance(expr, PsDiv):
                                 if is_int:
-                                    from ..ast.util import c_intdiv
+                                    from ...utils import c_intdiv
                                     folded = PsConstant(c_intdiv(v1, v2), dtype)
                                 elif isinstance(dtype, PsIeeeFloatType):
                                     folded = PsConstant(v1 / v2, dtype)
diff --git a/src/pystencils/sympyextensions/integer_functions.py b/src/pystencils/sympyextensions/integer_functions.py
index 600562ad1bb9970b36c9963ff71fc24ecca01f28..3b215266eac147ea3082a0536e180728201d6b3e 100644
--- a/src/pystencils/sympyextensions/integer_functions.py
+++ b/src/pystencils/sympyextensions/integer_functions.py
@@ -48,15 +48,16 @@ class int_div(IntegerFunctionTwoArgsMixIn):
     """C-style round-to-zero integer division"""
     
     def _eval_op(self, arg1, arg2):
-        return int(arg1 / arg2)
+        from ..utils import c_intdiv
+        return c_intdiv(arg1, arg2)
 
 
 class int_rem(IntegerFunctionTwoArgsMixIn):
     """C-style round-to-zero integer remainder"""
     
     def _eval_op(self, arg1, arg2):
-        div = int(arg1 / arg2)
-        return arg1 - div * arg2
+        from ..utils import c_rem
+        return c_rem(arg1, arg2)
 
 
 # noinspection PyPep8Naming
diff --git a/src/pystencils/utils.py b/src/pystencils/utils.py
index f872ae48a54a2ae8c9437ec826be9b51c061f52e..98331e7e5f561405cee99c3422b9f232747ecfcb 100644
--- a/src/pystencils/utils.py
+++ b/src/pystencils/utils.py
@@ -250,3 +250,14 @@ class ContextVar:
 
     def get(self):
         return self.stack[-1]
+
+
+def c_intdiv(num, denom):
+    """C-style integer division"""
+    return int(num / denom)
+
+
+def c_rem(num, denom):
+    """C-style integer remainder"""
+    div = c_intdiv(num, denom)
+    return num - div * denom