These flags are now always passed to all tests and need to be disabled if not needed. Disabling these flags, rather than passing them to almost all tests, significantly simplfies our RUN: lines. llvm-svn: 249422
65 lines
2.2 KiB
LLVM
65 lines
2.2 KiB
LLVM
; RUN: opt %loadPolly -polly-detect -analyze -S < %s | FileCheck %s
|
|
;
|
|
; Region with an exit node that has a PHI node multiple incoming edges from
|
|
; inside the region. Motivation for supporting such cases in Polly.
|
|
;
|
|
; float test(long n, float A[static const restrict n]) {
|
|
; float sum = 0;
|
|
; for (long i = 0; i < n; i += 1)
|
|
; sum += A[i];
|
|
; for (long i = 0; i < n; i += 1)
|
|
; sum += A[i];
|
|
; return sum;
|
|
; }
|
|
;
|
|
;
|
|
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
|
|
define float @test(i64 %n, float* noalias nonnull %A) {
|
|
entry:
|
|
br label %for.cond
|
|
|
|
for.cond: ; preds = %for.inc, %entry
|
|
%sum.0 = phi float [ 0.000000e+00, %entry ], [ %add, %for.inc ]
|
|
%i.0 = phi i64 [ 0, %entry ], [ %add1, %for.inc ]
|
|
%cmp = icmp slt i64 %i.0, %n
|
|
br i1 %cmp, label %for.body, label %for.end
|
|
|
|
for.body: ; preds = %for.cond
|
|
br label %for.inc
|
|
|
|
for.inc: ; preds = %for.body
|
|
%arrayidx = getelementptr inbounds float, float* %A, i64 %i.0
|
|
%tmp = load float, float* %arrayidx, align 4
|
|
%add = fadd float %sum.0, %tmp
|
|
%add1 = add nuw nsw i64 %i.0, 1
|
|
br label %for.cond
|
|
|
|
for.end: ; preds = %for.cond
|
|
%sum.0.lcssa = phi float [ %sum.0, %for.cond ]
|
|
br label %for.cond.3
|
|
|
|
for.cond.3: ; preds = %for.inc.8, %for.end
|
|
%sum.1 = phi float [ %sum.0.lcssa, %for.end ], [ %add7, %for.inc.8 ]
|
|
%i2.0 = phi i64 [ 0, %for.end ], [ %add9, %for.inc.8 ]
|
|
%cmp4 = icmp slt i64 %i2.0, %n
|
|
br i1 %cmp4, label %for.body.5, label %for.end.10
|
|
|
|
for.body.5: ; preds = %for.cond.3
|
|
br label %for.inc.8
|
|
|
|
for.inc.8: ; preds = %for.body.5
|
|
%arrayidx6 = getelementptr inbounds float, float* %A, i64 %i2.0
|
|
%tmp1 = load float, float* %arrayidx6, align 4
|
|
%add7 = fadd float %sum.1, %tmp1
|
|
%add9 = add nuw nsw i64 %i2.0, 1
|
|
br label %for.cond.3
|
|
|
|
for.end.10: ; preds = %for.cond.3
|
|
%sum.1.lcssa = phi float [ %sum.1, %for.cond.3 ]
|
|
ret float %sum.1.lcssa
|
|
}
|
|
|
|
; CHECK: Valid Region for Scop: for.cond => for.end.10
|