summaryrefslogtreecommitdiffstats
path: root/polly/test/CodeGen/OpenMP/extract_memref.ll
diff options
context:
space:
mode:
authorTobias Grosser <grosser@fim.uni-passau.de>2011-04-29 06:27:02 +0000
committerTobias Grosser <grosser@fim.uni-passau.de>2011-04-29 06:27:02 +0000
commit758053788bde4747953f5f276ded345cd01323b1 (patch)
tree02f38df95a5327cb8644906d148b5bd8facf63f9 /polly/test/CodeGen/OpenMP/extract_memref.ll
parent011eae75123217b9125270ae08132a308cee7061 (diff)
downloadbcm5719-llvm-758053788bde4747953f5f276ded345cd01323b1.tar.gz
bcm5719-llvm-758053788bde4747953f5f276ded345cd01323b1.zip
Add initial version of Polly
This version is equivalent to commit ba26ebece8f5be84e9bd6315611d412af797147e in the old git repository. llvm-svn: 130476
Diffstat (limited to 'polly/test/CodeGen/OpenMP/extract_memref.ll')
-rw-r--r--polly/test/CodeGen/OpenMP/extract_memref.ll37
1 files changed, 37 insertions, 0 deletions
diff --git a/polly/test/CodeGen/OpenMP/extract_memref.ll b/polly/test/CodeGen/OpenMP/extract_memref.ll
new file mode 100644
index 00000000000..797ea0f0490
--- /dev/null
+++ b/polly/test/CodeGen/OpenMP/extract_memref.ll
@@ -0,0 +1,37 @@
+; ModuleID = 'extract_memref.s'
+; RUN: opt %loadPolly %defaultOpts -polly-codegen -enable-polly-openmp -S < %s | FileCheck %s
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
+target triple = "i386-pc-linux-gnu"
+
+define void @foo() nounwind {
+entry:
+ %A = alloca [10 x float], align 4
+ br label %for.cond
+
+for.cond: ; preds = %for.inc, %entry
+ %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
+ %cmp = icmp slt i32 %i.0, 10
+ br i1 %cmp, label %for.body, label %for.end
+
+for.body: ; preds = %for.cond
+ %arrayidx = getelementptr inbounds [10 x float]* %A, i32 0, i32 %i.0
+ store float 1.000000e+01, float* %arrayidx
+ br label %for.inc
+
+for.inc: ; preds = %for.body
+ %inc = add nsw i32 %i.0, 1
+ br label %for.cond
+
+for.end: ; preds = %for.cond
+ ret void
+}
+
+define i32 @main() nounwind {
+entry:
+ call void @foo()
+ ret i32 0
+}
+; CHECK: store [10 x float]* %A, [10 x float]**
+; CHECK: getelementptr inbounds %foo.omp_subfn.omp.userContext* %omp.userContext1
+; CHECK: load [10 x float]**
+; CHECK: getelementptr inbounds [10 x float]*
OpenPOWER on IntegriCloud