From c7cfaa1ed86aad2a433f24c1f3b906f037243330 Mon Sep 17 00:00:00 2001
From: Marcel Koch <marcel.koch@uni-muenster.de>
Date: Tue, 25 Jul 2017 11:41:37 +0200
Subject: [PATCH] Adds bitwise AND to DuneCExpressionToCodeMapper

This should probably be part of the loopy Mapper but I'm not sure if
I could add it there.
---
 python/dune/perftool/loopy/target.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/python/dune/perftool/loopy/target.py b/python/dune/perftool/loopy/target.py
index 83d42e9d..b535a5e9 100644
--- a/python/dune/perftool/loopy/target.py
+++ b/python/dune/perftool/loopy/target.py
@@ -20,7 +20,7 @@ from loopy.target.c.codegen.expression import ExpressionToCExpressionMapper, CEx
 from loopy.tools import is_integer
 from loopy.types import NumpyType
 
-from pymbolic.mapper.stringifier import PREC_NONE
+from pymbolic.mapper.stringifier import PREC_NONE, PREC_BITWISE_AND
 import pymbolic.primitives as prim
 
 import pytools as pt
@@ -120,6 +120,12 @@ class DuneCExpressionToCodeMapper(CExpressionToCodeMapper):
             return CExpressionToCodeMapper.map_remainder(self, expr, enclosing_prec)
 
 
+    def map_bitwise_and(self, expr, enclosing_prec):
+        return self.parenthesize_if_needed(
+            self.join_rec(" & ", expr.children, PREC_BITWISE_AND),
+            enclosing_prec, PREC_BITWISE_AND)
+
+
 class DuneASTBuilder(CASTBuilder):
     def function_manglers(self):
         return CASTBuilder.function_manglers(self) + retrieve_cache_functions("mangler")
-- 
GitLab