diff options
| author | Michael Kruse <llvm@meinersbur.de> | 2015-10-16 15:17:26 +0000 |
|---|---|---|
| committer | Michael Kruse <llvm@meinersbur.de> | 2015-10-16 15:17:26 +0000 |
| commit | e71893d58070b08f4dcc102c1c3af52f31fe4012 (patch) | |
| tree | 25af39c7977e222e68aba9a665a8854b77cfead2 | |
| parent | aeceab770e12a1782de37a970f7644cf94e6ea3e (diff) | |
| download | bcm5719-llvm-e71893d58070b08f4dcc102c1c3af52f31fe4012.tar.gz bcm5719-llvm-e71893d58070b08f4dcc102c1c3af52f31fe4012.zip | |
Add testcase for r250517
llvm-svn: 250518
| -rw-r--r-- | polly/test/ScopInfo/exit_phi_accesses.ll | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/polly/test/ScopInfo/exit_phi_accesses.ll b/polly/test/ScopInfo/exit_phi_accesses.ll new file mode 100644 index 00000000000..e4eb7f59903 --- /dev/null +++ b/polly/test/ScopInfo/exit_phi_accesses.ll @@ -0,0 +1,44 @@ +; RUN: opt %loadPolly -analyze -polly-scops %s | FileCheck %s + +; Check that PHI nodes only create PHI access and nothing else (e.g. unnecessary +; SCALAR accesses)In this case, for a PHI in the exit node, hence there is no +; PHI ReadAccess. + +; CHECK-LABEL: Function: foo +; CHECK: Statements { +; CHECK-NEXT: Stmt_header +; CHECK-NEXT: Domain := +; CHECK-NEXT: { Stmt_header[] }; +; CHECK-NEXT: Schedule := +; CHECK-NEXT: { Stmt_header[] -> [0, 0] }; +; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1] +; CHECK-NEXT: { Stmt_header[] -> MemRef_phi[] }; +; CHECK-NEXT: Stmt_body +; CHECK-NEXT: Domain := +; CHECK-NEXT: { Stmt_body[i0] : i0 <= 100 and i0 >= 0 }; +; CHECK-NEXT: Schedule := +; CHECK-NEXT: { Stmt_body[i0] -> [1, i0] }; +; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1] +; CHECK-NEXT: { Stmt_body[i0] -> MemRef_phi[] }; +; CHECK-NEXT: } + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" + +define float @foo(float %sum, float* %A) { +entry: + br label %header + +header: + br i1 true, label %body, label %exit + +body: + %i = phi i64 [ 0, %header ], [ %next, %body ] + %scalar = fadd float 0.0, 0.0 + %next = add nuw nsw i64 %i, 1 + %cond = icmp ne i64 %i, 100 + br i1 %cond, label %body, label %exit + +exit: + %phi = phi float [%scalar, %body], [0.0, %header] + ret float %phi +} |

