xref: /aosp_15_r20/external/llvm/test/Transforms/JumpThreading/2011-04-14-InfLoop.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -jump-threading < %s
2*9880d681SAndroid Build Coastguard Worker; <rdar://problem/9284786>
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker%0 = type <{ i64, i16, i64, i8, i8 }>
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@g_338 = external global %0, align 8
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine void @func_1() nounwind ssp {
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker  ret void
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerfor.cond1177:
13*9880d681SAndroid Build Coastguard Worker  %inc1187 = add nsw i32 0, 1
14*9880d681SAndroid Build Coastguard Worker  %cmp1179 = icmp slt i32 %inc1187, 5
15*9880d681SAndroid Build Coastguard Worker  br i1 %cmp1179, label %for.cond1177, label %land.rhs1320
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workerland.rhs1320:
18*9880d681SAndroid Build Coastguard Worker  %tmp1324 = load volatile i64, i64* getelementptr inbounds (%0, %0* @g_338, i64 0, i32 2), align 1
19*9880d681SAndroid Build Coastguard Worker  br label %if.end.i
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerif.end.i:
22*9880d681SAndroid Build Coastguard Worker  %tobool.pr.i = phi i1 [ false, %if.end.i ], [ false, %land.rhs1320 ]
23*9880d681SAndroid Build Coastguard Worker  br i1 %tobool.pr.i, label %return, label %if.end.i
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerreturn:
26*9880d681SAndroid Build Coastguard Worker  ret void
27*9880d681SAndroid Build Coastguard Worker}
28