; CHECK-NEXT: [[SIGNED_CMP:%.*]] = icmp ult i32 [[IV]], [[LEN]]
; CHECK-NEXT: br i1 [[SIGNED_CMP]], label [[SIGNED_PASSED:%.*]], label [[FAILED_SIGNED:%.*]]
; CHECK: signed.passed:
-; CHECK-NEXT: br i1 true, label [[BACKEDGE]], label [[FAILED_SIGNED]]
+; CHECK-NEXT: br i1 true, label [[BACKEDGE]], label [[FAILED_UNSIGNED:%.*]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i32 [[IV]], 1
; CHECK-NEXT: [[COND:%.*]] = call i1 @cond()
; CHECK-NEXT: call void @fail(i32 2)
; CHECK-NEXT: unreachable
; CHECK: done:
-; CHECK-NEXT: [[IV_LCSSA1:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
-; CHECK-NEXT: ret i32 [[IV_LCSSA1]]
+; CHECK-NEXT: [[IV_LCSSA2:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
+; CHECK-NEXT: ret i32 [[IV_LCSSA2]]
;
entry:
%len = load i32, i32* %len.ptr, !range !0
signed.passed:
%unsigned.cmp = icmp ult i32 %iv, %len
- br i1 %unsigned.cmp, label %backedge, label %failed.signed
+ br i1 %unsigned.cmp, label %backedge, label %failed.unsigned
backedge:
%iv.next = add i32 %iv, 1
; CHECK-NEXT: br i1 [[SIGNED_CMP]], label [[SIGNED_PASSED:%.*]], label [[FAILED_SIGNED:%.*]]
; CHECK: signed.passed:
; CHECK-NEXT: [[UNSIGNED_CMP:%.*]] = icmp ult i32 [[IV]], [[LEN]]
-; CHECK-NEXT: br i1 [[UNSIGNED_CMP]], label [[BACKEDGE]], label [[FAILED_SIGNED]]
+; CHECK-NEXT: br i1 [[UNSIGNED_CMP]], label [[BACKEDGE]], label [[FAILED_UNSIGNED:%.*]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add nuw i32 [[IV]], 1
; CHECK-NEXT: [[COND:%.*]] = call i1 @cond()
; CHECK-NEXT: call void @fail(i32 3)
; CHECK-NEXT: unreachable
; CHECK: done:
-; CHECK-NEXT: [[IV_LCSSA1:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
-; CHECK-NEXT: ret i32 [[IV_LCSSA1]]
+; CHECK-NEXT: [[IV_LCSSA2:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
+; CHECK-NEXT: ret i32 [[IV_LCSSA2]]
;
entry:
%len = load i32, i32* %len.ptr, !range !0
signed.passed:
%unsigned.cmp = icmp ult i32 %iv, %len
- br i1 %unsigned.cmp, label %backedge, label %failed.signed
+ br i1 %unsigned.cmp, label %backedge, label %failed.unsigned
backedge:
%iv.next = add i32 %iv, 1
; CHECK-NEXT: [[SIGNED_CMP:%.*]] = icmp ult i32 [[IV]], [[LEN]]
; CHECK-NEXT: br i1 [[SIGNED_CMP]], label [[SIGNED_PASSED:%.*]], label [[FAILED_SIGNED:%.*]]
; CHECK: signed.passed:
-; CHECK-NEXT: br i1 true, label [[BACKEDGE]], label [[FAILED_SIGNED]]
+; CHECK-NEXT: br i1 true, label [[BACKEDGE]], label [[FAILED_UNSIGNED:%.*]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add nuw i32 [[IV]], 1
; CHECK-NEXT: [[COND:%.*]] = call i1 @cond()
; CHECK-NEXT: call void @fail(i32 3)
; CHECK-NEXT: unreachable
; CHECK: done:
-; CHECK-NEXT: [[IV_LCSSA1:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
-; CHECK-NEXT: ret i32 [[IV_LCSSA1]]
+; CHECK-NEXT: [[IV_LCSSA2:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
+; CHECK-NEXT: ret i32 [[IV_LCSSA2]]
;
entry:
%len = load i32, i32* %len.ptr, !range !0
signed.passed:
%unsigned.cmp = icmp ult i32 %iv, %len
- br i1 %unsigned.cmp, label %backedge, label %failed.signed
+ br i1 %unsigned.cmp, label %backedge, label %failed.unsigned
backedge:
%iv.next = add i32 %iv, 1
; CHECK-NEXT: br i1 [[SIGNED_CMP]], label [[SIGNED_PASSED:%.*]], label [[FAILED_SIGNED:%.*]]
; CHECK: signed.passed:
; CHECK-NEXT: [[UNSIGNED_CMP:%.*]] = icmp ult i32 [[IV]], [[LEN]]
-; CHECK-NEXT: br i1 [[UNSIGNED_CMP]], label [[BACKEDGE]], label [[FAILED_SIGNED]]
+; CHECK-NEXT: br i1 [[UNSIGNED_CMP]], label [[BACKEDGE]], label [[FAILED_UNSIGNED:%.*]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add i32 [[IV]], 1
; CHECK-NEXT: [[COND:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[COND]], label [[LOOP]], label [[OUTER_LOOP_BACKEDGE]]
; CHECK: outer.loop.backedge:
; CHECK-NEXT: [[IV_NEXT_LCSSA]] = phi i32 [ [[IV_NEXT]], [[BACKEDGE]] ]
-; CHECK-NEXT: [[IV_LCSSA1:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
+; CHECK-NEXT: [[IV_LCSSA2:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
; CHECK-NEXT: [[OUTER_COND:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[OUTER_COND]], label [[OUTER_LOOP]], label [[DONE:%.*]]
; CHECK: failed.signed:
; CHECK-NEXT: call void @fail(i32 3)
; CHECK-NEXT: unreachable
; CHECK: done:
-; CHECK-NEXT: [[IV_LCSSA1_LCSSA:%.*]] = phi i32 [ [[IV_LCSSA1]], [[OUTER_LOOP_BACKEDGE]] ]
-; CHECK-NEXT: ret i32 [[IV_LCSSA1_LCSSA]]
+; CHECK-NEXT: [[IV_LCSSA2_LCSSA:%.*]] = phi i32 [ [[IV_LCSSA2]], [[OUTER_LOOP_BACKEDGE]] ]
+; CHECK-NEXT: ret i32 [[IV_LCSSA2_LCSSA]]
;
entry:
%len = load i32, i32* %len.ptr, !range !0
signed.passed:
%unsigned.cmp = icmp ult i32 %iv, %len
- br i1 %unsigned.cmp, label %backedge, label %failed.signed
+ br i1 %unsigned.cmp, label %backedge, label %failed.unsigned
backedge:
%iv.next = add i32 %iv, 1
; CHECK-NEXT: br i1 [[SIGNED_CMP]], label [[SIGNED_PASSED:%.*]], label [[FAILED_SIGNED:%.*]]
; CHECK: signed.passed:
; CHECK-NEXT: [[UNSIGNED_CMP:%.*]] = icmp ult i32 [[IV]], [[LEN]]
-; CHECK-NEXT: br i1 [[UNSIGNED_CMP]], label [[BACKEDGE]], label [[FAILED_SIGNED]]
+; CHECK-NEXT: br i1 [[UNSIGNED_CMP]], label [[BACKEDGE]], label [[FAILED_UNSIGNED:%.*]]
; CHECK: backedge:
; CHECK-NEXT: [[IV_NEXT]] = add i32 [[IV]], 1
; CHECK-NEXT: [[COND:%.*]] = call i1 @cond()
; CHECK-NEXT: br i1 [[COND]], label [[LOOP]], label [[OUTER_LOOP_SELECTION:%.*]]
; CHECK: outer.loop.selection:
; CHECK-NEXT: [[IV_NEXT_LCSSA:%.*]] = phi i32 [ [[IV_NEXT]], [[BACKEDGE]] ]
-; CHECK-NEXT: [[IV_LCSSA1:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
+; CHECK-NEXT: [[IV_LCSSA2:%.*]] = phi i32 [ [[IV]], [[BACKEDGE]] ]
; CHECK-NEXT: [[SWITCH_COND:%.*]] = call i32 @switch.cond()
; CHECK-NEXT: switch i32 [[SWITCH_COND]], label [[TAKE_SAME:%.*]] [
; CHECK-NEXT: i32 1, label [[TAKE_INCREMENT:%.*]]
; CHECK-NEXT: call void @fail(i32 3)
; CHECK-NEXT: unreachable
; CHECK: done:
-; CHECK-NEXT: [[IV_LCSSA1_LCSSA:%.*]] = phi i32 [ [[IV_LCSSA1]], [[OUTER_LOOP_BACKEDGE]] ]
-; CHECK-NEXT: ret i32 [[IV_LCSSA1_LCSSA]]
+; CHECK-NEXT: [[IV_LCSSA2_LCSSA:%.*]] = phi i32 [ [[IV_LCSSA2]], [[OUTER_LOOP_BACKEDGE]] ]
+; CHECK-NEXT: ret i32 [[IV_LCSSA2_LCSSA]]
;
entry:
%len = load i32, i32* %len.ptr, !range !0
signed.passed:
%unsigned.cmp = icmp ult i32 %iv, %len
- br i1 %unsigned.cmp, label %backedge, label %failed.signed
+ br i1 %unsigned.cmp, label %backedge, label %failed.unsigned
backedge:
%iv.next = add i32 %iv, 1