Files
clang-p2996/polly/test/ScopDetect/simple_loop_non_single_entry.ll
Johannes Doerfert a2a74f09fc Do not enforce lcssa
At some point we enforced lcssa for the loop surrounding the entry block.
  This is not only questionable as it does not check any other loop but also
  not needed any more.

llvm-svn: 253789
2015-11-21 17:00:02 +00:00

45 lines
962 B
LLVM

; RUN: opt %loadPolly -polly-detect -analyze < %s | FileCheck %s
; void f(long A[], long N) {
; long i;
;
; if (true)
; goto loop;
; else
; goto loop;
;
; loop:
; for (i = 0; i < N; ++i)
; A[i] = i;
; }
; We will detect this scop even if the loop is not in lcssa form
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
define void @f(i64* %A, i64 %N) nounwind {
entry:
fence seq_cst
br i1 true, label %then, label %else
then:
br label %for.i
else:
br label %for.i
for.i:
%indvar = phi i64 [ 0, %then ], [ 0, %else], [ %indvar.next, %for.i ]
%scevgep = getelementptr i64, i64* %A, i64 %indvar
store i64 %indvar, i64* %scevgep
%indvar.next = add nsw i64 %indvar, 1
%exitcond = icmp eq i64 %indvar.next, %N
br i1 %exitcond, label %return, label %for.i
return:
fence seq_cst
ret void
}
; CHECK: Valid Region for Scop