llvm-project/llvm/test/Transforms/DeadArgElim/deadretval2.ll

37 lines
602 B
LLVM

; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim -die | llvm-dis | not grep DEAD
%P = external global int
implementation
internal int %test(int %DEADARG) { ; Dead arg only used by dead retval
ret int %DEADARG
}
internal int %test2(int %DEADARG) {
%DEADRETVAL = call int %test(int %DEADARG)
ret int %DEADRETVAL
}
void %test3(int %X) {
%DEADRETVAL = call int %test2(int %X)
ret void
}
internal int %foo() {
%DEAD = load int* %P
ret int %DEAD
}
internal int %id(int %X) {
ret int %X
}
void %test4() {
%DEAD = call int %foo()
%DEAD2 = call int %id(int %DEAD)
ret void
}