comparison polly/test/ScopInfo/complex-successor-structure-3.ll @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
comparison
equal deleted inserted replaced
237:c80f45b162ad 252:1f2b6ac9f198
139 ; return; 139 ; return;
140 ; } 140 ; }
141 ; 141 ;
142 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 142 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
143 143
144 define void @f(i16* noalias %In, i32* noalias %Out) { 144 define void @f(ptr noalias %In, ptr noalias %Out) {
145 entry: 145 entry:
146 %tmp = load i16, i16* %In, align 2 146 %tmp = load i16, ptr %In, align 2
147 %conv = sext i16 %tmp to i32 147 %conv = sext i16 %tmp to i32
148 %cmp = icmp slt i16 %tmp, 1041 148 %cmp = icmp slt i16 %tmp, 1041
149 br i1 %cmp, label %B0, label %C0 149 br i1 %cmp, label %B0, label %C0
150 150
151 B0: ; preds = %entry 151 B0: ; preds = %entry
152 %arrayidx4 = getelementptr inbounds i32, i32* %Out, i64 1041 152 %arrayidx4 = getelementptr inbounds i32, ptr %Out, i64 1041
153 %tmp3 = load i32, i32* %arrayidx4, align 4 153 %tmp3 = load i32, ptr %arrayidx4, align 4
154 %inc5 = add nsw i32 %tmp3, 1 154 %inc5 = add nsw i32 %tmp3, 1
155 store i32 %inc5, i32* %arrayidx4, align 4 155 store i32 %inc5, ptr %arrayidx4, align 4
156 br label %A1 156 br label %A1
157 157
158 C0: ; preds = %entry 158 C0: ; preds = %entry
159 %idxprom6 = sext i16 %tmp to i64 159 %idxprom6 = sext i16 %tmp to i64
160 %arrayidx7 = getelementptr inbounds i32, i32* %Out, i64 %idxprom6 160 %arrayidx7 = getelementptr inbounds i32, ptr %Out, i64 %idxprom6
161 %tmp4 = load i32, i32* %arrayidx7, align 4 161 %tmp4 = load i32, ptr %arrayidx7, align 4
162 %dec = add nsw i32 %tmp4, -1 162 %dec = add nsw i32 %tmp4, -1
163 store i32 %dec, i32* %arrayidx7, align 4 163 store i32 %dec, ptr %arrayidx7, align 4
164 br label %A1 164 br label %A1
165 165
166 A1: ; preds = %B0, %C0 166 A1: ; preds = %B0, %C0
167 %V.0 = phi i32 [ 1041, %B0 ], [ %conv, %C0 ] 167 %V.0 = phi i32 [ 1041, %B0 ], [ %conv, %C0 ]
168 %arrayidx10 = getelementptr inbounds i16, i16* %In, i64 1 168 %arrayidx10 = getelementptr inbounds i16, ptr %In, i64 1
169 %tmp5 = load i16, i16* %arrayidx10, align 2 169 %tmp5 = load i16, ptr %arrayidx10, align 2
170 %conv11 = sext i16 %tmp5 to i32 170 %conv11 = sext i16 %tmp5 to i32
171 %add12 = add nsw i32 %V.0, 42 171 %add12 = add nsw i32 %V.0, 42
172 %cmp13 = icmp slt i32 %conv11, %add12 172 %cmp13 = icmp slt i32 %conv11, %add12
173 br i1 %cmp13, label %B1, label %C1 173 br i1 %cmp13, label %B1, label %C1
174 174
175 B1: ; preds = %A1 175 B1: ; preds = %A1
176 %add16 = add nsw i32 %V.0, 42 176 %add16 = add nsw i32 %V.0, 42
177 %idxprom17 = sext i32 %add16 to i64 177 %idxprom17 = sext i32 %add16 to i64
178 %arrayidx18 = getelementptr inbounds i32, i32* %Out, i64 %idxprom17 178 %arrayidx18 = getelementptr inbounds i32, ptr %Out, i64 %idxprom17
179 %tmp6 = load i32, i32* %arrayidx18, align 4 179 %tmp6 = load i32, ptr %arrayidx18, align 4
180 %inc19 = add nsw i32 %tmp6, 1 180 %inc19 = add nsw i32 %tmp6, 1
181 store i32 %inc19, i32* %arrayidx18, align 4 181 store i32 %inc19, ptr %arrayidx18, align 4
182 br label %A2 182 br label %A2
183 183
184 C1: ; preds = %A1 184 C1: ; preds = %A1
185 %idxprom21 = sext i16 %tmp5 to i64 185 %idxprom21 = sext i16 %tmp5 to i64
186 %arrayidx22 = getelementptr inbounds i32, i32* %Out, i64 %idxprom21 186 %arrayidx22 = getelementptr inbounds i32, ptr %Out, i64 %idxprom21
187 %tmp7 = load i32, i32* %arrayidx22, align 4 187 %tmp7 = load i32, ptr %arrayidx22, align 4
188 %dec23 = add nsw i32 %tmp7, -1 188 %dec23 = add nsw i32 %tmp7, -1
189 store i32 %dec23, i32* %arrayidx22, align 4 189 store i32 %dec23, ptr %arrayidx22, align 4
190 br label %A2 190 br label %A2
191 191
192 A2: ; preds = %B1, %C1 192 A2: ; preds = %B1, %C1
193 %arrayidx27 = getelementptr inbounds i16, i16* %In, i64 2 193 %arrayidx27 = getelementptr inbounds i16, ptr %In, i64 2
194 %tmp8 = load i16, i16* %arrayidx27, align 2 194 %tmp8 = load i16, ptr %arrayidx27, align 2
195 %conv28 = sext i16 %tmp8 to i32 195 %conv28 = sext i16 %tmp8 to i32
196 %cmp30 = icmp slt i16 %tmp8, 1041 196 %cmp30 = icmp slt i16 %tmp8, 1041
197 br i1 %cmp30, label %B2, label %C2 197 br i1 %cmp30, label %B2, label %C2
198 198
199 B2: ; preds = %A2 199 B2: ; preds = %A2
200 %arrayidx35 = getelementptr inbounds i32, i32* %Out, i64 1041 200 %arrayidx35 = getelementptr inbounds i32, ptr %Out, i64 1041
201 %tmp9 = load i32, i32* %arrayidx35, align 4 201 %tmp9 = load i32, ptr %arrayidx35, align 4
202 %inc36 = add nsw i32 %tmp9, 1 202 %inc36 = add nsw i32 %tmp9, 1
203 store i32 %inc36, i32* %arrayidx35, align 4 203 store i32 %inc36, ptr %arrayidx35, align 4
204 br label %A3 204 br label %A3
205 205
206 C2: ; preds = %A2 206 C2: ; preds = %A2
207 %idxprom38 = sext i16 %tmp8 to i64 207 %idxprom38 = sext i16 %tmp8 to i64
208 %arrayidx39 = getelementptr inbounds i32, i32* %Out, i64 %idxprom38 208 %arrayidx39 = getelementptr inbounds i32, ptr %Out, i64 %idxprom38
209 %tmp10 = load i32, i32* %arrayidx39, align 4 209 %tmp10 = load i32, ptr %arrayidx39, align 4
210 %dec40 = add nsw i32 %tmp10, -1 210 %dec40 = add nsw i32 %tmp10, -1
211 store i32 %dec40, i32* %arrayidx39, align 4 211 store i32 %dec40, ptr %arrayidx39, align 4
212 br label %A3 212 br label %A3
213 213
214 A3: ; preds = %B2, %C2 214 A3: ; preds = %B2, %C2
215 %V.1 = phi i32 [ 1041, %B2 ], [ %conv28, %C2 ] 215 %V.1 = phi i32 [ 1041, %B2 ], [ %conv28, %C2 ]
216 %arrayidx44 = getelementptr inbounds i16, i16* %In, i64 3 216 %arrayidx44 = getelementptr inbounds i16, ptr %In, i64 3
217 %tmp11 = load i16, i16* %arrayidx44, align 2 217 %tmp11 = load i16, ptr %arrayidx44, align 2
218 %conv45 = sext i16 %tmp11 to i32 218 %conv45 = sext i16 %tmp11 to i32
219 %add46 = add nsw i32 %V.1, 42 219 %add46 = add nsw i32 %V.1, 42
220 %cmp47 = icmp slt i32 %conv45, %add46 220 %cmp47 = icmp slt i32 %conv45, %add46
221 br i1 %cmp47, label %B3, label %C3 221 br i1 %cmp47, label %B3, label %C3
222 222
223 B3: ; preds = %A3 223 B3: ; preds = %A3
224 %add50 = add nsw i32 %V.1, 42 224 %add50 = add nsw i32 %V.1, 42
225 %idxprom51 = sext i32 %add50 to i64 225 %idxprom51 = sext i32 %add50 to i64
226 %arrayidx52 = getelementptr inbounds i32, i32* %Out, i64 %idxprom51 226 %arrayidx52 = getelementptr inbounds i32, ptr %Out, i64 %idxprom51
227 %tmp12 = load i32, i32* %arrayidx52, align 4 227 %tmp12 = load i32, ptr %arrayidx52, align 4
228 %inc53 = add nsw i32 %tmp12, 1 228 %inc53 = add nsw i32 %tmp12, 1
229 store i32 %inc53, i32* %arrayidx52, align 4 229 store i32 %inc53, ptr %arrayidx52, align 4
230 br label %A4 230 br label %A4
231 231
232 C3: ; preds = %A3 232 C3: ; preds = %A3
233 %idxprom55 = sext i16 %tmp11 to i64 233 %idxprom55 = sext i16 %tmp11 to i64
234 %arrayidx56 = getelementptr inbounds i32, i32* %Out, i64 %idxprom55 234 %arrayidx56 = getelementptr inbounds i32, ptr %Out, i64 %idxprom55
235 %tmp13 = load i32, i32* %arrayidx56, align 4 235 %tmp13 = load i32, ptr %arrayidx56, align 4
236 %dec57 = add nsw i32 %tmp13, -1 236 %dec57 = add nsw i32 %tmp13, -1
237 store i32 %dec57, i32* %arrayidx56, align 4 237 store i32 %dec57, ptr %arrayidx56, align 4
238 br label %A4 238 br label %A4
239 239
240 A4: ; preds = %B3, %C3 240 A4: ; preds = %B3, %C3
241 %arrayidx61 = getelementptr inbounds i16, i16* %In, i64 4 241 %arrayidx61 = getelementptr inbounds i16, ptr %In, i64 4
242 %tmp14 = load i16, i16* %arrayidx61, align 2 242 %tmp14 = load i16, ptr %arrayidx61, align 2
243 %conv62 = sext i16 %tmp14 to i32 243 %conv62 = sext i16 %tmp14 to i32
244 %cmp64 = icmp slt i16 %tmp14, 1041 244 %cmp64 = icmp slt i16 %tmp14, 1041
245 br i1 %cmp64, label %B4, label %C4 245 br i1 %cmp64, label %B4, label %C4
246 246
247 B4: ; preds = %A4 247 B4: ; preds = %A4
248 %arrayidx69 = getelementptr inbounds i32, i32* %Out, i64 1041 248 %arrayidx69 = getelementptr inbounds i32, ptr %Out, i64 1041
249 %tmp15 = load i32, i32* %arrayidx69, align 4 249 %tmp15 = load i32, ptr %arrayidx69, align 4
250 %inc70 = add nsw i32 %tmp15, 1 250 %inc70 = add nsw i32 %tmp15, 1
251 store i32 %inc70, i32* %arrayidx69, align 4 251 store i32 %inc70, ptr %arrayidx69, align 4
252 br label %A5 252 br label %A5
253 253
254 C4: ; preds = %A4 254 C4: ; preds = %A4
255 %idxprom72 = sext i16 %tmp14 to i64 255 %idxprom72 = sext i16 %tmp14 to i64
256 %arrayidx73 = getelementptr inbounds i32, i32* %Out, i64 %idxprom72 256 %arrayidx73 = getelementptr inbounds i32, ptr %Out, i64 %idxprom72
257 %tmp16 = load i32, i32* %arrayidx73, align 4 257 %tmp16 = load i32, ptr %arrayidx73, align 4
258 %dec74 = add nsw i32 %tmp16, -1 258 %dec74 = add nsw i32 %tmp16, -1
259 store i32 %dec74, i32* %arrayidx73, align 4 259 store i32 %dec74, ptr %arrayidx73, align 4
260 %phitmp = add nsw i32 %conv62, 42 260 %phitmp = add nsw i32 %conv62, 42
261 br label %A5 261 br label %A5
262 262
263 A5: ; preds = %B4, %C4 263 A5: ; preds = %B4, %C4
264 %V.2 = phi i32 [ 1083, %B4 ], [ %phitmp, %C4 ] 264 %V.2 = phi i32 [ 1083, %B4 ], [ %phitmp, %C4 ]
265 %arrayidx78 = getelementptr inbounds i16, i16* %In, i64 5 265 %arrayidx78 = getelementptr inbounds i16, ptr %In, i64 5
266 %tmp17 = load i16, i16* %arrayidx78, align 2 266 %tmp17 = load i16, ptr %arrayidx78, align 2
267 %conv79 = sext i16 %tmp17 to i32 267 %conv79 = sext i16 %tmp17 to i32
268 %cmp81 = icmp slt i32 %conv79, %V.2 268 %cmp81 = icmp slt i32 %conv79, %V.2
269 br i1 %cmp81, label %B5, label %C5 269 br i1 %cmp81, label %B5, label %C5
270 270
271 B5: ; preds = %A5 271 B5: ; preds = %A5
272 %idxprom85 = sext i32 %V.2 to i64 272 %idxprom85 = sext i32 %V.2 to i64
273 %arrayidx86 = getelementptr inbounds i32, i32* %Out, i64 %idxprom85 273 %arrayidx86 = getelementptr inbounds i32, ptr %Out, i64 %idxprom85
274 %tmp18 = load i32, i32* %arrayidx86, align 4 274 %tmp18 = load i32, ptr %arrayidx86, align 4
275 %inc87 = add nsw i32 %tmp18, 1 275 %inc87 = add nsw i32 %tmp18, 1
276 store i32 %inc87, i32* %arrayidx86, align 4 276 store i32 %inc87, ptr %arrayidx86, align 4
277 br label %A6 277 br label %A6
278 278
279 C5: ; preds = %A5 279 C5: ; preds = %A5
280 %idxprom89 = sext i16 %tmp17 to i64 280 %idxprom89 = sext i16 %tmp17 to i64
281 %arrayidx90 = getelementptr inbounds i32, i32* %Out, i64 %idxprom89 281 %arrayidx90 = getelementptr inbounds i32, ptr %Out, i64 %idxprom89
282 %tmp19 = load i32, i32* %arrayidx90, align 4 282 %tmp19 = load i32, ptr %arrayidx90, align 4
283 %dec91 = add nsw i32 %tmp19, -1 283 %dec91 = add nsw i32 %tmp19, -1
284 store i32 %dec91, i32* %arrayidx90, align 4 284 store i32 %dec91, ptr %arrayidx90, align 4
285 br label %A6 285 br label %A6
286 286
287 A6: ; preds = %B5, %C5 287 A6: ; preds = %B5, %C5
288 %arrayidx95 = getelementptr inbounds i16, i16* %In, i64 6 288 %arrayidx95 = getelementptr inbounds i16, ptr %In, i64 6
289 %tmp20 = load i16, i16* %arrayidx95, align 2 289 %tmp20 = load i16, ptr %arrayidx95, align 2
290 %conv96 = sext i16 %tmp20 to i32 290 %conv96 = sext i16 %tmp20 to i32
291 %cmp98 = icmp slt i16 %tmp20, 1041 291 %cmp98 = icmp slt i16 %tmp20, 1041
292 br i1 %cmp98, label %B6, label %C6 292 br i1 %cmp98, label %B6, label %C6
293 293
294 B6: ; preds = %A6 294 B6: ; preds = %A6
295 %arrayidx103 = getelementptr inbounds i32, i32* %Out, i64 1041 295 %arrayidx103 = getelementptr inbounds i32, ptr %Out, i64 1041
296 %tmp21 = load i32, i32* %arrayidx103, align 4 296 %tmp21 = load i32, ptr %arrayidx103, align 4
297 %inc104 = add nsw i32 %tmp21, 1 297 %inc104 = add nsw i32 %tmp21, 1
298 store i32 %inc104, i32* %arrayidx103, align 4 298 store i32 %inc104, ptr %arrayidx103, align 4
299 br label %A7 299 br label %A7
300 300
301 C6: ; preds = %A6 301 C6: ; preds = %A6
302 %idxprom106 = sext i16 %tmp20 to i64 302 %idxprom106 = sext i16 %tmp20 to i64
303 %arrayidx107 = getelementptr inbounds i32, i32* %Out, i64 %idxprom106 303 %arrayidx107 = getelementptr inbounds i32, ptr %Out, i64 %idxprom106
304 %tmp22 = load i32, i32* %arrayidx107, align 4 304 %tmp22 = load i32, ptr %arrayidx107, align 4
305 %dec108 = add nsw i32 %tmp22, -1 305 %dec108 = add nsw i32 %tmp22, -1
306 store i32 %dec108, i32* %arrayidx107, align 4 306 store i32 %dec108, ptr %arrayidx107, align 4
307 %phitmp1 = add nsw i32 %conv96, 42 307 %phitmp1 = add nsw i32 %conv96, 42
308 br label %A7 308 br label %A7
309 309
310 A7: ; preds = %B6, %C6 310 A7: ; preds = %B6, %C6
311 %V.3 = phi i32 [ 1083, %B6 ], [ %phitmp1, %C6 ] 311 %V.3 = phi i32 [ 1083, %B6 ], [ %phitmp1, %C6 ]
312 %arrayidx112 = getelementptr inbounds i16, i16* %In, i64 7 312 %arrayidx112 = getelementptr inbounds i16, ptr %In, i64 7
313 %tmp23 = load i16, i16* %arrayidx112, align 2 313 %tmp23 = load i16, ptr %arrayidx112, align 2
314 %conv113 = sext i16 %tmp23 to i32 314 %conv113 = sext i16 %tmp23 to i32
315 %cmp115 = icmp slt i32 %conv113, %V.3 315 %cmp115 = icmp slt i32 %conv113, %V.3
316 br i1 %cmp115, label %B7, label %C7 316 br i1 %cmp115, label %B7, label %C7
317 317
318 B7: ; preds = %A7 318 B7: ; preds = %A7
319 %idxprom119 = sext i32 %V.3 to i64 319 %idxprom119 = sext i32 %V.3 to i64
320 %arrayidx120 = getelementptr inbounds i32, i32* %Out, i64 %idxprom119 320 %arrayidx120 = getelementptr inbounds i32, ptr %Out, i64 %idxprom119
321 %tmp24 = load i32, i32* %arrayidx120, align 4 321 %tmp24 = load i32, ptr %arrayidx120, align 4
322 %inc121 = add nsw i32 %tmp24, 1 322 %inc121 = add nsw i32 %tmp24, 1
323 store i32 %inc121, i32* %arrayidx120, align 4 323 store i32 %inc121, ptr %arrayidx120, align 4
324 br label %A8 324 br label %A8
325 325
326 C7: ; preds = %A7 326 C7: ; preds = %A7
327 %idxprom123 = sext i16 %tmp23 to i64 327 %idxprom123 = sext i16 %tmp23 to i64
328 %arrayidx124 = getelementptr inbounds i32, i32* %Out, i64 %idxprom123 328 %arrayidx124 = getelementptr inbounds i32, ptr %Out, i64 %idxprom123
329 %tmp25 = load i32, i32* %arrayidx124, align 4 329 %tmp25 = load i32, ptr %arrayidx124, align 4
330 %dec125 = add nsw i32 %tmp25, -1 330 %dec125 = add nsw i32 %tmp25, -1
331 store i32 %dec125, i32* %arrayidx124, align 4 331 store i32 %dec125, ptr %arrayidx124, align 4
332 br label %A8 332 br label %A8
333 333
334 A8: ; preds = %B7, %C7 334 A8: ; preds = %B7, %C7
335 %arrayidx129 = getelementptr inbounds i16, i16* %In, i64 8 335 %arrayidx129 = getelementptr inbounds i16, ptr %In, i64 8
336 %tmp26 = load i16, i16* %arrayidx129, align 2 336 %tmp26 = load i16, ptr %arrayidx129, align 2
337 %cmp132 = icmp slt i16 %tmp26, 1041 337 %cmp132 = icmp slt i16 %tmp26, 1041
338 br i1 %cmp132, label %B8, label %C8 338 br i1 %cmp132, label %B8, label %C8
339 339
340 B8: ; preds = %A8 340 B8: ; preds = %A8
341 %arrayidx137 = getelementptr inbounds i32, i32* %Out, i64 1041 341 %arrayidx137 = getelementptr inbounds i32, ptr %Out, i64 1041
342 %tmp27 = load i32, i32* %arrayidx137, align 4 342 %tmp27 = load i32, ptr %arrayidx137, align 4
343 %inc138 = add nsw i32 %tmp27, 1 343 %inc138 = add nsw i32 %tmp27, 1
344 store i32 %inc138, i32* %arrayidx137, align 4 344 store i32 %inc138, ptr %arrayidx137, align 4
345 br label %FINAL 345 br label %FINAL
346 346
347 C8: ; preds = %A8 347 C8: ; preds = %A8
348 %idxprom140 = sext i16 %tmp26 to i64 348 %idxprom140 = sext i16 %tmp26 to i64
349 %arrayidx141 = getelementptr inbounds i32, i32* %Out, i64 %idxprom140 349 %arrayidx141 = getelementptr inbounds i32, ptr %Out, i64 %idxprom140
350 %tmp28 = load i32, i32* %arrayidx141, align 4 350 %tmp28 = load i32, ptr %arrayidx141, align 4
351 %dec142 = add nsw i32 %tmp28, -1 351 %dec142 = add nsw i32 %tmp28, -1
352 store i32 %dec142, i32* %arrayidx141, align 4 352 store i32 %dec142, ptr %arrayidx141, align 4
353 %phitmp2 = sext i16 %tmp26 to i64 353 %phitmp2 = sext i16 %tmp26 to i64
354 br label %FINAL 354 br label %FINAL
355 355
356 FINAL: ; preds = %C8, %B8 356 FINAL: ; preds = %C8, %B8
357 %V.4 = phi i64 [ 1041, %B8 ], [ %phitmp2, %C8 ] 357 %V.4 = phi i64 [ 1041, %B8 ], [ %phitmp2, %C8 ]
358 %arrayidx145 = getelementptr inbounds i32, i32* %Out, i64 %V.4 358 %arrayidx145 = getelementptr inbounds i32, ptr %Out, i64 %V.4
359 %tmp29 = load i32, i32* %arrayidx145, align 4 359 %tmp29 = load i32, ptr %arrayidx145, align 4
360 %inc146 = add nsw i32 %tmp29, 1 360 %inc146 = add nsw i32 %tmp29, 1
361 store i32 %inc146, i32* %arrayidx145, align 4 361 store i32 %inc146, ptr %arrayidx145, align 4
362 br label %ScopExit 362 br label %ScopExit
363 363
364 ScopExit: 364 ScopExit:
365 ret void 365 ret void
366 } 366 }