xref: /aosp_15_r20/external/llvm/test/Transforms/MergeFunc/phi-speculation1.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; REQUIRES: asserts
2*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -mergefunc -stats -disable-output 2>&1 | not grep "functions merged"
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine i32 @foo1(i32 %x) {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker  %A = add i32 %x, 1
7*9880d681SAndroid Build Coastguard Worker  %B = call i32 @foo1(i32 %A)
8*9880d681SAndroid Build Coastguard Worker  br label %loop
9*9880d681SAndroid Build Coastguard Workerloop:
10*9880d681SAndroid Build Coastguard Worker  %C = phi i32 [%B, %entry], [%D, %loop]
11*9880d681SAndroid Build Coastguard Worker  %D = add i32 %x, 2
12*9880d681SAndroid Build Coastguard Worker  %E = icmp ugt i32 %D, 10000
13*9880d681SAndroid Build Coastguard Worker  br i1 %E, label %loopexit, label %loop
14*9880d681SAndroid Build Coastguard Workerloopexit:
15*9880d681SAndroid Build Coastguard Worker  ret i32 %D
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdefine i32 @foo2(i32 %x) {
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker  %0 = add i32 %x, 1
21*9880d681SAndroid Build Coastguard Worker  %1 = call i32 @foo2(i32 %0)
22*9880d681SAndroid Build Coastguard Worker  br label %loop
23*9880d681SAndroid Build Coastguard Workerloop:
24*9880d681SAndroid Build Coastguard Worker  %2 = phi i32 [%1, %entry], [%3, %loop]
25*9880d681SAndroid Build Coastguard Worker  %3 = add i32 %2, 2
26*9880d681SAndroid Build Coastguard Worker  %4 = icmp ugt i32 %3, 10000
27*9880d681SAndroid Build Coastguard Worker  br i1 %4, label %loopexit, label %loop
28*9880d681SAndroid Build Coastguard Workerloopexit:
29*9880d681SAndroid Build Coastguard Worker  ret i32 %3
30*9880d681SAndroid Build Coastguard Worker}
31