diff --git a/python/dune/perftool/loopy/target.py b/python/dune/perftool/loopy/target.py index 83d42e9d4bd25fadce5801cc7eb5e3c9f12f8601..b535a5e9ff877c51868ad3fae7bd4a60dcbb78ff 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")