diff options
Diffstat (limited to 'llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx')
-rw-r--r-- | llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx b/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx index ddc40394aa8..e56c390d13f 100644 --- a/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx +++ b/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.llx @@ -1,21 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | opt -instcombine -mem2reg | llvm-dis | \ -; RUN: not grep {int 1} +; RUN: llvm-as < %s | opt -instcombine -mem2reg | llvm-dis | \ +; RUN: not grep {i32 1} ; When propagating the load through the select, make sure that the load is ; inserted where the original load was, not where the select is. Not doing ; so could produce incorrect results! -implementation - -int %test(bool %C) { - %X = alloca int - %X2 = alloca int - store int 1, int* %X - store int 2, int* %X2 - - %Y = select bool %C, int* %X, int* %X2 - store int 3, int* %X - %Z = load int* %Y - ret int %Z +define i32 @test(i1 %C) { + %X = alloca i32 ; <i32*> [#uses=3] + %X2 = alloca i32 ; <i32*> [#uses=2] + store i32 1, i32* %X + store i32 2, i32* %X2 + %Y = select i1 %C, i32* %X, i32* %X2 ; <i32*> [#uses=1] + store i32 3, i32* %X + %Z = load i32* %Y ; <i32> [#uses=1] + ret i32 %Z } |