[llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/xor.ll or.ll

Chris Lattner lattner at cs.uiuc.edu
Wed Jul 23 16:12:04 PDT 2003


Changes in directory llvm/test/Regression/Transforms/InstCombine:

xor.ll added (r1.1)
or.ll updated: 1.21 -> 1.22

---
Log message:

Split the or and xor tests into two separate files


---
Diffs of the changes:

Index: llvm/test/Regression/Transforms/InstCombine/xor.ll
diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/xor.ll:1.1
*** /dev/null	Wed Jul 23 16:11:05 2003
--- llvm/test/Regression/Transforms/InstCombine/xor.ll	Wed Jul 23 16:10:55 2003
***************
*** 0 ****
--- 1,66 ----
+ ; This test makes sure that these instructions are properly eliminated.
+ ;
+ 
+ ; RUN: as < %s | opt -instcombine | dis | not grep 'xor '
+ 
+ implementation
+ 
+ bool %test5(bool %A) {
+ 	%B = xor bool %A, false
+ 	ret bool %B
+ }
+ 
+ int %test6(int %A) {
+ 	%B = xor int %A, 0
+ 	ret int %B
+ }
+ 
+ bool %test7(bool %A) {
+ 	%B = xor bool %A, %A
+ 	ret bool %B
+ }
+ 
+ int %test8(int %A) {
+ 	%B = xor int %A, %A
+ 	ret int %B
+ }
+ 
+ int %test11(int %A) {    ; A ^ ~A == -1
+         %NotA = xor int -1, %A
+         %B = xor int %A, %NotA
+         ret int %B
+ }
+ 
+ uint %test13(uint %A) { ; (A|B)^B == A & (~B)
+ 	%t1 = or uint %A, 123
+ 	%r  = xor uint %t1, 123
+ 	ret uint %r
+ }
+ 
+ ubyte %test15(ubyte %A) {
+ 	%B = xor ubyte %A, 17
+ 	%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
+ }
+ 
+ ubyte %test18(bool %c) {
+ 	%d = xor bool %c, true    ; invert the condition
+ 	br bool %d, label %True, label %False
+ True:
+ 	ret ubyte 1
+ False:
+ 	ret ubyte 3
+ }
+ 
+ bool %test19(ubyte %A) {
+ 	%B = xor ubyte %A, 123      ; xor can be eliminated
+ 	%C = seteq ubyte %B, 34
+ 	ret bool %C
+ }


Index: llvm/test/Regression/Transforms/InstCombine/or.ll
diff -u llvm/test/Regression/Transforms/InstCombine/or.ll:1.21 llvm/test/Regression/Transforms/InstCombine/or.ll:1.22
--- llvm/test/Regression/Transforms/InstCombine/or.ll:1.21	Wed Jul 23 16:06:34 2003
+++ llvm/test/Regression/Transforms/InstCombine/or.ll	Wed Jul 23 16:10:55 2003
@@ -1,7 +1,7 @@
 ; This test makes sure that these instructions are properly eliminated.
 ;
 
-; RUN: as < %s | opt -instcombine | dis | grep -v '%OROK = or' | not grep 'or '
+; RUN: as < %s | opt -instcombine | dis | grep -v xor | not grep 'or '
 
 implementation
 
@@ -30,26 +30,6 @@
 	ret bool %B
 }
 
-bool %test5(bool %A) {
-	%B = xor bool %A, false
-	ret bool %B
-}
-
-int %test6(int %A) {
-	%B = xor int %A, 0
-	ret int %B
-}
-
-bool %test7(bool %A) {
-	%B = xor bool %A, %A
-	ret bool %B
-}
-
-int %test8(int %A) {
-	%B = xor int %A, %A
-	ret int %B
-}
-
 bool %test9(bool %A) {
 	%B = or bool %A, %A
 	ret bool %B
@@ -60,62 +40,23 @@
 	ret int %B
 }
 
-int %test11(int %A) {    ; A ^ ~A == -1
-        %NotA = xor int -1, %A
-        %B = xor int %A, %NotA
-        ret int %B
-}
-
 int %test12(int %A) {    ; A | ~A == -1
         %NotA = xor int -1, %A
         %B = or int %A, %NotA
         ret int %B
 }
 
-uint %test13(uint %A) { ; (A|B)^B == A & (~B)
-	%t1 = or uint %A, 123
-	%r  = xor uint %t1, 123
-	ret uint %r
-}
-
 ubyte %test14(ubyte %A) {
 	%B = or ubyte %A, 254
 	%C = or ubyte %B, 1
 	ret ubyte %C
 }
-ubyte %test15(ubyte %A) {
-	%B = xor ubyte %A, 17
-	%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
-}
 
 ubyte %test17(ubyte %A, ubyte %B) {  ; Test that (A|c1)|(B|c2) == (A|B)|(c1|c2)
 	%C = or ubyte %A, 1
 	%D = or ubyte %B, 254
 	%E = or ubyte %C, %D
 	ret ubyte %E
-}
-
-ubyte %test18(bool %c) {
-	%d = xor bool %c, true    ; invert the condition
-	br bool %d, label %True, label %False
-True:
-	ret ubyte 1
-False:
-	ret ubyte 3
-}
-
-bool %test19(ubyte %A) {
-	%B = xor ubyte %A, 123      ; xor can be eliminated
-	%C = seteq ubyte %B, 34
-	ret bool %C
 }
 
 ubyte %test21(ubyte %A) {





More information about the llvm-commits mailing list