17 if(expr.
id()==ID_bitnot)
23 else if(expr.
id()==ID_bitand || expr.
id()==ID_bitor ||
24 expr.
id()==ID_bitxor ||
25 expr.
id()==ID_bitnand || expr.
id()==ID_bitnor ||
26 expr.
id()==ID_bitxnor)
30 if(expr.
id() == ID_bitand || expr.
id() == ID_bitnand)
32 else if(expr.
id() == ID_bitor || expr.
id() == ID_bitnor)
34 else if(expr.
id() == ID_bitxor || expr.
id() == ID_bitxnor)
50 for(std::size_t i=0; i<width; i++)
52 bv[i] = f(bv[i], op[i]);
58 expr.
id() == ID_bitnand || expr.
id() == ID_bitnor ||
59 expr.
id() == ID_bitxnor)
API to expression classes for bitvectors.
const bitnot_exprt & to_bitnot_expr(const exprt &expr)
Cast an exprt to a bitnot_exprt.
virtual const bvt & convert_bv(const exprt &expr, const std::optional< std::size_t > expected_width={})
Convert expression to vector of literalts, using an internal cache to speed up conversion if availabl...
virtual bvt convert_bitwise(const exprt &expr)
virtual std::size_t boolbv_width(const typet &type) const
Base class for all expressions.
typet & type()
Return the type of the expression.
const irep_idt & id() const
#define forall_operands(it, expr)
std::vector< literalt > bvt