llvm-6502/test/Transforms/LoopIndexSplit/PR4174.ll
Devang Patel 86b6f80a4c Check for side effects before splitting loop.
Patch by Jakub Staszak!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102928 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03 18:06:58 +00:00

24 lines
512 B
LLVM

; RUN: llvm-as < %s | opt -loop-index-split | llvm-dis | not grep clone
declare void @f()
define i32 @main() {
entry:
br label %head
head:
%i = phi i32 [0, %entry], [%i1, %tail]
call void @f()
%splitcond = icmp slt i32 %i, 2
br i1 %splitcond, label %yes, label %no
yes:
br label %tail
no:
br label %tail
tail:
%i1 = add i32 %i, 1
%exitcond = icmp slt i32 %i1, 4
br i1 %exitcond, label %head, label %exit
exit:
ret i32 0
}