From f1fc341a36051f2efdaa4a9c477f4dc8f03fc704 Mon Sep 17 00:00:00 2001
From: Michael Kuron <mkuron@icp.uni-stuttgart.de>
Date: Wed, 20 Nov 2019 17:42:59 +0100
Subject: [PATCH] cbackend: short-cut _print_Conditional if condition is a
 boolean atom

---
 pystencils/backends/cbackend.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py
index 76ee03f58..5160fafd4 100644
--- a/pystencils/backends/cbackend.py
+++ b/pystencils/backends/cbackend.py
@@ -292,6 +292,10 @@ class CBackend:
         return ""
 
     def _print_Conditional(self, node):
+        if type(node.condition_expr) is sp.boolalg.BooleanTrue:
+            return self._print_Block(node.true_block)
+        elif type(node.condition_expr) is sp.boolalg.BooleanFalse:
+            return self._print_Block(node.false_block)
         cond_type = get_type_of_expression(node.condition_expr)
         if isinstance(cond_type, VectorType):
             raise ValueError("Problem with Conditional inside vectorized loop - use vec_any or vec_all")
-- 
GitLab