@@ -20,180 +20,178 @@ define fastcc ptr @wrongUseOfPostDominate(ptr readonly %s, i32 %off, ptr readnon
2020; ENABLE-NEXT: .save {r11, lr}
2121; ENABLE-NEXT: push {r11, lr}
2222; ENABLE-NEXT: cmn r1, #1
23- ; ENABLE-NEXT: ble .LBB0_7
23+ ; ENABLE-NEXT: ble .LBB0_3
2424; ENABLE-NEXT: @ %bb.1: @ %while.cond.preheader
2525; ENABLE-NEXT: cmp r1, #0
26- ; ENABLE-NEXT: beq .LBB0_6
27- ; ENABLE-NEXT: @ %bb.2: @ %while.cond.preheader
28- ; ENABLE-NEXT: cmp r0, r2
29- ; ENABLE-NEXT: pophs {r11, pc}
30- ; ENABLE-NEXT: .LBB0_3: @ %while.body.preheader
31- ; ENABLE-NEXT: movw r12, :lower16:skip
32- ; ENABLE-NEXT: sub r1, r1, #1
33- ; ENABLE-NEXT: movt r12, :upper16:skip
34- ; ENABLE-NEXT: .LBB0_4: @ %while.body
35- ; ENABLE-NEXT: @ =>This Inner Loop Header: Depth=1
36- ; ENABLE-NEXT: ldrb r3, [r0]
37- ; ENABLE-NEXT: ldrb r3, [r12, r3]
38- ; ENABLE-NEXT: add r0, r0, r3
39- ; ENABLE-NEXT: sub r3, r1, #1
40- ; ENABLE-NEXT: cmp r3, r1
41- ; ENABLE-NEXT: bhs .LBB0_6
42- ; ENABLE-NEXT: @ %bb.5: @ %while.body
43- ; ENABLE-NEXT: @ in Loop: Header=BB0_4 Depth=1
44- ; ENABLE-NEXT: mov r1, r3
45- ; ENABLE-NEXT: cmp r0, r2
46- ; ENABLE-NEXT: blo .LBB0_4
47- ; ENABLE-NEXT: .LBB0_6: @ %if.end29
26+ ; ENABLE-NEXT: cmpne r0, r2
27+ ; ENABLE-NEXT: blo .LBB0_15
28+ ; ENABLE-NEXT: .LBB0_2: @ %if.end29
4829; ENABLE-NEXT: pop {r11, pc}
49- ; ENABLE-NEXT: .LBB0_7 : @ %while.cond2.outer
30+ ; ENABLE-NEXT: .LBB0_3 : @ %while.cond2.outer
5031; ENABLE-NEXT: @ =>This Loop Header: Depth=1
51- ; ENABLE-NEXT: @ Child Loop BB0_8 Depth 2
52- ; ENABLE-NEXT: @ Child Loop BB0_15 Depth 2
32+ ; ENABLE-NEXT: @ Child Loop BB0_4 Depth 2
33+ ; ENABLE-NEXT: @ Child Loop BB0_11 Depth 2
5334; ENABLE-NEXT: mov r3, r0
54- ; ENABLE-NEXT: .LBB0_8 : @ %while.cond2
55- ; ENABLE-NEXT: @ Parent Loop BB0_7 Depth=1
35+ ; ENABLE-NEXT: .LBB0_4 : @ %while.cond2
36+ ; ENABLE-NEXT: @ Parent Loop BB0_3 Depth=1
5637; ENABLE-NEXT: @ => This Inner Loop Header: Depth=2
5738; ENABLE-NEXT: add r1, r1, #1
5839; ENABLE-NEXT: cmp r1, #1
59- ; ENABLE-NEXT: beq .LBB0_18
60- ; ENABLE-NEXT: @ %bb.9 : @ %while.body4
61- ; ENABLE-NEXT: @ in Loop: Header=BB0_8 Depth=2
40+ ; ENABLE-NEXT: beq .LBB0_14
41+ ; ENABLE-NEXT: @ %bb.5 : @ %while.body4
42+ ; ENABLE-NEXT: @ in Loop: Header=BB0_4 Depth=2
6243; ENABLE-NEXT: cmp r3, r2
63- ; ENABLE-NEXT: bls .LBB0_8
64- ; ENABLE-NEXT: @ %bb.10 : @ %if.then7
65- ; ENABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
44+ ; ENABLE-NEXT: bls .LBB0_4
45+ ; ENABLE-NEXT: @ %bb.6 : @ %if.then7
46+ ; ENABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
6647; ENABLE-NEXT: mov r0, r3
6748; ENABLE-NEXT: ldrb r12, [r0, #-1]!
6849; ENABLE-NEXT: sxtb lr, r12
6950; ENABLE-NEXT: cmn lr, #1
70- ; ENABLE-NEXT: bgt .LBB0_7
71- ; ENABLE-NEXT: @ %bb.11 : @ %if.then7
72- ; ENABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
51+ ; ENABLE-NEXT: bgt .LBB0_3
52+ ; ENABLE-NEXT: @ %bb.7 : @ %if.then7
53+ ; ENABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
7354; ENABLE-NEXT: cmp r0, r2
74- ; ENABLE-NEXT: bls .LBB0_7
75- ; ENABLE-NEXT: @ %bb.12 : @ %land.rhs14.preheader
76- ; ENABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
55+ ; ENABLE-NEXT: bls .LBB0_3
56+ ; ENABLE-NEXT: @ %bb.8 : @ %land.rhs14.preheader
57+ ; ENABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
7758; ENABLE-NEXT: cmn lr, #1
78- ; ENABLE-NEXT: bgt .LBB0_7
79- ; ENABLE-NEXT: @ %bb.13 : @ %land.rhs14.preheader
80- ; ENABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
59+ ; ENABLE-NEXT: bgt .LBB0_3
60+ ; ENABLE-NEXT: @ %bb.9 : @ %land.rhs14.preheader
61+ ; ENABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
8162; ENABLE-NEXT: cmp r12, #191
82- ; ENABLE-NEXT: bhi .LBB0_7
83- ; ENABLE-NEXT: @ %bb.14 : @ %while.body24.preheader
84- ; ENABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
63+ ; ENABLE-NEXT: bhi .LBB0_3
64+ ; ENABLE-NEXT: @ %bb.10 : @ %while.body24.preheader
65+ ; ENABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
8566; ENABLE-NEXT: sub r3, r3, #2
86- ; ENABLE-NEXT: .LBB0_15 : @ %while.body24
87- ; ENABLE-NEXT: @ Parent Loop BB0_7 Depth=1
67+ ; ENABLE-NEXT: .LBB0_11 : @ %while.body24
68+ ; ENABLE-NEXT: @ Parent Loop BB0_3 Depth=1
8869; ENABLE-NEXT: @ => This Inner Loop Header: Depth=2
8970; ENABLE-NEXT: mov r0, r3
9071; ENABLE-NEXT: cmp r3, r2
91- ; ENABLE-NEXT: bls .LBB0_7
92- ; ENABLE-NEXT: @ %bb.16 : @ %while.body24.land.rhs14_crit_edge
93- ; ENABLE-NEXT: @ in Loop: Header=BB0_15 Depth=2
72+ ; ENABLE-NEXT: bls .LBB0_3
73+ ; ENABLE-NEXT: @ %bb.12 : @ %while.body24.land.rhs14_crit_edge
74+ ; ENABLE-NEXT: @ in Loop: Header=BB0_11 Depth=2
9475; ENABLE-NEXT: mov r3, r0
9576; ENABLE-NEXT: ldrsb lr, [r3], #-1
9677; ENABLE-NEXT: cmn lr, #1
9778; ENABLE-NEXT: uxtb r12, lr
98- ; ENABLE-NEXT: bgt .LBB0_7
99- ; ENABLE-NEXT: @ %bb.17 : @ %while.body24.land.rhs14_crit_edge
100- ; ENABLE-NEXT: @ in Loop: Header=BB0_15 Depth=2
79+ ; ENABLE-NEXT: bgt .LBB0_3
80+ ; ENABLE-NEXT: @ %bb.13 : @ %while.body24.land.rhs14_crit_edge
81+ ; ENABLE-NEXT: @ in Loop: Header=BB0_11 Depth=2
10182; ENABLE-NEXT: cmp r12, #192
102- ; ENABLE-NEXT: blo .LBB0_15
103- ; ENABLE-NEXT: b .LBB0_7
104- ; ENABLE-NEXT: .LBB0_18 :
83+ ; ENABLE-NEXT: blo .LBB0_11
84+ ; ENABLE-NEXT: b .LBB0_3
85+ ; ENABLE-NEXT: .LBB0_14 :
10586; ENABLE-NEXT: mov r0, r3
10687; ENABLE-NEXT: pop {r11, pc}
88+ ; ENABLE-NEXT: .LBB0_15: @ %while.body.preheader
89+ ; ENABLE-NEXT: movw r12, :lower16:skip
90+ ; ENABLE-NEXT: sub r1, r1, #1
91+ ; ENABLE-NEXT: movt r12, :upper16:skip
92+ ; ENABLE-NEXT: .LBB0_16: @ %while.body
93+ ; ENABLE-NEXT: @ =>This Inner Loop Header: Depth=1
94+ ; ENABLE-NEXT: ldrb r3, [r0]
95+ ; ENABLE-NEXT: ldrb r3, [r12, r3]
96+ ; ENABLE-NEXT: add r0, r0, r3
97+ ; ENABLE-NEXT: sub r3, r1, #1
98+ ; ENABLE-NEXT: cmp r3, r1
99+ ; ENABLE-NEXT: bhs .LBB0_2
100+ ; ENABLE-NEXT: @ %bb.17: @ %while.body
101+ ; ENABLE-NEXT: @ in Loop: Header=BB0_16 Depth=1
102+ ; ENABLE-NEXT: mov r1, r3
103+ ; ENABLE-NEXT: cmp r0, r2
104+ ; ENABLE-NEXT: blo .LBB0_16
105+ ; ENABLE-NEXT: b .LBB0_2
107106;
108107; DISABLE-LABEL: wrongUseOfPostDominate:
109108; DISABLE: @ %bb.0: @ %entry
110109; DISABLE-NEXT: .save {r11, lr}
111110; DISABLE-NEXT: push {r11, lr}
112111; DISABLE-NEXT: cmn r1, #1
113- ; DISABLE-NEXT: ble .LBB0_7
112+ ; DISABLE-NEXT: ble .LBB0_3
114113; DISABLE-NEXT: @ %bb.1: @ %while.cond.preheader
115114; DISABLE-NEXT: cmp r1, #0
116- ; DISABLE-NEXT: beq .LBB0_6
117- ; DISABLE-NEXT: @ %bb.2: @ %while.cond.preheader
118- ; DISABLE-NEXT: cmp r0, r2
119- ; DISABLE-NEXT: pophs {r11, pc}
120- ; DISABLE-NEXT: .LBB0_3: @ %while.body.preheader
121- ; DISABLE-NEXT: movw r12, :lower16:skip
122- ; DISABLE-NEXT: sub r1, r1, #1
123- ; DISABLE-NEXT: movt r12, :upper16:skip
124- ; DISABLE-NEXT: .LBB0_4: @ %while.body
125- ; DISABLE-NEXT: @ =>This Inner Loop Header: Depth=1
126- ; DISABLE-NEXT: ldrb r3, [r0]
127- ; DISABLE-NEXT: ldrb r3, [r12, r3]
128- ; DISABLE-NEXT: add r0, r0, r3
129- ; DISABLE-NEXT: sub r3, r1, #1
130- ; DISABLE-NEXT: cmp r3, r1
131- ; DISABLE-NEXT: bhs .LBB0_6
132- ; DISABLE-NEXT: @ %bb.5: @ %while.body
133- ; DISABLE-NEXT: @ in Loop: Header=BB0_4 Depth=1
134- ; DISABLE-NEXT: mov r1, r3
135- ; DISABLE-NEXT: cmp r0, r2
136- ; DISABLE-NEXT: blo .LBB0_4
137- ; DISABLE-NEXT: .LBB0_6: @ %if.end29
115+ ; DISABLE-NEXT: cmpne r0, r2
116+ ; DISABLE-NEXT: blo .LBB0_15
117+ ; DISABLE-NEXT: .LBB0_2: @ %if.end29
138118; DISABLE-NEXT: pop {r11, pc}
139- ; DISABLE-NEXT: .LBB0_7 : @ %while.cond2.outer
119+ ; DISABLE-NEXT: .LBB0_3 : @ %while.cond2.outer
140120; DISABLE-NEXT: @ =>This Loop Header: Depth=1
141- ; DISABLE-NEXT: @ Child Loop BB0_8 Depth 2
142- ; DISABLE-NEXT: @ Child Loop BB0_15 Depth 2
121+ ; DISABLE-NEXT: @ Child Loop BB0_4 Depth 2
122+ ; DISABLE-NEXT: @ Child Loop BB0_11 Depth 2
143123; DISABLE-NEXT: mov r3, r0
144- ; DISABLE-NEXT: .LBB0_8 : @ %while.cond2
145- ; DISABLE-NEXT: @ Parent Loop BB0_7 Depth=1
124+ ; DISABLE-NEXT: .LBB0_4 : @ %while.cond2
125+ ; DISABLE-NEXT: @ Parent Loop BB0_3 Depth=1
146126; DISABLE-NEXT: @ => This Inner Loop Header: Depth=2
147127; DISABLE-NEXT: add r1, r1, #1
148128; DISABLE-NEXT: cmp r1, #1
149- ; DISABLE-NEXT: beq .LBB0_18
150- ; DISABLE-NEXT: @ %bb.9 : @ %while.body4
151- ; DISABLE-NEXT: @ in Loop: Header=BB0_8 Depth=2
129+ ; DISABLE-NEXT: beq .LBB0_14
130+ ; DISABLE-NEXT: @ %bb.5 : @ %while.body4
131+ ; DISABLE-NEXT: @ in Loop: Header=BB0_4 Depth=2
152132; DISABLE-NEXT: cmp r3, r2
153- ; DISABLE-NEXT: bls .LBB0_8
154- ; DISABLE-NEXT: @ %bb.10 : @ %if.then7
155- ; DISABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
133+ ; DISABLE-NEXT: bls .LBB0_4
134+ ; DISABLE-NEXT: @ %bb.6 : @ %if.then7
135+ ; DISABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
156136; DISABLE-NEXT: mov r0, r3
157137; DISABLE-NEXT: ldrb r12, [r0, #-1]!
158138; DISABLE-NEXT: sxtb lr, r12
159139; DISABLE-NEXT: cmn lr, #1
160- ; DISABLE-NEXT: bgt .LBB0_7
161- ; DISABLE-NEXT: @ %bb.11 : @ %if.then7
162- ; DISABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
140+ ; DISABLE-NEXT: bgt .LBB0_3
141+ ; DISABLE-NEXT: @ %bb.7 : @ %if.then7
142+ ; DISABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
163143; DISABLE-NEXT: cmp r0, r2
164- ; DISABLE-NEXT: bls .LBB0_7
165- ; DISABLE-NEXT: @ %bb.12 : @ %land.rhs14.preheader
166- ; DISABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
144+ ; DISABLE-NEXT: bls .LBB0_3
145+ ; DISABLE-NEXT: @ %bb.8 : @ %land.rhs14.preheader
146+ ; DISABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
167147; DISABLE-NEXT: cmn lr, #1
168- ; DISABLE-NEXT: bgt .LBB0_7
169- ; DISABLE-NEXT: @ %bb.13 : @ %land.rhs14.preheader
170- ; DISABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
148+ ; DISABLE-NEXT: bgt .LBB0_3
149+ ; DISABLE-NEXT: @ %bb.9 : @ %land.rhs14.preheader
150+ ; DISABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
171151; DISABLE-NEXT: cmp r12, #191
172- ; DISABLE-NEXT: bhi .LBB0_7
173- ; DISABLE-NEXT: @ %bb.14 : @ %while.body24.preheader
174- ; DISABLE-NEXT: @ in Loop: Header=BB0_7 Depth=1
152+ ; DISABLE-NEXT: bhi .LBB0_3
153+ ; DISABLE-NEXT: @ %bb.10 : @ %while.body24.preheader
154+ ; DISABLE-NEXT: @ in Loop: Header=BB0_3 Depth=1
175155; DISABLE-NEXT: sub r3, r3, #2
176- ; DISABLE-NEXT: .LBB0_15 : @ %while.body24
177- ; DISABLE-NEXT: @ Parent Loop BB0_7 Depth=1
156+ ; DISABLE-NEXT: .LBB0_11 : @ %while.body24
157+ ; DISABLE-NEXT: @ Parent Loop BB0_3 Depth=1
178158; DISABLE-NEXT: @ => This Inner Loop Header: Depth=2
179159; DISABLE-NEXT: mov r0, r3
180160; DISABLE-NEXT: cmp r3, r2
181- ; DISABLE-NEXT: bls .LBB0_7
182- ; DISABLE-NEXT: @ %bb.16 : @ %while.body24.land.rhs14_crit_edge
183- ; DISABLE-NEXT: @ in Loop: Header=BB0_15 Depth=2
161+ ; DISABLE-NEXT: bls .LBB0_3
162+ ; DISABLE-NEXT: @ %bb.12 : @ %while.body24.land.rhs14_crit_edge
163+ ; DISABLE-NEXT: @ in Loop: Header=BB0_11 Depth=2
184164; DISABLE-NEXT: mov r3, r0
185165; DISABLE-NEXT: ldrsb lr, [r3], #-1
186166; DISABLE-NEXT: cmn lr, #1
187167; DISABLE-NEXT: uxtb r12, lr
188- ; DISABLE-NEXT: bgt .LBB0_7
189- ; DISABLE-NEXT: @ %bb.17 : @ %while.body24.land.rhs14_crit_edge
190- ; DISABLE-NEXT: @ in Loop: Header=BB0_15 Depth=2
168+ ; DISABLE-NEXT: bgt .LBB0_3
169+ ; DISABLE-NEXT: @ %bb.13 : @ %while.body24.land.rhs14_crit_edge
170+ ; DISABLE-NEXT: @ in Loop: Header=BB0_11 Depth=2
191171; DISABLE-NEXT: cmp r12, #192
192- ; DISABLE-NEXT: blo .LBB0_15
193- ; DISABLE-NEXT: b .LBB0_7
194- ; DISABLE-NEXT: .LBB0_18 :
172+ ; DISABLE-NEXT: blo .LBB0_11
173+ ; DISABLE-NEXT: b .LBB0_3
174+ ; DISABLE-NEXT: .LBB0_14 :
195175; DISABLE-NEXT: mov r0, r3
196176; DISABLE-NEXT: pop {r11, pc}
177+ ; DISABLE-NEXT: .LBB0_15: @ %while.body.preheader
178+ ; DISABLE-NEXT: movw r12, :lower16:skip
179+ ; DISABLE-NEXT: sub r1, r1, #1
180+ ; DISABLE-NEXT: movt r12, :upper16:skip
181+ ; DISABLE-NEXT: .LBB0_16: @ %while.body
182+ ; DISABLE-NEXT: @ =>This Inner Loop Header: Depth=1
183+ ; DISABLE-NEXT: ldrb r3, [r0]
184+ ; DISABLE-NEXT: ldrb r3, [r12, r3]
185+ ; DISABLE-NEXT: add r0, r0, r3
186+ ; DISABLE-NEXT: sub r3, r1, #1
187+ ; DISABLE-NEXT: cmp r3, r1
188+ ; DISABLE-NEXT: bhs .LBB0_2
189+ ; DISABLE-NEXT: @ %bb.17: @ %while.body
190+ ; DISABLE-NEXT: @ in Loop: Header=BB0_16 Depth=1
191+ ; DISABLE-NEXT: mov r1, r3
192+ ; DISABLE-NEXT: cmp r0, r2
193+ ; DISABLE-NEXT: blo .LBB0_16
194+ ; DISABLE-NEXT: b .LBB0_2
197195entry:
198196 %cmp = icmp sgt i32 %off , -1
199197 br i1 %cmp , label %while.cond.preheader , label %while.cond2.outer
0 commit comments