[polly] r246543 - ScopInfo: Add test case for two loops following right after each other

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 1 04:33:14 PDT 2015


Author: grosser
Date: Tue Sep  1 06:33:13 2015
New Revision: 246543

URL: http://llvm.org/viewvc/llvm-project?rev=246543&view=rev
Log:
ScopInfo: Add test case for two loops following right after each other

This case probably does not happen for LLVM generated code that is in loop
simplify form, but Polly does support such kind of loops. This commit ensures we
have test coverage as well.

Added:
    polly/trunk/test/ScopInfo/two-loops-right-after-each-other.ll

Added: polly/trunk/test/ScopInfo/two-loops-right-after-each-other.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/two-loops-right-after-each-other.ll?rev=246543&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/two-loops-right-after-each-other.ll (added)
+++ polly/trunk/test/ScopInfo/two-loops-right-after-each-other.ll Tue Sep  1 06:33:13 2015
@@ -0,0 +1,42 @@
+; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -analyze \
+; RUN: < %s | FileCheck %s
+
+; CHECK: Stmt_loop_1
+; CHECK:    Domain :=
+; CHECK:      [N] -> { Stmt_loop_1[i0] : i0 >= 0 and i0 <= 101 and N <= 100 };
+; CHECK: Stmt_loop_2
+; CHECK:    Domain :=
+; CHECK:      [N] -> { Stmt_loop_2[i0] : i0 >= 0 and i0 <= 301 and N <= 100 };
+
+define void @foo(float* %A, i64 %N) {
+entry:
+  br label %branch
+
+branch:
+  %cond = icmp sle i64 %N, 100
+  br i1 %cond, label %loop.1, label %merge
+
+loop.1:
+  %indvar.1 = phi i64 [0, %branch], [%indvar.next.1, %loop.1]
+  %indvar.next.1 = add i64 %indvar.1, 1
+  %val.1 = load float, float* %A
+  %sum.1 = fadd float %val.1, 1.0
+  store float %sum.1, float* %A
+  %cond.1 = icmp sle i64 %indvar.1, 100
+  br i1 %cond.1, label %loop.1, label %loop.2
+
+loop.2:
+  %indvar.2 = phi i64 [0, %loop.1], [%indvar.next.2, %loop.2]
+  %indvar.next.2 = add i64 %indvar.2, 1
+  %val.2 = load float, float* %A
+  %sum.2 = fadd float %val.2, 1.0
+  store float %sum.2, float* %A
+  %cond.2 = icmp sle i64 %indvar.2, 300
+  br i1 %cond.2, label %loop.2, label %merge
+
+merge:
+  br label %exit
+
+exit:
+  ret void
+}




More information about the llvm-commits mailing list