summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/select.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-09-27 19:57:57 +0000
committerChris Lattner <sabre@nondot.org>2009-09-27 19:57:57 +0000
commit5d1704ddbf6d6471f4e8f9e0b27ab844d80e8172 (patch)
tree7d93c24bdd678e24348097b2e167e3c4c837ff82 /test/Transforms/InstCombine/select.ll
parentcec545097cf1a81c0936cf62e39a81940d9f720f (diff)
downloadllvm-5d1704ddbf6d6471f4e8f9e0b27ab844d80e8172.tar.gz
llvm-5d1704ddbf6d6471f4e8f9e0b27ab844d80e8172.tar.bz2
llvm-5d1704ddbf6d6471f4e8f9e0b27ab844d80e8172.tar.xz
implement PR4895, by making FoldOpIntoPhi handle select conditions
that are phi nodes. Also tighten up FoldOpIntoPhi to treat constantexpr operands to phis just like other variables, avoiding moving constantexpr computations around. Patch by Daniel Dunbar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82913 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine/select.ll')
-rw-r--r--test/Transforms/InstCombine/select.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/select.ll b/test/Transforms/InstCombine/select.ll
index 22fe57f237..fc4b82002d 100644
--- a/test/Transforms/InstCombine/select.ll
+++ b/test/Transforms/InstCombine/select.ll
@@ -202,3 +202,25 @@ define i1 @test24(i1 %a, i1 %b) {
ret i1 %c
}
+define i32 @test25() {
+entry:
+ br i1 false, label %jump, label %ret
+jump:
+ br label %ret
+ret:
+ %a = phi i1 [true, %jump], [false, %entry]
+ %b = select i1 %a, i32 10, i32 20
+ ret i32 %b
+}
+
+define i32 @test26() {
+entry:
+ br i1 false, label %jump, label %ret
+jump:
+ %c = or i1 false, false
+ br label %ret
+ret:
+ %a = phi i1 [true, %jump], [%c, %entry]
+ %b = select i1 %a, i32 10, i32 20
+ ret i32 %b
+}