1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/test/Transforms/LoopSimplifyCFG/merge-header.ll
Justin Bogner b41d2978a0 LPM: Drop require<loops> from these tests, it's redundant. NFC
The LoopPassManager needs to calculate the loops analysis in order to
iterate over the loops at all. Requiring it is redundant and just adds
noise to the RUN lines here.

llvm-svn: 269097
2016-05-10 18:28:10 +00:00

36 lines
1.0 KiB
LLVM

; RUN: opt -S -loop-simplifycfg < %s | FileCheck %s
; RUN: opt -S -passes='require<domtree>,loop(simplify-cfg)' < %s | FileCheck %s
; CHECK-LABEL: foo
; CHECK: entry:
; CHECK-NEXT: br label %[[LOOP:[a-z]+]]
; CHECK: [[LOOP]]:
; CHECK-NEXT: phi
; CHECK-NOT: br label
; CHECK: br i1
define i32 @foo(i32* %P, i64* %Q) {
entry:
br label %outer
outer: ; preds = %outer.latch2, %entry
%y.2 = phi i32 [ 0, %entry ], [ %y.inc2, %outer.latch2 ]
br label %inner
inner: ; preds = %outer
store i32 0, i32* %P
store i32 1, i32* %P
store i32 2, i32* %P
%y.inc2 = add nsw i32 %y.2, 1
%exitcond.outer = icmp eq i32 %y.inc2, 3
store i32 %y.2, i32* %P
br i1 %exitcond.outer, label %exit, label %outer.latch2
outer.latch2: ; preds = %inner
%t = sext i32 %y.inc2 to i64
store i64 %t, i64* %Q
br label %outer
exit: ; preds = %inner
ret i32 0
}