summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/not.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/InstCombine/not.ll')
-rw-r--r--test/Transforms/InstCombine/not.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/not.ll b/test/Transforms/InstCombine/not.ll
index 57560d61d6..24d8f69a4b 100644
--- a/test/Transforms/InstCombine/not.ll
+++ b/test/Transforms/InstCombine/not.ll
@@ -29,3 +29,20 @@ int %test3(int %A, int %B) {
%d = xor int %c, -1
ret int %d
}
+
+; Test that demorgens law can work with constants
+int %test4(int %A, int %B) {
+ %a = xor int %A, -1
+ %c = and int %a, 5 ; 5 = ~c2
+ %d = xor int %c, -1
+ ret int %d
+}
+
+; test the mirror of demorgans law...
+int %test5(int %A, int %B) {
+ %a = xor int %A, -1
+ %b = xor int %B, -1
+ %c = or int %a, %b
+ %d = xor int %c, -1
+ ret int %d
+}