summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/InstCombine/xor.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/xor.ll b/test/Transforms/InstCombine/xor.ll
index 9baff65c8b..e9f4d3fd70 100644
--- a/test/Transforms/InstCombine/xor.ll
+++ b/test/Transforms/InstCombine/xor.ll
@@ -166,3 +166,18 @@ bool %test24(int %c, int %d) {
%tmp.4 = setne int %tmp.2, %c
ret bool %tmp.4
}
+
+int %test25(int %g, int %h) {
+ %h2 = xor int %h, -1
+ %tmp2 = and int %h2, %g
+ %tmp4 = xor int %tmp2, %g ; (h2&g)^g -> ~h2 & g -> h & g
+ ret int %tmp4
+}
+
+int %test26(int %a, int %b) {
+ %b2 = xor int %b, -1
+ %tmp2 = xor int %a, %b2
+ %tmp4 = and int %tmp2, %a ; (a^b2)&a -> ~b2 & a -> b & a
+ ret int %tmp4
+}
+