Files
clang-p2996/polly/test/Isl/CodeGen/OpenMP/alias-metadata.ll
Tobias Grosser a89dc57b41 Do not use '.' in subfunction names
Certain backends, e.g. NVPTX, do not support '.' in function names. Hence,
we ensure all '.' are replaced by '_' when generating function names for
subfunctions. For the current OpenMP code generation, this is not strictly
necessary, but future uses cases (e.g. GPU offloading) need this issue to be
fixed.

llvm-svn: 246980
2015-09-08 06:22:17 +00:00

53 lines
1.7 KiB
LLVM

; RUN: opt %loadPolly -polly-codegen -polly-parallel -S < %s | FileCheck %s
;
; void foo(float *A, float *B) {
; for (long i = 0; i < 1000; i++)
; for (long j = 0; j < 1000; j++)
; A[i] = B[i];
; }
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
; CHECK: define internal void @foo_polly_subfn
define void @foo(float* %A, float* %B) {
bb:
br label %bb2
bb2: ; preds = %bb11, %bb
%i.0 = phi i64 [ 0, %bb ], [ %tmp12, %bb11 ]
%exitcond1 = icmp ne i64 %i.0, 1000
br i1 %exitcond1, label %bb3, label %bb13
bb3: ; preds = %bb2
br label %bb4
bb4: ; preds = %bb8, %bb3
%j.0 = phi i64 [ 0, %bb3 ], [ %tmp9, %bb8 ]
%exitcond = icmp ne i64 %j.0, 1000
br i1 %exitcond, label %bb5, label %bb10
bb5: ; preds = %bb4
%tmp = getelementptr inbounds float, float* %B, i64 %i.0
%tmp7 = getelementptr inbounds float, float* %A, i64 %i.0
%tmp6 = load float, float* %tmp, align 4
store float %tmp6, float* %tmp7, align 4
; CHECK: %tmp6_p_scalar_ = load float, float* %scevgep, align 4, !alias.scope !0, !noalias !2
; CHECK: store float %tmp6_p_scalar_, float* %scevgep8, align 4, !alias.scope !3, !noalias !4
br label %bb8
bb8: ; preds = %bb5
%tmp9 = add nsw i64 %j.0, 1
br label %bb4
bb10: ; preds = %bb4
br label %bb11
bb11: ; preds = %bb10
%tmp12 = add nsw i64 %i.0, 1
br label %bb2
bb13: ; preds = %bb2
ret void
}