[llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/add.ll and.ll or.ll
Chris Lattner
lattner at cs.uiuc.edu
Mon Mar 10 17:54:01 PST 2003
Changes in directory llvm/test/Regression/Transforms/InstCombine:
add.ll updated: 1.6 -> 1.7
and.ll updated: 1.6 -> 1.7
or.ll updated: 1.10 -> 1.11
---
Log message:
Add optimizations:
- (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
- (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
---
Diffs of the changes:
Index: llvm/test/Regression/Transforms/InstCombine/add.ll
diff -u llvm/test/Regression/Transforms/InstCombine/add.ll:1.6 llvm/test/Regression/Transforms/InstCombine/add.ll:1.7
--- llvm/test/Regression/Transforms/InstCombine/add.ll:1.6 Tue Feb 18 13:55:31 2003
+++ llvm/test/Regression/Transforms/InstCombine/add.ll Mon Mar 10 17:52:54 2003
@@ -51,3 +51,9 @@
ret int %C
}
+int %test8(int %A, int %B) { ; (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
+ %A1 = and int %A, 7
+ %B1 = and int %B, 128
+ %C = add int %A1, %B1
+ ret int %C
+}
Index: llvm/test/Regression/Transforms/InstCombine/and.ll
diff -u llvm/test/Regression/Transforms/InstCombine/and.ll:1.6 llvm/test/Regression/Transforms/InstCombine/and.ll:1.7
--- llvm/test/Regression/Transforms/InstCombine/and.ll:1.6 Mon Mar 10 16:43:56 2003
+++ llvm/test/Regression/Transforms/InstCombine/and.ll Mon Mar 10 17:52:54 2003
@@ -49,3 +49,4 @@
%C = and ubyte %B, 4
ret ubyte %C
}
+
Index: llvm/test/Regression/Transforms/InstCombine/or.ll
diff -u llvm/test/Regression/Transforms/InstCombine/or.ll:1.10 llvm/test/Regression/Transforms/InstCombine/or.ll:1.11
--- llvm/test/Regression/Transforms/InstCombine/or.ll:1.10 Mon Mar 10 16:43:56 2003
+++ llvm/test/Regression/Transforms/InstCombine/or.ll Mon Mar 10 17:52:54 2003
@@ -1,7 +1,7 @@
; This test makes sure that these instructions are properly eliminated.
;
-; RUN: if as < %s | opt -instcombine | dis | grep or\
+; RUN: if as < %s | opt -instcombine | dis | grep -v '%OROK = or' | grep or\
; RUN: then exit 1
; RUN: else exit 0
; RUN: fi
@@ -91,3 +91,11 @@
%C = xor ubyte %B, 17
ret ubyte %C
}
+
+int %test16(int %A, int %B) { ; (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
+ %A1 = and int %A, 7
+ %B1 = and int %B, 128
+ %OROK = xor int %A1, %B1
+ ret int %OROK
+}
+
More information about the llvm-commits
mailing list