xref: /aosp_15_r20/external/llvm/test/Transforms/LoopUnroll/update-loop-info-in-subloops.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S < %s -loop-unroll -block-freq | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; Crasher from PR20987.
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; CHECK: define void @update_loop_info_in_subloops
5*9880d681SAndroid Build Coastguard Worker; CHECK: entry:
6*9880d681SAndroid Build Coastguard Worker; CHECK: L:
7*9880d681SAndroid Build Coastguard Worker; CHECK: L.inner:
8*9880d681SAndroid Build Coastguard Worker; CHECK: L.inner.latch:
9*9880d681SAndroid Build Coastguard Worker; CHECK: L.latch:
10*9880d681SAndroid Build Coastguard Worker; CHECK: L.inner.1:
11*9880d681SAndroid Build Coastguard Worker; CHECK: L.inner.latch.1:
12*9880d681SAndroid Build Coastguard Worker; CHECK: L.latch.1:
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine void @update_loop_info_in_subloops() {
15*9880d681SAndroid Build Coastguard Workerentry:
16*9880d681SAndroid Build Coastguard Worker  br label %L
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard WorkerL:
19*9880d681SAndroid Build Coastguard Worker  %0 = phi i64 [ 1, %entry ], [ %1, %L.latch ]
20*9880d681SAndroid Build Coastguard Worker  br label %L.inner
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard WorkerL.inner:
23*9880d681SAndroid Build Coastguard Worker  br label %L.inner.latch
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard WorkerL.inner.latch:
26*9880d681SAndroid Build Coastguard Worker  br i1 false, label %L.latch, label %L.inner
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard WorkerL.latch:
29*9880d681SAndroid Build Coastguard Worker  %1 = add i64 %0, 1
30*9880d681SAndroid Build Coastguard Worker  %2 = icmp eq i64 %1, 3
31*9880d681SAndroid Build Coastguard Worker  br i1 %2, label %exit, label %L
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerexit:
34*9880d681SAndroid Build Coastguard Worker  ret void
35*9880d681SAndroid Build Coastguard Worker}
36