36 lines · plain
1; RUN: opt -S -passes='require<domtree>,loop(loop-simplifycfg)' < %s | FileCheck %s2; RUN: opt -S -passes=loop-simplifycfg -verify-memoryssa < %s | FileCheck %s3 4; CHECK-LABEL: foo5; CHECK: entry:6; CHECK-NEXT: br label %[[LOOP:[a-z]+]]7; CHECK: [[LOOP]]:8; CHECK-NEXT: phi9; CHECK-NOT: br label10; CHECK: br i111define i32 @foo(ptr %P, ptr %Q) {12entry:13 br label %outer14 15outer: ; preds = %outer.latch2, %entry16 %y.2 = phi i32 [ 0, %entry ], [ %y.inc2, %outer.latch2 ]17 br label %inner18 19inner: ; preds = %outer20 store i32 0, ptr %P21 store i32 1, ptr %P22 store i32 2, ptr %P23 %y.inc2 = add nsw i32 %y.2, 124 %exitcond.outer = icmp eq i32 %y.inc2, 325 store i32 %y.2, ptr %P26 br i1 %exitcond.outer, label %exit, label %outer.latch227 28outer.latch2: ; preds = %inner29 %t = sext i32 %y.inc2 to i6430 store i64 %t, ptr %Q31 br label %outer32 33exit: ; preds = %inner34 ret i32 035}36