llvm-project/llvm/test/Transforms/SCCP/ipsccp-conditional.ll

20 lines
482 B
LLVM

; RUN: llvm-as < %s | opt -ipsccp | llvm-dis | \
; RUN: grep -v {ret i32 0} | grep -v {ret i32 undef} | not grep ret
define internal i32 @bar(i32 %A) {
%C = icmp eq i32 %A, 0 ; <i1> [#uses=1]
br i1 %C, label %T, label %F
T: ; preds = %0
%B = call i32 @bar( i32 0 ) ; <i32> [#uses=0]
ret i32 0
F: ; preds = %0
%C.upgrd.1 = call i32 @bar( i32 1 ) ; <i32> [#uses=1]
ret i32 %C.upgrd.1
}
define i32 @foo() {
%X = call i32 @bar( i32 0 ) ; <i32> [#uses=1]
ret i32 %X
}