define void @overflow1(i64 %a) {
; CHECK-LABEL: @overflow1(
; CHECK-NEXT: bb:
+; CHECK-NEXT: [[TMP0:%.*]] = add i64 [[A:%.*]], -1
; CHECK-NEXT: br label [[BB1:%.*]]
; CHECK: bb1:
-; CHECK-NEXT: [[TMP:%.*]] = phi i64 [ [[A:%.*]], [[BB:%.*]] ], [ [[TMP6:%.*]], [[BB1]] ]
-; CHECK-NEXT: [[TMP0:%.*]] = add i64 [[TMP]], -9223372036854775808
-; CHECK-NEXT: [[TMP4:%.*]] = icmp ne i64 [[TMP0]], 0
+; CHECK-NEXT: [[LSR_IV:%.*]] = phi i64 [ [[LSR_IV_NEXT:%.*]], [[BB1]] ], [ [[TMP0]], [[BB:%.*]] ]
+; CHECK-NEXT: [[TMP1:%.*]] = add i64 [[LSR_IV]], -9223372036854775808
+; CHECK-NEXT: [[TMP4:%.*]] = icmp ne i64 [[TMP1]], -1
; CHECK-NEXT: [[TMP5:%.*]] = and i1 [[TMP4]], true
-; CHECK-NEXT: [[TMP6]] = add i64 [[TMP]], 1
+; CHECK-NEXT: [[LSR_IV_NEXT]] = add i64 [[LSR_IV]], 1
; CHECK-NEXT: br i1 [[TMP5]], label [[BB1]], label [[BB7:%.*]]
; CHECK: bb7:
-; CHECK-NEXT: [[TMP1:%.*]] = add i64 [[TMP6]], -1
-; CHECK-NEXT: [[TMP9:%.*]] = and i64 [[TMP1]], 1
+; CHECK-NEXT: [[TMP9:%.*]] = and i64 [[LSR_IV_NEXT]], 1
; CHECK-NEXT: [[TMP10:%.*]] = icmp eq i64 [[TMP9]], 0
; CHECK-NEXT: unreachable
;