xref: /aosp_15_r20/external/llvm/test/Transforms/InstCombine/select-load-call.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | grep "ret i32 1"
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdeclare void @test2()
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine i32 @test(i1 %cond, i32 *%P) {
6*9880d681SAndroid Build Coastguard Worker  %A = alloca i32
7*9880d681SAndroid Build Coastguard Worker  store i32 1, i32* %P
8*9880d681SAndroid Build Coastguard Worker  store i32 1, i32* %A
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker  call void @test2() readonly
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker  %P2 = select i1 %cond, i32 *%P, i32* %A
13*9880d681SAndroid Build Coastguard Worker  %V = load i32, i32* %P2
14*9880d681SAndroid Build Coastguard Worker  ret i32 %V
15*9880d681SAndroid Build Coastguard Worker}
16