hanchenye-llvm-project/llvm/test/Transforms/InstCombine/store-merge.ll

38 lines
600 B
LLVM

; RUN: opt < %s -instcombine -S | \
; RUN: grep {ret i32 %.toremerge} | count 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
}