diff options
Diffstat (limited to 'test/Transforms/InstCombine/store-merge.ll')
-rw-r--r-- | test/Transforms/InstCombine/store-merge.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/store-merge.ll b/test/Transforms/InstCombine/store-merge.ll new file mode 100644 index 0000000..4df30e4 --- /dev/null +++ b/test/Transforms/InstCombine/store-merge.ll @@ -0,0 +1,37 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | \ +; RUN: grep {ret i32 %.toremerge} | wc -l | grep 2 +;; Simple sinking tests + +; "if then else" +define i32 @test1(i1 %C) { + %A = alloca i32 + br i1 %C, label %Cond, label %Cond2 + +Cond: + store i32 -987654321, i32* %A + br label %Cont + +Cond2: + store i32 47, i32* %A + br label %Cont + +Cont: + %V = load i32* %A + ret i32 %V +} + +; "if then" +define i32 @test2(i1 %C) { + %A = alloca i32 + store i32 47, i32* %A + br i1 %C, label %Cond, label %Cont + +Cond: + store i32 -987654321, i32* %A + br label %Cont + +Cont: + %V = load i32* %A + ret i32 %V +} + |