xref: /aosp_15_r20/external/llvm/test/Transforms/LoopSimplify/2010-12-26-PHIInfiniteLoop.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -loop-simplify -S
2*9880d681SAndroid Build Coastguard Worker; PR8702
3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
4*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-unknown-freebsd9.0"
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdeclare void @foo(i32 %x)
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine fastcc void @inm_merge() nounwind {
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker  br label %for.cond
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerfor.cond:                                         ; preds = %while.cond36.i, %entry
13*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %do.body, label %for.body
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerfor.body:                                         ; preds = %for.cond
16*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %while.cond36.i, label %if.end44
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerif.end44:                                         ; preds = %for.body
19*9880d681SAndroid Build Coastguard Worker  %call49 = call fastcc i32 @inm_get_source()
20*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.end54, label %for.cond64
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerif.end54:                                         ; preds = %if.end44
23*9880d681SAndroid Build Coastguard Worker  br label %while.cond36.i
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerwhile.cond36.i:                                   ; preds = %if.end54, %for.body
26*9880d681SAndroid Build Coastguard Worker  br label %for.cond
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Workerfor.cond64:                                       ; preds = %if.end88, %for.cond64, %if.end44
29*9880d681SAndroid Build Coastguard Worker  %error.161 = phi i32 [ %error.161, %for.cond64 ], [ %error.161, %if.end88 ], [ %call49, %if.end44 ]
30*9880d681SAndroid Build Coastguard Worker  call void @foo(i32 %error.161)
31*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond64, label %if.end88
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerif.end88:                                         ; preds = %for.cond64
34*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.cond64, label %if.end98
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerif.end98:                                         ; preds = %if.end88
37*9880d681SAndroid Build Coastguard Worker  unreachable
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Workerdo.body:                                          ; preds = %for.cond
40*9880d681SAndroid Build Coastguard Worker  unreachable
41*9880d681SAndroid Build Coastguard Worker}
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Workerdeclare fastcc i32 @inm_get_source() nounwind
44