1; RUN: opt -S -loop-simplifycfg < %s | FileCheck %s 2; RUN: opt -S -passes='require<domtree>,loop(loop-simplifycfg)' < %s | FileCheck %s 3; RUN: opt -S -loop-simplifycfg -enable-mssa-loop-dependency=true -verify-memoryssa < %s | FileCheck %s 4 5; CHECK-LABEL: foo 6; CHECK: entry: 7; CHECK-NEXT: br label %[[LOOP:[a-z]+]] 8; CHECK: [[LOOP]]: 9; CHECK-NEXT: phi 10; CHECK-NOT: br label 11; CHECK: br i1 12define i32 @foo(i32* %P, i64* %Q) { 13entry: 14 br label %outer 15 16outer: ; preds = %outer.latch2, %entry 17 %y.2 = phi i32 [ 0, %entry ], [ %y.inc2, %outer.latch2 ] 18 br label %inner 19 20inner: ; preds = %outer 21 store i32 0, i32* %P 22 store i32 1, i32* %P 23 store i32 2, i32* %P 24 %y.inc2 = add nsw i32 %y.2, 1 25 %exitcond.outer = icmp eq i32 %y.inc2, 3 26 store i32 %y.2, i32* %P 27 br i1 %exitcond.outer, label %exit, label %outer.latch2 28 29outer.latch2: ; preds = %inner 30 %t = sext i32 %y.inc2 to i64 31 store i64 %t, i64* %Q 32 br label %outer 33 34exit: ; preds = %inner 35 ret i32 0 36} 37