1; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s 2; 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 two 11; read-only arrays. 12target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 13 14define void @foo(float* %A, float* %B, float* %C, i64 %N) { 15entry: 16 br label %for.body 17 18for.body: 19 %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.body ] 20 %arrayidx.A = getelementptr float, float* %A, i64 %indvar 21 %arrayidx.B = getelementptr float, float* %B, i64 %indvar 22 %arrayidx.C = getelementptr float, float* %C, i64 %indvar 23 %val.A = load float, float* %arrayidx.A 24 %val.B = load float, float* %arrayidx.B 25 %add = fadd float %val.A, %val.B 26 store float %add, float* %arrayidx.C 27 %indvar.next = add nsw i64 %indvar, 1 28 %exitcond = icmp ne i64 %indvar.next, %N 29 br i1 %exitcond, label %for.body, label %for.end 30 31for.end: 32 ret void 33} 34