[llvm-commits] CVS: llvm/test/Regression/Transforms/InstCombine/bit-tracking.ll cast-set.ll
Chris Lattner
lattner at cs.uiuc.edu
Sun Nov 2 23:31:01 PST 2003
Changes in directory llvm/test/Regression/Transforms/InstCombine:
bit-tracking.ll added (r1.1)
cast-set.ll updated: 1.12 -> 1.13
---
Log message:
Move a test from cast-set to a new bit-tracking.ll file. Update file comments
---
Diffs of the changes: (+20 -14)
Index: llvm/test/Regression/Transforms/InstCombine/bit-tracking.ll
diff -c /dev/null llvm/test/Regression/Transforms/InstCombine/bit-tracking.ll:1.1
*** /dev/null Sun Nov 2 23:30:44 2003
--- llvm/test/Regression/Transforms/InstCombine/bit-tracking.ll Sun Nov 2 23:30:34 2003
***************
*** 0 ****
--- 1,18 ----
+ ; This file contains various testcases that require tracking whether bits are
+ ; set or cleared by various instructions.
+
+ ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep %ELIM
+
+ ; test1 - Eliminating the casts in this testcase (by narrowing the AND
+ ; operation) allows instcombine to realize the function always returns false.
+ ;
+ bool %test1(int %A, int %B) {
+ %C1 = setlt int %A, %B
+ %ELIM1 = cast bool %C1 to uint
+ %C2 = setgt int %A, %B
+ %ELIM2 = cast bool %C2 to uint
+ %C3 = and uint %ELIM1, %ELIM2
+ %ELIM3 = cast uint %C3 to bool
+ ret bool %ELIM3
+ }
+
Index: llvm/test/Regression/Transforms/InstCombine/cast-set.ll
diff -u llvm/test/Regression/Transforms/InstCombine/cast-set.ll:1.12 llvm/test/Regression/Transforms/InstCombine/cast-set.ll:1.13
--- llvm/test/Regression/Transforms/InstCombine/cast-set.ll:1.12 Sun Nov 2 23:08:53 2003
+++ llvm/test/Regression/Transforms/InstCombine/cast-set.ll Sun Nov 2 23:30:34 2003
@@ -1,7 +1,5 @@
-; I'm not really sure if instcombine should do things like these. LevelRaise
-; already sufficiently takes care of these cases, but level raise is really
-; slow. Might it be better to make there be an instcombine prepass before
-; level raise that takes care of the obvious stuff?
+; This tests for various complex cast elimination cases instcombine should
+; handle.
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep cast
@@ -16,16 +14,6 @@
%B = cast int %Y to uint
%c = setne uint %A, %B ; Convert to setne int %X, %Y
ret bool %c
-}
-
-bool %test3(int %A, int %B) {
- %cond216 = setlt int %A, %B ; <bool> [#uses=1]
- %cst109 = cast bool %cond216 to uint ; <uint> [#uses=1]
- %cond219 = setgt int %A, %B ; <bool> [#uses=1]
- %cst111 = cast bool %cond219 to uint ; <uint> [#uses=1]
- %reg113 = and uint %cst109, %cst111 ; <uint> [#uses=1]
- %cst222 = cast uint %reg113 to bool ; <int> [#uses=1]
- ret bool %cst222
}
int %test4(int %A) {
More information about the llvm-commits
mailing list