aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-09-19 18:43:01 +0000
committerChris Lattner <sabre@nondot.org>2004-09-19 18:43:01 +0000
commitb4f5c68e5a47fc662b7f62e0f1837bcbce9e7878 (patch)
tree866a891f9398d51290cb121c75fc51ea74e09e31 /test
parent7b60a15abc155196d9515a1e242ec0137afff753 (diff)
downloadexternal_llvm-b4f5c68e5a47fc662b7f62e0f1837bcbce9e7878.zip
external_llvm-b4f5c68e5a47fc662b7f62e0f1837bcbce9e7878.tar.gz
external_llvm-b4f5c68e5a47fc662b7f62e0f1837bcbce9e7878.tar.bz2
Add two new testcases that instcombine should handle
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16403 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/InstCombine/load.ll23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/load.ll b/test/Transforms/InstCombine/load.ll
index 870c62d..b46b4b4 100644
--- a/test/Transforms/InstCombine/load.ll
+++ b/test/Transforms/InstCombine/load.ll
@@ -4,6 +4,7 @@
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep load
%X = constant int 42
+%X2 = constant int 47
%Y = constant [2 x { int, float }] [ { int, float } { int 12, float 1.0 },
{ int, float } { int 37, float 1.2312 } ]
%Z = constant [2 x { int, float }] zeroinitializer
@@ -31,3 +32,25 @@ int %test4() {
%B = load int* %A
ret int %B
}
+
+; load (select (Cond, &V1, &V2)) --> select(Cond, load &V1, load &V2)
+int %test5(bool %C) {
+ %Y = select bool %C, int* %X, int* %X2
+ %Z = load int* %Y
+ ret int %Z
+}
+
+; load (phi (&V1, &V2, &V3)) --> phi(load &V1, load &V2, load &V3)
+int %test6(bool %C) {
+entry:
+ br bool %C, label %cond_true.i, label %cond_continue.i
+
+cond_true.i:
+ br label %cond_continue.i
+
+cond_continue.i:
+ %mem_tmp.i.0 = phi int* [ %X, %cond_true.i ], [ %X2, %entry ]
+ %tmp.3 = load int* %mem_tmp.i.0
+ ret int %tmp.3
+}
+