[sledge] Simplify `e xor e` to `0`

Reviewed By: bennostein

Differential Revision: D17665226

fbshipit-source-id: 655ddf6a8
master
Josh Berdine 5 years ago committed by Facebook Github Bot
parent 6f84787b19
commit 06f2863dd8

@ -787,6 +787,8 @@ let simp_xor x y =
(* true xor b ==> ¬b *) (* true xor b ==> ¬b *)
| Integer {data}, b when Z.is_true data && is_boolean b -> simp_not b | Integer {data}, b when Z.is_true data && is_boolean b -> simp_not b
| b, Integer {data} when Z.is_true data && is_boolean b -> simp_not b | b, Integer {data} when Z.is_true data && is_boolean b -> simp_not b
(* e xor e ==> 0 *)
| _ when equal x y -> zero
| _ -> Ap2 (Xor, x, y) | _ -> Ap2 (Xor, x, y)
let simp_shl x y = let simp_shl x y =

Loading…
Cancel
Save