xref: /aosp_15_r20/external/llvm/test/Transforms/DeadArgElim/deadretval.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -deadargelim -S | not grep DEAD
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; Dead arg only used by dead retval
4*9880d681SAndroid Build Coastguard Workerdefine internal i32 @test(i32 %DEADARG) {
5*9880d681SAndroid Build Coastguard Worker        ret i32 %DEADARG
6*9880d681SAndroid Build Coastguard Worker}
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine i32 @test2(i32 %A) {
9*9880d681SAndroid Build Coastguard Worker        %DEAD = call i32 @test( i32 %A )                ; <i32> [#uses=0]
10*9880d681SAndroid Build Coastguard Worker        ret i32 123
11*9880d681SAndroid Build Coastguard Worker}
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdefine i32 @test3() {
14*9880d681SAndroid Build Coastguard Worker        %X = call i32 @test2( i32 3232 )                ; <i32> [#uses=1]
15*9880d681SAndroid Build Coastguard Worker        %Y = add i32 %X, -123           ; <i32> [#uses=1]
16*9880d681SAndroid Build Coastguard Worker        ret i32 %Y
17*9880d681SAndroid Build Coastguard Worker}
18*9880d681SAndroid Build Coastguard Worker
19