diff options
author | Chris Lattner <sabre@nondot.org> | 2004-09-19 18:43:01 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-09-19 18:43:01 +0000 |
commit | b4f5c68e5a47fc662b7f62e0f1837bcbce9e7878 (patch) | |
tree | 866a891f9398d51290cb121c75fc51ea74e09e31 /test | |
parent | 7b60a15abc155196d9515a1e242ec0137afff753 (diff) | |
download | external_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.ll | 23 |
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 +} + |