@@ -599,26 +599,15 @@ define void @expensive_expand_unknown_tc2(ptr %a, i32 %offset, i32 %n, i32 %step
599
599
; CHECK-NEXT: entry:
600
600
; CHECK-NEXT: [[OFFSET_NONZERO:%.*]] = or i32 [[OFFSET:%.*]], 1
601
601
; CHECK-NEXT: [[UGLYGEP:%.*]] = getelementptr i8, ptr [[A:%.*]], i64 84
602
- ; CHECK-NEXT: [[SMAX:%.*]] = call i32 @llvm.smax.i32(i32 [[STEP:%.*]], i32 [[N:%.*]])
603
- ; CHECK-NEXT: [[TMP0:%.*]] = sub i32 [[SMAX]], [[STEP]]
604
- ; CHECK-NEXT: [[UMIN:%.*]] = call i32 @llvm.umin.i32(i32 [[TMP0]], i32 1)
605
- ; CHECK-NEXT: [[TMP1:%.*]] = sub i32 [[TMP0]], [[UMIN]]
606
- ; CHECK-NEXT: [[UMAX:%.*]] = call i32 @llvm.umax.i32(i32 [[STEP]], i32 1)
607
- ; CHECK-NEXT: [[TMP2:%.*]] = udiv i32 [[TMP1]], [[UMAX]]
608
- ; CHECK-NEXT: [[TMP3:%.*]] = add i32 [[UMIN]], [[TMP2]]
609
- ; CHECK-NEXT: [[TMP4:%.*]] = zext i32 [[TMP3]] to i64
610
- ; CHECK-NEXT: [[TMP5:%.*]] = add nuw nsw i64 [[TMP4]], 1
611
- ; CHECK-NEXT: [[TMP6:%.*]] = sext i32 [[OFFSET_NONZERO]] to i64
612
- ; CHECK-NEXT: [[TMP7:%.*]] = mul i64 [[TMP5]], [[TMP6]]
613
- ; CHECK-NEXT: [[TMP8:%.*]] = add nsw i64 [[TMP7]], 84
614
- ; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[A]], i64 [[TMP8]]
615
602
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
616
603
; CHECK: for.body:
617
604
; CHECK-NEXT: [[LSR_IV1:%.*]] = phi ptr [ [[UGLYGEP2:%.*]], [[FOR_BODY]] ], [ [[UGLYGEP]], [[ENTRY:%.*]] ]
605
+ ; CHECK-NEXT: [[LSR_IV:%.*]] = phi i32 [ [[LSR_IV_NEXT:%.*]], [[FOR_BODY]] ], [ 0, [[ENTRY]] ]
618
606
; CHECK-NEXT: store i32 1, ptr [[LSR_IV1]], align 4
607
+ ; CHECK-NEXT: [[LSR_IV_NEXT]] = add nsw i32 [[LSR_IV]], [[STEP:%.*]]
619
608
; CHECK-NEXT: [[UGLYGEP2]] = getelementptr i8, ptr [[LSR_IV1]], i32 [[OFFSET_NONZERO]]
620
- ; CHECK-NEXT: [[LSR_FOLD_TERM_COND_REPLACED_TERM_COND :%.*]] = icmp eq ptr [[UGLYGEP2 ]], [[SCEVGEP ]]
621
- ; CHECK-NEXT: br i1 [[LSR_FOLD_TERM_COND_REPLACED_TERM_COND ]], label [[FOR_END:%.*]], label [[FOR_BODY]]
609
+ ; CHECK-NEXT: [[EXITCOND_NOT :%.*]] = icmp sge i32 [[LSR_IV_NEXT ]], [[N:%.* ]]
610
+ ; CHECK-NEXT: br i1 [[EXITCOND_NOT ]], label [[FOR_END:%.*]], label [[FOR_BODY]]
622
611
; CHECK: for.end:
623
612
; CHECK-NEXT: ret void
624
613
;
0 commit comments