Skip to content

Commit c04a588

Browse files
committed
simplify: rewrite bitxnor on booleans to equal
This adds the rewrite (a xnor b) --> (a = b) for booleans a, b to the simplifier.
1 parent 159af34 commit c04a588

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Diff for: src/util/simplify_expr_int.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,8 @@ simplify_exprt::simplify_bitwise(const multi_ary_exprt &expr)
696696
new_expr.id(ID_or);
697697
else if(expr.id()==ID_bitxor)
698698
new_expr.id(ID_xor);
699+
else if(expr.id() == ID_bitxnor)
700+
new_expr.id(ID_equal);
699701
else
700702
UNREACHABLE;
701703

@@ -709,8 +711,8 @@ simplify_exprt::simplify_bitwise(const multi_ary_exprt &expr)
709711
*it=true_exprt();
710712
}
711713

712-
new_expr.type()=bool_typet();
713-
new_expr = simplify_boolean(new_expr);
714+
new_expr.type() = bool_typet{};
715+
new_expr = simplify_node(new_expr);
714716

715717
return changed(simplify_typecast(typecast_exprt(new_expr, expr.type())));
716718
}

0 commit comments

Comments
 (0)