Skip to content

Commit b271f0a

Browse files
committed
!fixup add test showing regression.
1 parent c56db5f commit b271f0a

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

llvm/test/Transforms/IndVarSimplify/add-nsw-zext-fold.ll

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,15 @@ define void @add_nsw_zext_fold_results_in_sext(i64 %len) {
1212
; CHECK-NEXT: [[LEN_TRUNC:%.*]] = trunc i64 [[LEN]] to i32
1313
; CHECK-NEXT: [[LZ:%.*]] = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 [[LEN_TRUNC]], i1 false)
1414
; CHECK-NEXT: [[SUB_I:%.*]] = lshr i32 [[LZ]], 3
15-
; CHECK-NEXT: [[ADD_I:%.*]] = sub i32 5, [[SUB_I]]
1615
; CHECK-NEXT: [[PRECOND:%.*]] = icmp eq i32 [[SUB_I]], 5
1716
; CHECK-NEXT: br i1 [[PRECOND]], label %[[EXIT:.*]], label %[[LOOP_PREHEADER:.*]]
1817
; CHECK: [[LOOP_PREHEADER]]:
19-
; CHECK-NEXT: [[TMP1:%.*]] = zext nneg i32 [[ADD_I]] to i64
18+
; CHECK-NEXT: [[TMP3:%.*]] = sub i32 0, [[SUB_I]]
19+
; CHECK-NEXT: [[TMP1:%.*]] = sext i32 [[TMP3]] to i64
20+
; CHECK-NEXT: [[TMP2:%.*]] = add nsw i64 [[TMP1]], 5
2021
; CHECK-NEXT: br label %[[LOOP:.*]]
2122
; CHECK: [[LOOP]]:
22-
; CHECK-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[TMP1]], %[[LOOP_PREHEADER]] ], [ [[INDVARS_IV_NEXT:%.*]], %[[LOOP]] ]
23+
; CHECK-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[TMP2]], %[[LOOP_PREHEADER]] ], [ [[INDVARS_IV_NEXT:%.*]], %[[LOOP]] ]
2324
; CHECK-NEXT: [[IV:%.*]] = trunc nuw i64 [[INDVARS_IV]] to i32
2425
; CHECK-NEXT: [[IV_NEXT:%.*]] = add i32 [[IV]], 1
2526
; CHECK-NEXT: [[SH_PROM:%.*]] = zext nneg i32 [[IV_NEXT]] to i64
@@ -65,9 +66,9 @@ define void @add_nsw_zext_fold_results_in_sext_known_positive(i32 %mask, ptr %sr
6566
; CHECK-NEXT: [[PRECOND:%.*]] = icmp slt i32 [[ADD]], 0
6667
; CHECK-NEXT: br i1 [[PRECOND]], label %[[EXIT:.*]], label %[[PH:.*]]
6768
; CHECK: [[PH]]:
68-
; CHECK-NEXT: [[TMP0:%.*]] = sub i32 78, [[SPEC_SELECT]]
69-
; CHECK-NEXT: [[TMP1:%.*]] = zext nneg i32 [[TMP0]] to i64
70-
; CHECK-NEXT: [[TMP2:%.*]] = add nuw nsw i64 [[TMP1]], 1
69+
; CHECK-NEXT: [[TMP0:%.*]] = sub i32 0, [[SPEC_SELECT]]
70+
; CHECK-NEXT: [[TMP1:%.*]] = sext i32 [[TMP0]] to i64
71+
; CHECK-NEXT: [[TMP2:%.*]] = add nsw i64 [[TMP1]], 79
7172
; CHECK-NEXT: br label %[[LOOP:.*]]
7273
; CHECK: [[LOOP]]:
7374
; CHECK-NEXT: [[GEP:%.*]] = getelementptr i32, ptr [[SRC]], i64 [[TMP2]]

llvm/test/Transforms/LoopIdiom/add-nsw-zext-fold.ll

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ define void @fold_add_zext_to_sext(ptr %dst, i1 %start) {
99
; CHECK-NEXT: [[TMP0:%.*]] = zext i1 [[START]] to i64
1010
; CHECK-NEXT: [[TMP1:%.*]] = shl nuw nsw i64 [[TMP0]], 2
1111
; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP1]]
12-
; CHECK-NEXT: [[TMP2:%.*]] = sub i32 25, [[START_EXT]]
13-
; CHECK-NEXT: [[TMP3:%.*]] = zext nneg i32 [[TMP2]] to i64
14-
; CHECK-NEXT: [[TMP4:%.*]] = shl nuw nsw i64 [[TMP3]], 2
12+
; CHECK-NEXT: [[TMP2:%.*]] = sub i32 0, [[START_EXT]]
13+
; CHECK-NEXT: [[TMP3:%.*]] = sext i32 [[TMP2]] to i64
14+
; CHECK-NEXT: [[TMP5:%.*]] = shl nsw i64 [[TMP3]], 2
15+
; CHECK-NEXT: [[TMP4:%.*]] = add nsw i64 [[TMP5]], 100
1516
; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr align 4 [[SCEVGEP]], i8 0, i64 [[TMP4]], i1 false)
1617
; CHECK-NEXT: br label %[[LOOP:.*]]
1718
; CHECK: [[LOOP]]:

0 commit comments

Comments
 (0)