Skip to content

Commit 4de93db

Browse files
committed
[LSR] Regenerate test checks (NFC)
While there also remove some UB from the test.
1 parent 1abff08 commit 4de93db

File tree

1 file changed

+38
-14
lines changed

1 file changed

+38
-14
lines changed
Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,70 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
12
; RUN: opt -S -loop-reduce < %s | FileCheck %s
23

34
target triple = "x86_64-unknown-unknown"
45
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
56

6-
define void @incorrect_offset_scaling(i64, ptr) {
7+
define void @incorrect_offset_scaling(i1 %c, i1 %c2, i1 %c3, ptr %p, i64, ptr) {
8+
; CHECK-LABEL: define void @incorrect_offset_scaling(
9+
; CHECK-SAME: i1 [[C:%.*]], i1 [[C2:%.*]], i1 [[C3:%.*]], ptr [[P:%.*]], i64 [[TMP0:%.*]], ptr [[TMP1:%.*]]) {
10+
; CHECK-NEXT: top:
11+
; CHECK-NEXT: br label [[L:%.*]]
12+
; CHECK: L.loopexit:
13+
; CHECK-NEXT: br label [[L_BACKEDGE:%.*]]
14+
; CHECK: L:
15+
; CHECK-NEXT: br i1 [[C]], label [[L_BACKEDGE]], label [[L1_PREHEADER:%.*]]
16+
; CHECK: L.backedge:
17+
; CHECK-NEXT: br label [[L]]
18+
; CHECK: L1.preheader:
19+
; CHECK-NEXT: br label [[L1:%.*]]
20+
; CHECK: L1:
21+
; CHECK-NEXT: [[LSR_IV:%.*]] = phi i64 [ 0, [[L1_PREHEADER]] ], [ [[LSR_IV_NEXT:%.*]], [[L2:%.*]] ]
22+
; CHECK-NEXT: br label [[IDXEND_8:%.*]]
23+
; CHECK: L2:
24+
; CHECK-NEXT: [[LSR_IV_NEXT]] = add i64 [[LSR_IV]], 1
25+
; CHECK-NEXT: br i1 [[C2]], label [[L_LOOPEXIT:%.*]], label [[L1]]
26+
; CHECK: if6:
27+
; CHECK-NEXT: [[R2:%.*]] = add i64 [[TMP0]], -1
28+
; CHECK-NEXT: [[R3:%.*]] = load i64, ptr [[TMP1]], align 8
29+
; CHECK-NEXT: br label [[IB:%.*]]
30+
; CHECK: idxend.8:
31+
; CHECK-NEXT: br i1 [[C3]], label [[IF6:%.*]], label [[L2]]
32+
; CHECK: ib:
33+
; CHECK-NEXT: [[R4:%.*]] = mul i64 [[R3]], [[LSR_IV]]
34+
; CHECK-NEXT: [[R5:%.*]] = add i64 [[R2]], [[R4]]
35+
; CHECK-NEXT: [[R6:%.*]] = icmp ult i64 [[R5]], undef
36+
; CHECK-NEXT: [[R7:%.*]] = getelementptr i64, ptr [[P]], i64 [[R5]]
37+
; CHECK-NEXT: store i64 1, ptr [[R7]], align 8
38+
; CHECK-NEXT: br label [[L_BACKEDGE]]
39+
;
740
top:
841
br label %L
942

1043
L: ; preds = %idxend.10, %idxend, %L2, %top
11-
br i1 undef, label %L, label %L1
44+
br i1 %c, label %L, label %L1
1245

1346
L1: ; preds = %L1.preheader, %L2
1447
%r13 = phi i64 [ %r1, %L2 ], [ 1, %L ]
15-
; CHECK: %lsr.iv = phi i64 [ 0, %L{{[^ ]+}} ], [ %lsr.iv.next, %L2 ]
16-
; CHECK-NOT: %lsr.iv = phi i64 [ -1, %L{{[^ ]+}} ], [ %lsr.iv.next, %L2 ]
17-
; CHECK: br
1848
%r0 = add i64 %r13, -1
1949
br label %idxend.8
2050

2151
L2: ; preds = %idxend.8
2252
%r1 = add i64 %r13, 1
23-
br i1 undef, label %L, label %L1
53+
br i1 %c2, label %L, label %L1
2454

2555
if6: ; preds = %idxend.8
2656
%r2 = add i64 %0, -1
2757
%r3 = load i64, ptr %1, align 8
28-
; CHECK: %r2 = add i64 %0, -1
29-
; CHECK: %r3 = load i64
3058
br label %ib
3159

3260
idxend.8: ; preds = %L1
33-
br i1 undef, label %if6, label %L2
61+
br i1 %c3, label %if6, label %L2
3462

3563
ib: ; preds = %if6
3664
%r4 = mul i64 %r3, %r0
3765
%r5 = add i64 %r2, %r4
3866
%r6 = icmp ult i64 %r5, undef
39-
; CHECK: %r4 = mul i64 %r3, %lsr.iv
40-
; CHECK: %r5 = add i64 %r2, %r4
41-
; CHECK: %r6 = icmp ult i64 %r5, undef
42-
; CHECK: %r7 = getelementptr i64, ptr undef, i64 %r5
43-
%r7 = getelementptr i64, ptr undef, i64 %r5
67+
%r7 = getelementptr i64, ptr %p, i64 %r5
4468
store i64 1, ptr %r7, align 8
4569
br label %L
4670
}

0 commit comments

Comments
 (0)