brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 286f878 Raw
34 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2;3; void foo(float *A, float *B, float *C, long N) {4; 	for (long i = 0; i < N; i++)5; 		C[i] = A[i] + B[i];6; }7;8; CHECK: Alias Groups (2):9;10; This test case verifies that we do not create run-time checks for two11; read-only arrays.12target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"13 14define void @foo(ptr %A, ptr %B, ptr %C, i64 %N) {15entry:16  br label %for.body17 18for.body:19  %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ]20  %arrayidx.A = getelementptr float, ptr %A, i64 %indvar21  %arrayidx.B = getelementptr float, ptr %B, i64 %indvar22  %arrayidx.C = getelementptr float, ptr %C, i64 %indvar23  %val.A = load float, ptr %arrayidx.A24  %val.B = load float, ptr %arrayidx.B25  %add = fadd float %val.A, %val.B26  store float %add, ptr %arrayidx.C27  %indvar.next = add nsw i64 %indvar, 128  %exitcond = icmp ne i64 %indvar.next, %N29  br i1 %exitcond, label %for.body, label %for.end30 31for.end:32  ret void33}34