; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ; RUN: opt -S -passes=indvars < %s | FileCheck %s define i32 @widget() { ; CHECK-LABEL: define i32 @widget() { ; CHECK-NEXT: [[B:.*:]] ; CHECK-NEXT: br label %[[B1:.*]] ; CHECK: [[B1]]: ; CHECK-NEXT: br i1 true, label %[[B3:.*]], label %[[B8:.*]] ; CHECK: [[B3]]: ; CHECK-NEXT: br i1 true, label %[[B7:.*]], label %[[B5:.*]] ; CHECK: [[B5]]: ; CHECK-NEXT: br label %[[B1]] ; CHECK: [[B7]]: ; CHECK-NEXT: ret i32 5 ; CHECK: [[B8]]: ; CHECK-NEXT: ret i32 7 ; b: br label %b1 b1: %phi = phi i32 [ 0, %b ], [ %udiv6, %b5 ] %phi2 = phi i32 [ 1, %b ], [ %add, %b5 ] %icmp = icmp eq i32 %phi, 0 br i1 %icmp, label %b3, label %b8 b3: %udiv = udiv i32 10, %phi2 %urem = urem i32 %udiv, 10 %icmp4 = icmp eq i32 %urem, 0 br i1 %icmp4, label %b7, label %b5 b5: %udiv6 = udiv i32 %phi2, 0 %add = add i32 %phi2, 1 br label %b1 b7: ret i32 5 b8: ret i32 7 }