aboutsummaryrefslogtreecommitdiff
path: root/polly/test
diff options
context:
space:
mode:
Diffstat (limited to 'polly/test')
-rw-r--r--polly/test/ScheduleOptimizer/prevectorization_islbound.ll37
1 files changed, 37 insertions, 0 deletions
diff --git a/polly/test/ScheduleOptimizer/prevectorization_islbound.ll b/polly/test/ScheduleOptimizer/prevectorization_islbound.ll
new file mode 100644
index 0000000..0bc3c2c
--- /dev/null
+++ b/polly/test/ScheduleOptimizer/prevectorization_islbound.ll
@@ -0,0 +1,37 @@
+; RUN: opt %loadNPMPolly -S -polly-vectorizer=stripmine -passes=polly-opt-isl -polly-debug -disable-output < %s 2>&1 | FileCheck %s
+; REQUIRES: asserts
+
+define void @ham(ptr %arg, ptr %arg1, i32 %arg2, i32 %arg3, ptr %arg4, i32 %arg5, i32 %arg6) {
+bb:
+ %getelementptr = getelementptr [7 x float], ptr null, i32 0, i32 %arg3
+ br label %bb7
+
+bb7: ; preds = %bb11, %bb
+ %phi = phi i32 [ 0, %bb ], [ %add16, %bb11 ]
+ br label %bb8
+
+bb8: ; preds = %bb8, %bb7
+ %phi9 = phi i32 [ 0, %bb7 ], [ %add, %bb8 ]
+ %getelementptr10 = getelementptr [7 x float], ptr null, i32 0, i32 %phi9
+ store float 0.000000e+00, ptr %getelementptr10, align 4
+ %add = add i32 %phi9, 1
+ %icmp = icmp eq i32 %phi9, 0
+ br i1 %icmp, label %bb8, label %bb11
+
+bb11: ; preds = %bb8
+ %load = load float, ptr %getelementptr, align 4
+ store float %load, ptr %arg4, align 4
+ %getelementptr12 = getelementptr [7 x float], ptr null, i32 0, i32 %arg5
+ %load13 = load float, ptr %getelementptr12, align 4
+ store float %load13, ptr %arg, align 4
+ %getelementptr14 = getelementptr [7 x float], ptr null, i32 0, i32 %arg6
+ %load15 = load float, ptr %getelementptr14, align 4
+ store float %load15, ptr %arg1, align 4
+ %add16 = add i32 %phi, 1
+ %icmp17 = icmp ne i32 %phi, %arg2
+ br i1 %icmp17, label %bb7, label %bb18
+
+bb18: ; preds = %bb11
+ ret void
+}
+; CHECK:Schedule optimizer calculation exceeds ISL quota