Compiler projects using llvm
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -indvars -verify-scev < %s | FileCheck %s

define void @test() {
; CHECK-LABEL: @test(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    br label [[FOR_COND:%.*]]
; CHECK:       for.cond:
; CHECK-NEXT:    br i1 false, label [[FOR_COND92_PREHEADER:%.*]], label [[FOR_END106:%.*]]
; CHECK:       for.cond92.preheader:
; CHECK-NEXT:    br label [[FOR_COND92:%.*]]
; CHECK:       for.cond92:
; CHECK-NEXT:    br i1 false, label [[FOR_BODY94:%.*]], label [[FOR_END:%.*]]
; CHECK:       for.body94:
; CHECK-NEXT:    br label [[FOR_COND92]]
; CHECK:       for.end:
; CHECK-NEXT:    br label [[FOR_COND]]
; CHECK:       for.end106:
; CHECK-NEXT:    ret void
;
entry:
  br label %for.cond

for.cond:                                         ; preds = %for.end, %entry
  %0 = phi i32 [ %inc105, %for.end ], [ 0, %entry ]
  %cmp = icmp sge i32 %0, 1
  br i1 %cmp, label %for.cond92, label %for.end106

for.cond92:                                       ; preds = %for.body94, %for.cond
  %1 = phi i16 [ %inc, %for.body94 ], [ 0, %for.cond ]
  %cmp93 = icmp slt i16 %1, 1
  br i1 %cmp93, label %for.body94, label %for.end

for.body94:                                       ; preds = %for.cond92
  %inc = add nsw i16 %1, 1
  br label %for.cond92

for.end:                                          ; preds = %for.cond92
  %inc105 = add nsw i32 %0, 1
  br label %for.cond

for.end106:                                       ; preds = %for.cond
  ret void
}