1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
; RUN: opt < %s -loop-reduce
define void @resolve_name() nounwind uwtable ssp {
br label %while.cond40.preheader
while.cond132.while.cond.loopexit_crit_edge:
br label %while.cond40.preheader
while.cond40.preheader:
br label %while.cond40
while.cond40:
%indvars.iv194 = phi i8* [ null, %while.cond40.preheader ], [ %scevgep, %while.body51 ]
%tmp.1 = phi i8* [ undef, %while.cond40.preheader ], [ %incdec.ptr, %while.body51 ]
switch i8 undef, label %while.body51 [
i8 0, label %if.then59
]
while.body51: ; preds = %land.end50
%incdec.ptr = getelementptr inbounds i8* %tmp.1, i64 1
%scevgep = getelementptr i8* %indvars.iv194, i64 1
br label %while.cond40
if.then59: ; preds = %while.end
br i1 undef, label %if.then64, label %if.end113
if.then64: ; preds = %if.then59
%incdec.ptr88.tmp.2 = select i1 undef, i8* undef, i8* undef
br label %if.end113
if.end113: ; preds = %if.then64, %if.then59
%tmp.4 = phi i8* [ %incdec.ptr88.tmp.2, %if.then64 ], [ undef, %if.then59 ]
%tmp.4195 = ptrtoint i8* %tmp.4 to i64
br label %while.cond132.preheader
while.cond132.preheader: ; preds = %if.end113
%cmp133173 = icmp eq i8* %tmp.1, %tmp.4
br i1 %cmp133173, label %while.cond40.preheader, label %while.body139.lr.ph
while.body139.lr.ph: ; preds = %while.cond132.preheader
%scevgep198 = getelementptr i8* %indvars.iv194, i64 0
%scevgep198199 = ptrtoint i8* %scevgep198 to i64
br label %while.body139
while.body139: ; preds = %while.body139, %while.body139.lr.ph
%start_of_var.0177 = phi i8* [ %tmp.1, %while.body139.lr.ph ], [ null, %while.body139 ]
br i1 undef, label %while.cond132.while.cond.loopexit_crit_edge, label %while.body139
}
|