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