xref: /aosp_15_r20/external/llvm/test/Transforms/IndVarSimplify/pr20680.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -indvars -S | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; Provide legal integer types.
4*9880d681SAndroid Build Coastguard Workertarget datalayout = "n8:16:32:64"
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker@a = common global i32 0, align 4
8*9880d681SAndroid Build Coastguard Worker@c = common global i32 0, align 4
9*9880d681SAndroid Build Coastguard Worker@b = common global i32 0, align 4
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine void @f() {
12*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @f(
13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: entry:
14*9880d681SAndroid Build Coastguard Worker; CHECK: br label %[[for_cond2_preheader:.*]]
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker; CHECK: [[for_cond2_preheader]]:
17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %[[indvars_iv:.*]] = phi i32 [ %[[indvars_iv_next:.*]], %[[for_inc13:.*]] ], [ -14, %entry ]
18*9880d681SAndroid Build Coastguard Worker; br i1 {{.*}}, label %[[for_inc13]], label %
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* @a, align 4
21*9880d681SAndroid Build Coastguard Worker  %tobool2 = icmp eq i32 %0, 0
22*9880d681SAndroid Build Coastguard Worker  %1 = load i32, i32* @a, align 4
23*9880d681SAndroid Build Coastguard Worker  %tobool = icmp eq i32 %1, 0
24*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.preheader
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workerfor.cond2.preheader:                              ; preds = %for.inc13, %entry
27*9880d681SAndroid Build Coastguard Worker  %storemerge15 = phi i8 [ -14, %entry ], [ %inc14, %for.inc13 ]
28*9880d681SAndroid Build Coastguard Worker  br i1 %tobool2, label %for.inc13, label %for.body3.lr.ph
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph:                                  ; preds = %for.cond2.preheader
31*9880d681SAndroid Build Coastguard Worker  %tobool5 = icmp eq i8 %storemerge15, 0
32*9880d681SAndroid Build Coastguard Worker  %conv7 = sext i8 %storemerge15 to i32
33*9880d681SAndroid Build Coastguard Worker  %2 = add nsw i32 %conv7, 1
34*9880d681SAndroid Build Coastguard Worker  %3 = icmp ult i32 %2, 3
35*9880d681SAndroid Build Coastguard Worker  %div = select i1 %3, i32 %conv7, i32 0
36*9880d681SAndroid Build Coastguard Worker  br i1 %tobool5, label %for.body3.lr.ph.split.us, label %for.body3.lr.ph.for.body3.lr.ph.split_crit_edge
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.for.body3.lr.ph.split_crit_edge:  ; preds = %for.body3.lr.ph
39*9880d681SAndroid Build Coastguard Worker  br label %for.body3.lr.ph.split
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.us:                         ; preds = %for.body3.lr.ph
42*9880d681SAndroid Build Coastguard Worker  br i1 %tobool, label %for.body3.lr.ph.split.us.split.us, label %for.body3.lr.ph.split.us.for.body3.lr.ph.split.us.split_crit_edge
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.us.for.body3.lr.ph.split.us.split_crit_edge: ; preds = %for.body3.lr.ph.split.us
45*9880d681SAndroid Build Coastguard Worker  br label %for.body3.lr.ph.split.us.split
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.us.split.us:                ; preds = %for.body3.lr.ph.split.us
48*9880d681SAndroid Build Coastguard Worker  br label %for.body3.us.us
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerfor.body3.us.us:                                  ; preds = %for.cond2.loopexit.us.us, %for.body3.lr.ph.split.us.split.us
51*9880d681SAndroid Build Coastguard Worker  br i1 true, label %cond.false.us.us, label %cond.end.us.us
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workercond.false.us.us:                                 ; preds = %for.body3.us.us
54*9880d681SAndroid Build Coastguard Worker  br label %cond.end.us.us
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workercond.end.us.us:                                   ; preds = %cond.false.us.us, %for.body3.us.us
57*9880d681SAndroid Build Coastguard Worker  %cond.us.us = phi i32 [ %div, %cond.false.us.us ], [ %conv7, %for.body3.us.us ]
58*9880d681SAndroid Build Coastguard Worker  %4 = load i32, i32* @b, align 4
59*9880d681SAndroid Build Coastguard Worker  %cmp91.us.us = icmp slt i32 %4, 1
60*9880d681SAndroid Build Coastguard Worker  br i1 %cmp91.us.us, label %for.inc.lr.ph.us.us, label %for.cond2.loopexit.us.us
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workerfor.cond2.loopexit.us.us:                         ; preds = %for.cond8.for.cond2.loopexit_crit_edge.us.us, %cond.end.us.us
63*9880d681SAndroid Build Coastguard Worker  br i1 true, label %for.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa.us, label %for.body3.us.us
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workerfor.inc.lr.ph.us.us:                              ; preds = %cond.end.us.us
66*9880d681SAndroid Build Coastguard Worker  br label %for.inc.us.us
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerfor.cond8.for.cond2.loopexit_crit_edge.us.us:     ; preds = %for.inc.us.us
69*9880d681SAndroid Build Coastguard Worker  %inc.lcssa.us.us = phi i32 [ %inc.us.us, %for.inc.us.us ]
70*9880d681SAndroid Build Coastguard Worker  store i32 %inc.lcssa.us.us, i32* @b, align 4
71*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.loopexit.us.us
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Workerfor.inc.us.us:                                    ; preds = %for.inc.us.us, %for.inc.lr.ph.us.us
74*9880d681SAndroid Build Coastguard Worker  %5 = phi i32 [ %4, %for.inc.lr.ph.us.us ], [ %inc.us.us, %for.inc.us.us ]
75*9880d681SAndroid Build Coastguard Worker  %inc.us.us = add nsw i32 %5, 1
76*9880d681SAndroid Build Coastguard Worker  %cmp9.us.us = icmp slt i32 %inc.us.us, 1
77*9880d681SAndroid Build Coastguard Worker  br i1 %cmp9.us.us, label %for.inc.us.us, label %for.cond8.for.cond2.loopexit_crit_edge.us.us
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa.us: ; preds = %for.cond2.loopexit.us.us
80*9880d681SAndroid Build Coastguard Worker  %cond.lcssa.ph.us.ph.us = phi i32 [ %cond.us.us, %for.cond2.loopexit.us.us ]
81*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.for.inc13_crit_edge.us-lcssa.us
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.us.split:                   ; preds = %for.body3.lr.ph.split.us.for.body3.lr.ph.split.us.split_crit_edge
84*9880d681SAndroid Build Coastguard Worker  br label %for.body3.us
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerfor.body3.us:                                     ; preds = %for.cond2.loopexit.us, %for.body3.lr.ph.split.us.split
87*9880d681SAndroid Build Coastguard Worker  br i1 true, label %cond.false.us, label %cond.end.us
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Workercond.false.us:                                    ; preds = %for.body3.us
90*9880d681SAndroid Build Coastguard Worker  br label %cond.end.us
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Workercond.end.us:                                      ; preds = %cond.false.us, %for.body3.us
93*9880d681SAndroid Build Coastguard Worker  %cond.us = phi i32 [ %div, %cond.false.us ], [ %conv7, %for.body3.us ]
94*9880d681SAndroid Build Coastguard Worker  %6 = load i32, i32* @b, align 4
95*9880d681SAndroid Build Coastguard Worker  %cmp91.us = icmp slt i32 %6, 1
96*9880d681SAndroid Build Coastguard Worker  br i1 %cmp91.us, label %for.inc.lr.ph.us, label %for.cond2.loopexit.us
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Workerfor.inc.us:                                       ; preds = %for.inc.lr.ph.us, %for.inc.us
99*9880d681SAndroid Build Coastguard Worker  %7 = phi i32 [ %6, %for.inc.lr.ph.us ], [ %inc.us, %for.inc.us ]
100*9880d681SAndroid Build Coastguard Worker  %inc.us = add nsw i32 %7, 1
101*9880d681SAndroid Build Coastguard Worker  %cmp9.us = icmp slt i32 %inc.us, 1
102*9880d681SAndroid Build Coastguard Worker  br i1 %cmp9.us, label %for.inc.us, label %for.cond8.for.cond2.loopexit_crit_edge.us
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerfor.cond2.loopexit.us:                            ; preds = %for.cond8.for.cond2.loopexit_crit_edge.us, %cond.end.us
105*9880d681SAndroid Build Coastguard Worker  br i1 false, label %for.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa, label %for.body3.us
106*9880d681SAndroid Build Coastguard Worker
107*9880d681SAndroid Build Coastguard Workerfor.inc.lr.ph.us:                                 ; preds = %cond.end.us
108*9880d681SAndroid Build Coastguard Worker  br label %for.inc.us
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Workerfor.cond8.for.cond2.loopexit_crit_edge.us:        ; preds = %for.inc.us
111*9880d681SAndroid Build Coastguard Worker  %inc.lcssa.us = phi i32 [ %inc.us, %for.inc.us ]
112*9880d681SAndroid Build Coastguard Worker  store i32 %inc.lcssa.us, i32* @b, align 4
113*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.loopexit.us
114*9880d681SAndroid Build Coastguard Worker
115*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa: ; preds = %for.cond2.loopexit.us
116*9880d681SAndroid Build Coastguard Worker  %cond.lcssa.ph.us.ph = phi i32 [ %cond.us, %for.cond2.loopexit.us ]
117*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.for.inc13_crit_edge.us-lcssa.us
118*9880d681SAndroid Build Coastguard Worker
119*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge.us-lcssa.us:        ; preds = %for.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa, %for.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa.us
120*9880d681SAndroid Build Coastguard Worker  %cond.lcssa.ph.us = phi i32 [ %cond.lcssa.ph.us.ph, %for.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa ], [ %cond.lcssa.ph.us.ph.us, %for.cond2.for.inc13_crit_edge.us-lcssa.us.us-lcssa.us ]
121*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.for.inc13_crit_edge
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split:                            ; preds = %for.body3.lr.ph.for.body3.lr.ph.split_crit_edge
124*9880d681SAndroid Build Coastguard Worker  br i1 %tobool, label %for.body3.lr.ph.split.split.us, label %for.body3.lr.ph.split.for.body3.lr.ph.split.split_crit_edge
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.for.body3.lr.ph.split.split_crit_edge: ; preds = %for.body3.lr.ph.split
127*9880d681SAndroid Build Coastguard Worker  br label %for.body3.lr.ph.split.split
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.split.us:                   ; preds = %for.body3.lr.ph.split
130*9880d681SAndroid Build Coastguard Worker  br label %for.body3.us3
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Workerfor.body3.us3:                                    ; preds = %for.cond2.loopexit.us11, %for.body3.lr.ph.split.split.us
133*9880d681SAndroid Build Coastguard Worker  br i1 false, label %cond.false.us4, label %cond.end.us5
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Workercond.false.us4:                                   ; preds = %for.body3.us3
136*9880d681SAndroid Build Coastguard Worker  br label %cond.end.us5
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Workercond.end.us5:                                     ; preds = %cond.false.us4, %for.body3.us3
139*9880d681SAndroid Build Coastguard Worker  %cond.us6 = phi i32 [ %div, %cond.false.us4 ], [ %conv7, %for.body3.us3 ]
140*9880d681SAndroid Build Coastguard Worker  %8 = load i32, i32* @b, align 4
141*9880d681SAndroid Build Coastguard Worker  %cmp91.us7 = icmp slt i32 %8, 1
142*9880d681SAndroid Build Coastguard Worker  br i1 %cmp91.us7, label %for.inc.lr.ph.us12, label %for.cond2.loopexit.us11
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Workerfor.inc.us8:                                      ; preds = %for.inc.lr.ph.us12, %for.inc.us8
145*9880d681SAndroid Build Coastguard Worker  %9 = phi i32 [ %8, %for.inc.lr.ph.us12 ], [ %inc.us9, %for.inc.us8 ]
146*9880d681SAndroid Build Coastguard Worker  %inc.us9 = add nsw i32 %9, 1
147*9880d681SAndroid Build Coastguard Worker  %cmp9.us10 = icmp slt i32 %inc.us9, 1
148*9880d681SAndroid Build Coastguard Worker  br i1 %cmp9.us10, label %for.inc.us8, label %for.cond8.for.cond2.loopexit_crit_edge.us13
149*9880d681SAndroid Build Coastguard Worker
150*9880d681SAndroid Build Coastguard Workerfor.cond2.loopexit.us11:                          ; preds = %for.cond8.for.cond2.loopexit_crit_edge.us13, %cond.end.us5
151*9880d681SAndroid Build Coastguard Worker  br i1 true, label %for.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa.us, label %for.body3.us3
152*9880d681SAndroid Build Coastguard Worker
153*9880d681SAndroid Build Coastguard Workerfor.inc.lr.ph.us12:                               ; preds = %cond.end.us5
154*9880d681SAndroid Build Coastguard Worker  br label %for.inc.us8
155*9880d681SAndroid Build Coastguard Worker
156*9880d681SAndroid Build Coastguard Workerfor.cond8.for.cond2.loopexit_crit_edge.us13:      ; preds = %for.inc.us8
157*9880d681SAndroid Build Coastguard Worker  %inc.lcssa.us14 = phi i32 [ %inc.us9, %for.inc.us8 ]
158*9880d681SAndroid Build Coastguard Worker  store i32 %inc.lcssa.us14, i32* @b, align 4
159*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.loopexit.us11
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa.us: ; preds = %for.cond2.loopexit.us11
162*9880d681SAndroid Build Coastguard Worker  %cond.lcssa.ph.ph.us = phi i32 [ %cond.us6, %for.cond2.loopexit.us11 ]
163*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.for.inc13_crit_edge.us-lcssa
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Workerfor.body3.lr.ph.split.split:                      ; preds = %for.body3.lr.ph.split.for.body3.lr.ph.split.split_crit_edge
166*9880d681SAndroid Build Coastguard Worker  br label %for.body3
167*9880d681SAndroid Build Coastguard Worker
168*9880d681SAndroid Build Coastguard Workerfor.cond8.for.cond2.loopexit_crit_edge:           ; preds = %for.inc
169*9880d681SAndroid Build Coastguard Worker  %inc.lcssa = phi i32 [ %inc, %for.inc ]
170*9880d681SAndroid Build Coastguard Worker  store i32 %inc.lcssa, i32* @b, align 4
171*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.loopexit
172*9880d681SAndroid Build Coastguard Worker
173*9880d681SAndroid Build Coastguard Workerfor.cond2.loopexit:                               ; preds = %cond.end, %for.cond8.for.cond2.loopexit_crit_edge
174*9880d681SAndroid Build Coastguard Worker  br i1 false, label %for.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa, label %for.body3
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workerfor.body3:                                        ; preds = %for.cond2.loopexit, %for.body3.lr.ph.split.split
177*9880d681SAndroid Build Coastguard Worker  br i1 false, label %cond.false, label %cond.end
178*9880d681SAndroid Build Coastguard Worker
179*9880d681SAndroid Build Coastguard Workercond.false:                                       ; preds = %for.body3
180*9880d681SAndroid Build Coastguard Worker  br label %cond.end
181*9880d681SAndroid Build Coastguard Worker
182*9880d681SAndroid Build Coastguard Workercond.end:                                         ; preds = %cond.false, %for.body3
183*9880d681SAndroid Build Coastguard Worker  %cond = phi i32 [ %div, %cond.false ], [ %conv7, %for.body3 ]
184*9880d681SAndroid Build Coastguard Worker  %10 = load i32, i32* @b, align 4
185*9880d681SAndroid Build Coastguard Worker  %cmp91 = icmp slt i32 %10, 1
186*9880d681SAndroid Build Coastguard Worker  br i1 %cmp91, label %for.inc.lr.ph, label %for.cond2.loopexit
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Workerfor.inc.lr.ph:                                    ; preds = %cond.end
189*9880d681SAndroid Build Coastguard Worker  br label %for.inc
190*9880d681SAndroid Build Coastguard Worker
191*9880d681SAndroid Build Coastguard Workerfor.inc:                                          ; preds = %for.inc, %for.inc.lr.ph
192*9880d681SAndroid Build Coastguard Worker  %11 = phi i32 [ %10, %for.inc.lr.ph ], [ %inc, %for.inc ]
193*9880d681SAndroid Build Coastguard Worker  %inc = add nsw i32 %11, 1
194*9880d681SAndroid Build Coastguard Worker  %cmp9 = icmp slt i32 %inc, 1
195*9880d681SAndroid Build Coastguard Worker  br i1 %cmp9, label %for.inc, label %for.cond8.for.cond2.loopexit_crit_edge
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa:  ; preds = %for.cond2.loopexit
198*9880d681SAndroid Build Coastguard Worker  %cond.lcssa.ph.ph = phi i32 [ %cond, %for.cond2.loopexit ]
199*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.for.inc13_crit_edge.us-lcssa
200*9880d681SAndroid Build Coastguard Worker
201*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge.us-lcssa:           ; preds = %for.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa, %for.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa.us
202*9880d681SAndroid Build Coastguard Worker  %cond.lcssa.ph = phi i32 [ %cond.lcssa.ph.ph, %for.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa ], [ %cond.lcssa.ph.ph.us, %for.cond2.for.inc13_crit_edge.us-lcssa.us-lcssa.us ]
203*9880d681SAndroid Build Coastguard Worker  br label %for.cond2.for.inc13_crit_edge
204*9880d681SAndroid Build Coastguard Worker
205*9880d681SAndroid Build Coastguard Workerfor.cond2.for.inc13_crit_edge:                    ; preds = %for.cond2.for.inc13_crit_edge.us-lcssa, %for.cond2.for.inc13_crit_edge.us-lcssa.us
206*9880d681SAndroid Build Coastguard Worker  %cond.lcssa = phi i32 [ %cond.lcssa.ph, %for.cond2.for.inc13_crit_edge.us-lcssa ], [ %cond.lcssa.ph.us, %for.cond2.for.inc13_crit_edge.us-lcssa.us ]
207*9880d681SAndroid Build Coastguard Worker  store i32 %cond.lcssa, i32* @c, align 4
208*9880d681SAndroid Build Coastguard Worker  br label %for.inc13
209*9880d681SAndroid Build Coastguard Worker
210*9880d681SAndroid Build Coastguard Worker; CHECK: [[for_inc13]]:
211*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %[[indvars_iv_next]] = add nsw i32 %[[indvars_iv]], 1
212*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %[[exitcond4:.*]] = icmp ne i32 %[[indvars_iv_next]], 0
213*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: br i1 %[[exitcond4]], label %[[for_cond2_preheader]], label %[[for_end15:.*]]
214*9880d681SAndroid Build Coastguard Workerfor.inc13:                                        ; preds = %for.cond2.for.inc13_crit_edge, %for.cond2.preheader
215*9880d681SAndroid Build Coastguard Worker  %inc14 = add i8 %storemerge15, 1
216*9880d681SAndroid Build Coastguard Worker  %cmp = icmp ugt i8 %inc14, 50
217*9880d681SAndroid Build Coastguard Worker  br i1 %cmp, label %for.cond2.preheader, label %for.end15
218*9880d681SAndroid Build Coastguard Worker
219*9880d681SAndroid Build Coastguard Worker; CHECK: [[for_end15]]:
220*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret void
221*9880d681SAndroid Build Coastguard Workerfor.end15:                                        ; preds = %for.inc13
222*9880d681SAndroid Build Coastguard Worker  ret void
223*9880d681SAndroid Build Coastguard Worker}
224