Skip to content

Commit 49a9787

Browse files
committed
[SCEV] Regenerate a subset of auto updated tests
Reducing spurious diff in an upcoming change.
1 parent b50a590 commit 49a9787

File tree

11 files changed

+260
-48
lines changed

11 files changed

+260
-48
lines changed

llvm/test/Transforms/IndVarSimplify/AArch64/widen-loop-comp.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ define void @test2(ptr %a, ptr %b, i8 %limit, i1 %arg) {
9797
; CHECK-LABEL: @test2(
9898
; CHECK-NEXT: entry:
9999
; CHECK-NEXT: [[CONV:%.*]] = zext i8 [[LIMIT:%.*]] to i32
100-
; CHECK-NEXT: br i1 %arg, label [[FOR_COND1_PREHEADER_PREHEADER:%.*]], label [[FOR_COND1_PREHEADER_US_PREHEADER:%.*]]
100+
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[FOR_COND1_PREHEADER_PREHEADER:%.*]], label [[FOR_COND1_PREHEADER_US_PREHEADER:%.*]]
101101
; CHECK: for.cond1.preheader.us.preheader:
102102
; CHECK-NEXT: [[SMAX:%.*]] = call i32 @llvm.smax.i32(i32 [[CONV]], i32 1)
103103
; CHECK-NEXT: br label [[FOR_COND1_PREHEADER_US:%.*]]

llvm/test/Transforms/IndVarSimplify/ARM/code-size.ll

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@
44

55
define i32 @remove_loop(i32 %size) #0 {
66
; CHECK-V8M-LABEL: @remove_loop(
7-
; CHECK-V8M-SAME: i32 [[SIZE:%.*]]) #[[ATTR0:[0-9]+]] {
87
; CHECK-V8M-NEXT: entry:
9-
; CHECK-V8M-NEXT: br label %[[WHILE_COND:.*]]
8+
; CHECK-V8M-NEXT: br label [[WHILE_COND:%.*]]
109
; CHECK-V8M: while.cond:
11-
; CHECK-V8M-NEXT: br i1 false, label %[[WHILE_COND]], label %[[WHILE_END:.*]]
10+
; CHECK-V8M-NEXT: br i1 false, label [[WHILE_COND]], label [[WHILE_END:%.*]]
1211
; CHECK-V8M: while.end:
13-
; CHECK-V8M-NEXT: [[TMP0:%.*]] = add i32 [[SIZE]], 31
12+
; CHECK-V8M-NEXT: [[TMP0:%.*]] = add i32 [[SIZE:%.*]], 31
1413
; CHECK-V8M-NEXT: [[UMIN:%.*]] = call i32 @llvm.umin.i32(i32 [[SIZE]], i32 31)
1514
; CHECK-V8M-NEXT: [[TMP1:%.*]] = sub i32 [[TMP0]], [[UMIN]]
1615
; CHECK-V8M-NEXT: [[TMP2:%.*]] = lshr i32 [[TMP1]], 5
@@ -19,13 +18,12 @@ define i32 @remove_loop(i32 %size) #0 {
1918
; CHECK-V8M-NEXT: ret i32 [[TMP4]]
2019
;
2120
; CHECK-V8A-LABEL: @remove_loop(
22-
; CHECK-V8A-SAME: i32 [[SIZE:%.*]]) #[[ATTR0:[0-9]+]] {
2321
; CHECK-V8A-NEXT: entry:
24-
; CHECK-V8A-NEXT: br label %[[WHILE_COND:.*]]
22+
; CHECK-V8A-NEXT: br label [[WHILE_COND:%.*]]
2523
; CHECK-V8A: while.cond:
26-
; CHECK-V8A-NEXT: br i1 false, label %[[WHILE_COND]], label %[[WHILE_END:.*]]
24+
; CHECK-V8A-NEXT: br i1 false, label [[WHILE_COND]], label [[WHILE_END:%.*]]
2725
; CHECK-V8A: while.end:
28-
; CHECK-V8A-NEXT: [[TMP0:%.*]] = add i32 [[SIZE]], 31
26+
; CHECK-V8A-NEXT: [[TMP0:%.*]] = add i32 [[SIZE:%.*]], 31
2927
; CHECK-V8A-NEXT: [[UMIN:%.*]] = call i32 @llvm.umin.i32(i32 [[SIZE]], i32 31)
3028
; CHECK-V8A-NEXT: [[TMP1:%.*]] = sub i32 [[TMP0]], [[UMIN]]
3129
; CHECK-V8A-NEXT: [[TMP2:%.*]] = lshr i32 [[TMP1]], 5

llvm/test/Transforms/IndVarSimplify/X86/iv-widen.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ declare void @use(i64 %x)
1616
define void @loop_0(ptr %a, i1 %arg) {
1717
; CHECK-LABEL: @loop_0(
1818
; CHECK-NEXT: Prologue:
19-
; CHECK-NEXT: br i1 %arg, label [[B18_PREHEADER:%.*]], label [[B6:%.*]]
19+
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[B18_PREHEADER:%.*]], label [[B6:%.*]]
2020
; CHECK: B18.preheader:
2121
; CHECK-NEXT: br label [[B18:%.*]]
2222
; CHECK: B18:
@@ -70,7 +70,7 @@ exit24: ; preds = %B18
7070
define void @loop_0_dead(ptr %a, i1 %arg) {
7171
; CHECK-LABEL: @loop_0_dead(
7272
; CHECK-NEXT: Prologue:
73-
; CHECK-NEXT: br i1 %arg, label [[B18_PREHEADER:%.*]], label [[B6:%.*]]
73+
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[B18_PREHEADER:%.*]], label [[B6:%.*]]
7474
; CHECK: B18.preheader:
7575
; CHECK-NEXT: br label [[B18:%.*]]
7676
; CHECK: B18:

llvm/test/Transforms/IndVarSimplify/X86/pr59615.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ target triple = "x86_64-unknown-linux-gnu"
77
define void @test() {
88
; CHECK-LABEL: @test(
99
; CHECK-NEXT: bb:
10-
; CHECK-NEXT: [[VAR:%.*]] = load atomic i32, ptr addrspace(1) poison unordered, align 8, !range [[RNG0:![0-9]+]], !invariant.load !1, !noundef !1
10+
; CHECK-NEXT: [[VAR:%.*]] = load atomic i32, ptr addrspace(1) poison unordered, align 8, !range [[RNG0:![0-9]+]], !invariant.load [[META1:![0-9]+]], !noundef [[META1]]
1111
; CHECK-NEXT: [[VAR2:%.*]] = icmp eq i32 [[VAR]], 0
1212
; CHECK-NEXT: br i1 [[VAR2]], label [[BB18:%.*]], label [[BB19:%.*]]
1313
; CHECK: bb3:
@@ -16,7 +16,7 @@ define void @test() {
1616
; CHECK: bb7:
1717
; CHECK-NEXT: ret void
1818
; CHECK: bb8:
19-
; CHECK-NEXT: [[VAR9:%.*]] = load atomic i32, ptr addrspace(1) poison unordered, align 8, !range [[RNG0]], !invariant.load !1, !noundef !1
19+
; CHECK-NEXT: [[VAR9:%.*]] = load atomic i32, ptr addrspace(1) poison unordered, align 8, !range [[RNG0]], !invariant.load [[META1]], !noundef [[META1]]
2020
; CHECK-NEXT: [[TMP0:%.*]] = zext i32 [[VAR9]] to i64
2121
; CHECK-NEXT: [[VAR10:%.*]] = icmp ult i64 [[INDVARS_IV]], [[TMP0]]
2222
; CHECK-NEXT: br i1 [[VAR10]], label [[BB12]], label [[BB11:%.*]]

llvm/test/Transforms/IndVarSimplify/debugloc-rem-subst.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ bb2: ; preds = %bb2, %bb1
5151
!8 = !DILocation(line: 1, column: 1, scope: !5)
5252
;.
5353
; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C, file: [[META1:![0-9]+]], producer: "debugify", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
54-
; CHECK: [[META1]] = !DIFile(filename: "llvm/test/Transforms/IndVarSimplify/debugloc-rem-subst.ll", directory: {{.*}})
54+
; CHECK: [[META1]] = !DIFile(filename: "{{.*}}debugloc-rem-subst.ll", directory: {{.*}})
5555
; CHECK: [[DBG5]] = distinct !DISubprogram(name: "widget", linkageName: "widget", scope: null, file: [[META1]], line: 1, type: [[META6:![0-9]+]], scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]])
5656
; CHECK: [[META6]] = !DISubroutineType(types: [[META7:![0-9]+]])
5757
; CHECK: [[META7]] = !{}

llvm/test/Transforms/IndVarSimplify/dont-recompute.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ define void @test6(i32 %m, ptr %p) nounwind uwtable {
211211
; CHECK-NEXT: [[ADD]] = add i32 [[A_05]], [[M:%.*]]
212212
; CHECK-NEXT: [[SOFT_USE:%.*]] = add i32 [[ADD]], 123
213213
; CHECK-NEXT: [[PIDX:%.*]] = getelementptr i32, ptr [[P:%.*]], i32 [[ADD]]
214-
; CHECK-NEXT: store i32 [[SOFT_USE]], ptr [[PIDX]]
214+
; CHECK-NEXT: store i32 [[SOFT_USE]], ptr [[PIDX]], align 4
215215
; CHECK-NEXT: [[INC]] = add nuw nsw i32 [[I_06]], 1
216216
; CHECK-NEXT: [[EXITCOND:%.*]] = icmp eq i32 [[INC]], 186
217217
; CHECK-NEXT: br i1 [[EXITCOND]], label [[FOR_END:%.*]], label [[FOR_BODY]]

llvm/test/Transforms/IndVarSimplify/eliminate-exit.ll

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,220 @@ exit:
221221
}
222222

223223
define void @many_exits([100 x i64] %len) {
224+
; CHECK-LABEL: @many_exits(
225+
; CHECK-NEXT: entry:
226+
; CHECK-NEXT: [[LEN1:%.*]] = extractvalue [100 x i64] [[LEN:%.*]], 1
227+
; CHECK-NEXT: [[LEN2:%.*]] = extractvalue [100 x i64] [[LEN]], 2
228+
; CHECK-NEXT: [[LEN3:%.*]] = extractvalue [100 x i64] [[LEN]], 3
229+
; CHECK-NEXT: [[LEN4:%.*]] = extractvalue [100 x i64] [[LEN]], 4
230+
; CHECK-NEXT: [[LEN5:%.*]] = extractvalue [100 x i64] [[LEN]], 5
231+
; CHECK-NEXT: [[LEN6:%.*]] = extractvalue [100 x i64] [[LEN]], 6
232+
; CHECK-NEXT: [[LEN7:%.*]] = extractvalue [100 x i64] [[LEN]], 7
233+
; CHECK-NEXT: [[LEN8:%.*]] = extractvalue [100 x i64] [[LEN]], 8
234+
; CHECK-NEXT: [[LEN9:%.*]] = extractvalue [100 x i64] [[LEN]], 9
235+
; CHECK-NEXT: [[LEN10:%.*]] = extractvalue [100 x i64] [[LEN]], 10
236+
; CHECK-NEXT: [[LEN11:%.*]] = extractvalue [100 x i64] [[LEN]], 11
237+
; CHECK-NEXT: [[LEN12:%.*]] = extractvalue [100 x i64] [[LEN]], 12
238+
; CHECK-NEXT: [[LEN13:%.*]] = extractvalue [100 x i64] [[LEN]], 13
239+
; CHECK-NEXT: [[LEN14:%.*]] = extractvalue [100 x i64] [[LEN]], 14
240+
; CHECK-NEXT: [[LEN15:%.*]] = extractvalue [100 x i64] [[LEN]], 15
241+
; CHECK-NEXT: [[LEN16:%.*]] = extractvalue [100 x i64] [[LEN]], 16
242+
; CHECK-NEXT: [[LEN17:%.*]] = extractvalue [100 x i64] [[LEN]], 17
243+
; CHECK-NEXT: [[LEN18:%.*]] = extractvalue [100 x i64] [[LEN]], 18
244+
; CHECK-NEXT: [[LEN19:%.*]] = extractvalue [100 x i64] [[LEN]], 19
245+
; CHECK-NEXT: [[LEN20:%.*]] = extractvalue [100 x i64] [[LEN]], 20
246+
; CHECK-NEXT: [[LEN21:%.*]] = extractvalue [100 x i64] [[LEN]], 21
247+
; CHECK-NEXT: [[LEN22:%.*]] = extractvalue [100 x i64] [[LEN]], 22
248+
; CHECK-NEXT: [[LEN23:%.*]] = extractvalue [100 x i64] [[LEN]], 23
249+
; CHECK-NEXT: [[LEN24:%.*]] = extractvalue [100 x i64] [[LEN]], 24
250+
; CHECK-NEXT: [[LEN25:%.*]] = extractvalue [100 x i64] [[LEN]], 25
251+
; CHECK-NEXT: [[LEN26:%.*]] = extractvalue [100 x i64] [[LEN]], 26
252+
; CHECK-NEXT: [[LEN27:%.*]] = extractvalue [100 x i64] [[LEN]], 27
253+
; CHECK-NEXT: [[LEN28:%.*]] = extractvalue [100 x i64] [[LEN]], 28
254+
; CHECK-NEXT: [[LEN29:%.*]] = extractvalue [100 x i64] [[LEN]], 29
255+
; CHECK-NEXT: [[LEN30:%.*]] = extractvalue [100 x i64] [[LEN]], 30
256+
; CHECK-NEXT: [[LEN31:%.*]] = extractvalue [100 x i64] [[LEN]], 31
257+
; CHECK-NEXT: [[LEN32:%.*]] = extractvalue [100 x i64] [[LEN]], 32
258+
; CHECK-NEXT: [[LEN33:%.*]] = extractvalue [100 x i64] [[LEN]], 33
259+
; CHECK-NEXT: [[LEN34:%.*]] = extractvalue [100 x i64] [[LEN]], 34
260+
; CHECK-NEXT: [[LEN35:%.*]] = extractvalue [100 x i64] [[LEN]], 35
261+
; CHECK-NEXT: [[LEN36:%.*]] = extractvalue [100 x i64] [[LEN]], 36
262+
; CHECK-NEXT: [[LEN37:%.*]] = extractvalue [100 x i64] [[LEN]], 37
263+
; CHECK-NEXT: [[LEN38:%.*]] = extractvalue [100 x i64] [[LEN]], 38
264+
; CHECK-NEXT: [[LEN39:%.*]] = extractvalue [100 x i64] [[LEN]], 39
265+
; CHECK-NEXT: br label [[LOOP:%.*]]
266+
; CHECK: loop:
267+
; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[BACKEDGE:%.*]] ]
268+
; CHECK-NEXT: [[LEN0:%.*]] = extractvalue [100 x i64] [[LEN]], 0
269+
; CHECK-NEXT: [[EARLY0:%.*]] = icmp eq i64 [[IV]], [[LEN0]]
270+
; CHECK-NEXT: call void @side_effect()
271+
; CHECK-NEXT: br i1 [[EARLY0]], label [[EXIT:%.*]], label [[CONT0:%.*]]
272+
; CHECK: cont0:
273+
; CHECK-NEXT: [[EARLY1:%.*]] = icmp eq i64 [[IV]], [[LEN1]]
274+
; CHECK-NEXT: call void @side_effect()
275+
; CHECK-NEXT: br i1 [[EARLY1]], label [[EXIT]], label [[CONT1:%.*]]
276+
; CHECK: cont1:
277+
; CHECK-NEXT: [[EARLY2:%.*]] = icmp eq i64 [[IV]], [[LEN2]]
278+
; CHECK-NEXT: call void @side_effect()
279+
; CHECK-NEXT: br i1 [[EARLY2]], label [[EXIT]], label [[CONT2:%.*]]
280+
; CHECK: cont2:
281+
; CHECK-NEXT: [[EARLY3:%.*]] = icmp eq i64 [[IV]], [[LEN3]]
282+
; CHECK-NEXT: call void @side_effect()
283+
; CHECK-NEXT: br i1 [[EARLY3]], label [[EXIT]], label [[CONT3:%.*]]
284+
; CHECK: cont3:
285+
; CHECK-NEXT: [[EARLY4:%.*]] = icmp eq i64 [[IV]], [[LEN4]]
286+
; CHECK-NEXT: call void @side_effect()
287+
; CHECK-NEXT: br i1 [[EARLY4]], label [[EXIT]], label [[CONT4:%.*]]
288+
; CHECK: cont4:
289+
; CHECK-NEXT: [[EARLY5:%.*]] = icmp eq i64 [[IV]], [[LEN5]]
290+
; CHECK-NEXT: call void @side_effect()
291+
; CHECK-NEXT: br i1 [[EARLY5]], label [[EXIT]], label [[CONT5:%.*]]
292+
; CHECK: cont5:
293+
; CHECK-NEXT: [[EARLY6:%.*]] = icmp eq i64 [[IV]], [[LEN6]]
294+
; CHECK-NEXT: call void @side_effect()
295+
; CHECK-NEXT: br i1 [[EARLY6]], label [[EXIT]], label [[CONT6:%.*]]
296+
; CHECK: cont6:
297+
; CHECK-NEXT: [[EARLY7:%.*]] = icmp eq i64 [[IV]], [[LEN7]]
298+
; CHECK-NEXT: call void @side_effect()
299+
; CHECK-NEXT: br i1 [[EARLY7]], label [[EXIT]], label [[CONT7:%.*]]
300+
; CHECK: cont7:
301+
; CHECK-NEXT: [[EARLY8:%.*]] = icmp eq i64 [[IV]], [[LEN8]]
302+
; CHECK-NEXT: call void @side_effect()
303+
; CHECK-NEXT: br i1 [[EARLY8]], label [[EXIT]], label [[CONT8:%.*]]
304+
; CHECK: cont8:
305+
; CHECK-NEXT: [[EARLY9:%.*]] = icmp eq i64 [[IV]], [[LEN9]]
306+
; CHECK-NEXT: call void @side_effect()
307+
; CHECK-NEXT: br i1 [[EARLY9]], label [[EXIT]], label [[CONT9:%.*]]
308+
; CHECK: cont9:
309+
; CHECK-NEXT: [[EARLY10:%.*]] = icmp eq i64 [[IV]], [[LEN10]]
310+
; CHECK-NEXT: call void @side_effect()
311+
; CHECK-NEXT: br i1 [[EARLY10]], label [[EXIT]], label [[CONT10:%.*]]
312+
; CHECK: cont10:
313+
; CHECK-NEXT: [[EARLY11:%.*]] = icmp eq i64 [[IV]], [[LEN11]]
314+
; CHECK-NEXT: call void @side_effect()
315+
; CHECK-NEXT: br i1 [[EARLY11]], label [[EXIT]], label [[CONT11:%.*]]
316+
; CHECK: cont11:
317+
; CHECK-NEXT: [[EARLY12:%.*]] = icmp eq i64 [[IV]], [[LEN12]]
318+
; CHECK-NEXT: call void @side_effect()
319+
; CHECK-NEXT: br i1 [[EARLY12]], label [[EXIT]], label [[CONT12:%.*]]
320+
; CHECK: cont12:
321+
; CHECK-NEXT: [[EARLY13:%.*]] = icmp eq i64 [[IV]], [[LEN13]]
322+
; CHECK-NEXT: call void @side_effect()
323+
; CHECK-NEXT: br i1 [[EARLY13]], label [[EXIT]], label [[CONT13:%.*]]
324+
; CHECK: cont13:
325+
; CHECK-NEXT: [[EARLY14:%.*]] = icmp eq i64 [[IV]], [[LEN14]]
326+
; CHECK-NEXT: call void @side_effect()
327+
; CHECK-NEXT: br i1 [[EARLY14]], label [[EXIT]], label [[CONT14:%.*]]
328+
; CHECK: cont14:
329+
; CHECK-NEXT: [[EARLY15:%.*]] = icmp eq i64 [[IV]], [[LEN15]]
330+
; CHECK-NEXT: call void @side_effect()
331+
; CHECK-NEXT: br i1 [[EARLY15]], label [[EXIT]], label [[CONT15:%.*]]
332+
; CHECK: cont15:
333+
; CHECK-NEXT: [[EARLY16:%.*]] = icmp eq i64 [[IV]], [[LEN16]]
334+
; CHECK-NEXT: call void @side_effect()
335+
; CHECK-NEXT: br i1 [[EARLY16]], label [[EXIT]], label [[CONT16:%.*]]
336+
; CHECK: cont16:
337+
; CHECK-NEXT: [[EARLY17:%.*]] = icmp eq i64 [[IV]], [[LEN17]]
338+
; CHECK-NEXT: call void @side_effect()
339+
; CHECK-NEXT: br i1 [[EARLY17]], label [[EXIT]], label [[CONT17:%.*]]
340+
; CHECK: cont17:
341+
; CHECK-NEXT: [[EARLY18:%.*]] = icmp eq i64 [[IV]], [[LEN18]]
342+
; CHECK-NEXT: call void @side_effect()
343+
; CHECK-NEXT: br i1 [[EARLY18]], label [[EXIT]], label [[CONT18:%.*]]
344+
; CHECK: cont18:
345+
; CHECK-NEXT: [[EARLY19:%.*]] = icmp eq i64 [[IV]], [[LEN19]]
346+
; CHECK-NEXT: call void @side_effect()
347+
; CHECK-NEXT: br i1 [[EARLY19]], label [[EXIT]], label [[CONT19:%.*]]
348+
; CHECK: cont19:
349+
; CHECK-NEXT: [[EARLY20:%.*]] = icmp eq i64 [[IV]], [[LEN20]]
350+
; CHECK-NEXT: call void @side_effect()
351+
; CHECK-NEXT: br i1 [[EARLY20]], label [[EXIT]], label [[CONT20:%.*]]
352+
; CHECK: cont20:
353+
; CHECK-NEXT: [[EARLY21:%.*]] = icmp eq i64 [[IV]], [[LEN21]]
354+
; CHECK-NEXT: call void @side_effect()
355+
; CHECK-NEXT: br i1 [[EARLY21]], label [[EXIT]], label [[CONT21:%.*]]
356+
; CHECK: cont21:
357+
; CHECK-NEXT: [[EARLY22:%.*]] = icmp eq i64 [[IV]], [[LEN22]]
358+
; CHECK-NEXT: call void @side_effect()
359+
; CHECK-NEXT: br i1 [[EARLY22]], label [[EXIT]], label [[CONT22:%.*]]
360+
; CHECK: cont22:
361+
; CHECK-NEXT: [[EARLY23:%.*]] = icmp eq i64 [[IV]], [[LEN23]]
362+
; CHECK-NEXT: call void @side_effect()
363+
; CHECK-NEXT: br i1 [[EARLY23]], label [[EXIT]], label [[CONT23:%.*]]
364+
; CHECK: cont23:
365+
; CHECK-NEXT: [[EARLY24:%.*]] = icmp eq i64 [[IV]], [[LEN24]]
366+
; CHECK-NEXT: call void @side_effect()
367+
; CHECK-NEXT: br i1 [[EARLY24]], label [[EXIT]], label [[CONT24:%.*]]
368+
; CHECK: cont24:
369+
; CHECK-NEXT: [[EARLY25:%.*]] = icmp eq i64 [[IV]], [[LEN25]]
370+
; CHECK-NEXT: call void @side_effect()
371+
; CHECK-NEXT: br i1 [[EARLY25]], label [[EXIT]], label [[CONT25:%.*]]
372+
; CHECK: cont25:
373+
; CHECK-NEXT: [[EARLY26:%.*]] = icmp eq i64 [[IV]], [[LEN26]]
374+
; CHECK-NEXT: call void @side_effect()
375+
; CHECK-NEXT: br i1 [[EARLY26]], label [[EXIT]], label [[CONT26:%.*]]
376+
; CHECK: cont26:
377+
; CHECK-NEXT: [[EARLY27:%.*]] = icmp eq i64 [[IV]], [[LEN27]]
378+
; CHECK-NEXT: call void @side_effect()
379+
; CHECK-NEXT: br i1 [[EARLY27]], label [[EXIT]], label [[CONT27:%.*]]
380+
; CHECK: cont27:
381+
; CHECK-NEXT: [[EARLY28:%.*]] = icmp eq i64 [[IV]], [[LEN28]]
382+
; CHECK-NEXT: call void @side_effect()
383+
; CHECK-NEXT: br i1 [[EARLY28]], label [[EXIT]], label [[CONT28:%.*]]
384+
; CHECK: cont28:
385+
; CHECK-NEXT: [[EARLY29:%.*]] = icmp eq i64 [[IV]], [[LEN29]]
386+
; CHECK-NEXT: call void @side_effect()
387+
; CHECK-NEXT: br i1 [[EARLY29]], label [[EXIT]], label [[CONT29:%.*]]
388+
; CHECK: cont29:
389+
; CHECK-NEXT: [[EARLY30:%.*]] = icmp eq i64 [[IV]], [[LEN30]]
390+
; CHECK-NEXT: call void @side_effect()
391+
; CHECK-NEXT: br i1 [[EARLY30]], label [[EXIT]], label [[CONT30:%.*]]
392+
; CHECK: cont30:
393+
; CHECK-NEXT: [[EARLY31:%.*]] = icmp eq i64 [[IV]], [[LEN31]]
394+
; CHECK-NEXT: call void @side_effect()
395+
; CHECK-NEXT: br i1 [[EARLY31]], label [[EXIT]], label [[CONT31:%.*]]
396+
; CHECK: cont31:
397+
; CHECK-NEXT: [[EARLY32:%.*]] = icmp eq i64 [[IV]], [[LEN32]]
398+
; CHECK-NEXT: call void @side_effect()
399+
; CHECK-NEXT: br i1 [[EARLY32]], label [[EXIT]], label [[CONT32:%.*]]
400+
; CHECK: cont32:
401+
; CHECK-NEXT: [[EARLY33:%.*]] = icmp eq i64 [[IV]], [[LEN33]]
402+
; CHECK-NEXT: call void @side_effect()
403+
; CHECK-NEXT: br i1 [[EARLY33]], label [[EXIT]], label [[CONT33:%.*]]
404+
; CHECK: cont33:
405+
; CHECK-NEXT: [[EARLY34:%.*]] = icmp eq i64 [[IV]], [[LEN34]]
406+
; CHECK-NEXT: call void @side_effect()
407+
; CHECK-NEXT: br i1 [[EARLY34]], label [[EXIT]], label [[CONT34:%.*]]
408+
; CHECK: cont34:
409+
; CHECK-NEXT: [[EARLY35:%.*]] = icmp eq i64 [[IV]], [[LEN35]]
410+
; CHECK-NEXT: call void @side_effect()
411+
; CHECK-NEXT: br i1 [[EARLY35]], label [[EXIT]], label [[CONT35:%.*]]
412+
; CHECK: cont35:
413+
; CHECK-NEXT: [[EARLY36:%.*]] = icmp eq i64 [[IV]], [[LEN36]]
414+
; CHECK-NEXT: call void @side_effect()
415+
; CHECK-NEXT: br i1 [[EARLY36]], label [[EXIT]], label [[CONT36:%.*]]
416+
; CHECK: cont36:
417+
; CHECK-NEXT: [[EARLY37:%.*]] = icmp eq i64 [[IV]], [[LEN37]]
418+
; CHECK-NEXT: call void @side_effect()
419+
; CHECK-NEXT: br i1 [[EARLY37]], label [[EXIT]], label [[CONT37:%.*]]
420+
; CHECK: cont37:
421+
; CHECK-NEXT: [[EARLY38:%.*]] = icmp eq i64 [[IV]], [[LEN38]]
422+
; CHECK-NEXT: call void @side_effect()
423+
; CHECK-NEXT: br i1 [[EARLY38]], label [[EXIT]], label [[CONT38:%.*]]
424+
; CHECK: cont38:
425+
; CHECK-NEXT: [[EARLY39:%.*]] = icmp eq i64 [[IV]], [[LEN39]]
426+
; CHECK-NEXT: call void @side_effect()
427+
; CHECK-NEXT: br i1 [[EARLY39]], label [[EXIT]], label [[CONT39:%.*]]
428+
; CHECK: cont39:
429+
; CHECK-NEXT: br label [[BACKEDGE]]
430+
; CHECK: backedge:
431+
; CHECK-NEXT: call void @side_effect()
432+
; CHECK-NEXT: [[CMP2:%.*]] = icmp ult i64 [[IV]], 999
433+
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
434+
; CHECK-NEXT: br i1 [[CMP2]], label [[LOOP]], label [[EXIT]]
435+
; CHECK: exit:
436+
; CHECK-NEXT: ret void
437+
;
224438
entry:
225439
br label %loop
226440
loop:

llvm/test/Transforms/IndVarSimplify/eliminate-sat.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ define void @uadd_sat(ptr %p) {
1313
; CHECK: loop:
1414
; CHECK-NEXT: [[I:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[I_INC:%.*]], [[LOOP]] ]
1515
; CHECK-NEXT: [[SAT1:%.*]] = add nuw nsw i32 [[I]], 1
16-
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]]
16+
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]], align 4
1717
; CHECK-NEXT: [[I_INC]] = add nuw nsw i32 [[I]], 1
1818
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I_INC]], 100
1919
; CHECK-NEXT: br i1 [[CMP]], label [[LOOP]], label [[END:%.*]]
@@ -42,7 +42,7 @@ define void @sadd_sat(ptr %p) {
4242
; CHECK: loop:
4343
; CHECK-NEXT: [[I:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[I_INC:%.*]], [[LOOP]] ]
4444
; CHECK-NEXT: [[SAT1:%.*]] = add nuw nsw i32 [[I]], 1
45-
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]]
45+
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]], align 4
4646
; CHECK-NEXT: [[I_INC]] = add nuw nsw i32 [[I]], 1
4747
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I_INC]], 100
4848
; CHECK-NEXT: br i1 [[CMP]], label [[LOOP]], label [[END:%.*]]
@@ -71,7 +71,7 @@ define void @usub_sat(ptr %p) {
7171
; CHECK: loop:
7272
; CHECK-NEXT: [[I:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ [[I_INC:%.*]], [[LOOP]] ]
7373
; CHECK-NEXT: [[SAT1:%.*]] = sub nuw nsw i32 [[I]], 1
74-
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]]
74+
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]], align 4
7575
; CHECK-NEXT: [[I_INC]] = add nuw nsw i32 [[I]], 1
7676
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I_INC]], 100
7777
; CHECK-NEXT: br i1 [[CMP]], label [[LOOP]], label [[END:%.*]]
@@ -100,7 +100,7 @@ define void @ssub_sat(ptr %p) {
100100
; CHECK: loop:
101101
; CHECK-NEXT: [[I:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[I_INC:%.*]], [[LOOP]] ]
102102
; CHECK-NEXT: [[SAT1:%.*]] = sub nsw i32 [[I]], 1
103-
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]]
103+
; CHECK-NEXT: store volatile i32 [[SAT1]], ptr [[P:%.*]], align 4
104104
; CHECK-NEXT: [[I_INC]] = add nuw nsw i32 [[I]], 1
105105
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I_INC]], 100
106106
; CHECK-NEXT: br i1 [[CMP]], label [[LOOP]], label [[END:%.*]]

0 commit comments

Comments
 (0)