xref: /aosp_15_r20/external/llvm/test/Transforms/ArgumentPromotion/control-flow.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -argpromotion -S | \
2*9880d681SAndroid Build Coastguard Worker; RUN:    not grep "load i32* null"
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine internal i32 @callee(i1 %C, i32* %P) {
5*9880d681SAndroid Build Coastguard Worker        br i1 %C, label %T, label %F
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard WorkerT:              ; preds = %0
8*9880d681SAndroid Build Coastguard Worker        ret i32 17
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard WorkerF:              ; preds = %0
11*9880d681SAndroid Build Coastguard Worker        %X = load i32, i32* %P               ; <i32> [#uses=1]
12*9880d681SAndroid Build Coastguard Worker        ret i32 %X
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdefine i32 @foo() {
16*9880d681SAndroid Build Coastguard Worker        %X = call i32 @callee( i1 true, i32* null )             ; <i32> [#uses=1]
17*9880d681SAndroid Build Coastguard Worker        ret i32 %X
18*9880d681SAndroid Build Coastguard Worker}
19*9880d681SAndroid Build Coastguard Worker
20