[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