Index: llvm/test/Transforms/LoopStrengthReduce/lsr-term-fold.ll =================================================================== --- llvm/test/Transforms/LoopStrengthReduce/lsr-term-fold.ll +++ llvm/test/Transforms/LoopStrengthReduce/lsr-term-fold.ll @@ -178,26 +178,26 @@ define void @IcmpSle(ptr %a) { ; CHECK-LABEL: @IcmpSle( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[START:%.*]] = getelementptr i8, ptr %a, i64 84 -; CHECK-NEXT: [[END:%.*]] = getelementptr i8, ptr %a, i64 1600 -; CHECK-NEXT: br label [[FOR_BODY:%.*]] +; CHECK-NEXT: [[START:%.*]] = getelementptr i8, ptr %a, i32 84 +; CHECK-NEXT: [[END:%.*]] = getelementptr i8, ptr %a, i32 1600 +; CHECK-NEXT: br label %[[FOR_BODY:.*]] ; CHECK: [[FOR_BODY]]: -; CHECK-NEXT: [[LSR_IV:%.*]] = phi ptr [ [[LSR_IV_NEXT:%.*]], [[FOR_BODY]] ], [ [[START]], %entry ] -; CHECK-NEXT: [[STORE:%.*]] = store i32 1, ptr %[[LSR_IV]], align 4 -; CHECK-NEXT: [[LSR_IV_NEXT]] = getelementptr i8, ptr [[LSR_IV]], i64 4 +; CHECK-NEXT: [[LSR_IV:%.*]] = phi ptr [ [[LSR_IV_NEXT:%.*]], %[[FOR_BODY]] ], [ [[START]], %entry ] +; CHECK-NEXT: store i32 1, ptr [[LSR_IV]], align 4 +; CHECK-NEXT: [[LSR_IV_NEXT]] = getelementptr i8, ptr [[LSR_IV]], i32 4 ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[LSR_IV_NEXT]], [[END]] -; CHECK-NEXT: br i1 [[CMP]], label [[BR_END:%.*]], label [[FOR_BODY]] +; CHECK-NEXT: br i1 [[CMP]], label [[BR_END:%.*]], label %[[FOR_BODY]] entry: - %uglygep = getelementptr i8, ptr %a, i64 84 + %uglygep = getelementptr i8, ptr %a, i32 84 br label %for.body for.body: ; preds = %for.body, %entry %lsr.iv1 = phi ptr [ %uglygep2, %for.body ], [ %uglygep, %entry ] - %lsr.iv = phi i64 [ %lsr.iv.next, %for.body ], [ 379, %entry ] + %lsr.iv = phi i32 [ %lsr.iv.next, %for.body ], [ 379, %entry ] store i32 1, ptr %lsr.iv1, align 4 - %lsr.iv.next = add nsw i64 %lsr.iv, -1 - %uglygep2 = getelementptr i8, ptr %lsr.iv1, i64 4 - %exitcond.not = icmp sle i64 %lsr.iv.next, 0 + %lsr.iv.next = add nsw i32 %lsr.iv, -1 + %uglygep2 = getelementptr i8, ptr %lsr.iv1, i32 4 + %exitcond.not = icmp sle i32 %lsr.iv.next, 0 br i1 %exitcond.not, label %for.end, label %for.body for.end: ; preds = %for.body @@ -208,26 +208,26 @@ define void @IcmpSlt(ptr %a) { ; CHECK-LABEL: @IcmpSlt( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[START:%.*]] = getelementptr i8, ptr %a, i64 84 -; CHECK-NEXT: [[END:%.*]] = getelementptr i8, ptr %a, i64 1604 -; CHECK-NEXT: br label [[FOR_BODY:%.*]] +; CHECK-NEXT: [[START:%.*]] = getelementptr i8, ptr %a, i32 84 +; CHECK-NEXT: [[END:%.*]] = getelementptr i8, ptr %a, i32 1604 +; CHECK-NEXT: br label %[[FOR_BODY:.*]] ; CHECK: [[FOR_BODY]]: -; CHECK-NEXT: [[LSR_IV:%.*]] = phi ptr [ [[LSR_IV_NEXT:%.*]], [[FOR_BODY]] ], [ [[START]], %entry ] -; CHECK-NEXT: [[STORE:%.*]] = store i32 1, ptr %[[LSR_IV]], align 4 -; CHECK-NEXT: [[LSR_IV_NEXT]] = getelementptr i8, ptr [[LSR_IV]], i64 4 +; CHECK-NEXT: [[LSR_IV:%.*]] = phi ptr [ [[LSR_IV_NEXT:%.*]], %[[FOR_BODY]] ], [ [[START]], %entry ] +; CHECK-NEXT: store i32 1, ptr [[LSR_IV]], align 4 +; CHECK-NEXT: [[LSR_IV_NEXT]] = getelementptr i8, ptr [[LSR_IV]], i32 4 ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[LSR_IV_NEXT]], [[END]] -; CHECK-NEXT: br i1 [[CMP]], label [[BR_END:%.*]], label [[FOR_BODY]] +; CHECK-NEXT: br i1 [[CMP]], label [[BR_END:%.*]], label %[[FOR_BODY]] entry: - %uglygep = getelementptr i8, ptr %a, i64 84 + %uglygep = getelementptr i8, ptr %a, i32 84 br label %for.body for.body: ; preds = %for.body, %entry %lsr.iv1 = phi ptr [ %uglygep2, %for.body ], [ %uglygep, %entry ] - %lsr.iv = phi i64 [ %lsr.iv.next, %for.body ], [ 379, %entry ] + %lsr.iv = phi i32 [ %lsr.iv.next, %for.body ], [ 379, %entry ] store i32 1, ptr %lsr.iv1, align 4 - %lsr.iv.next = add nsw i64 %lsr.iv, -1 - %uglygep2 = getelementptr i8, ptr %lsr.iv1, i64 4 - %exitcond.not = icmp slt i64 %lsr.iv.next, 0 + %lsr.iv.next = add nsw i32 %lsr.iv, -1 + %uglygep2 = getelementptr i8, ptr %lsr.iv1, i32 4 + %exitcond.not = icmp slt i32 %lsr.iv.next, 0 br i1 %exitcond.not, label %for.end, label %for.body for.end: ; preds = %for.body