xref: /llvm-project/polly/test/ScopInfo/aliasing_many_arrays_to_compare.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly '-passes=print<polly-detect>,print<polly-function-scops>' -disable-output \
2; RUN:                < %s 2>&1 | FileCheck %s --check-prefix=FOUND
3; RUN: opt %loadNPMPolly '-passes=print<polly-detect>,print<polly-function-scops>' -disable-output \
4; RUN:                -polly-rtc-max-arrays-per-group=3 < %s 2>&1 | FileCheck %s \
5; RUN:                --check-prefix=IGNORED
6;
7; FOUND: Function: foo
8; IGNORED-NOT: Function: foo
9;
10;    void foo(float *A, float *B, float *C, float *D) {
11;      for (long i = 0; i < 100; i++) {
12;        A[i]++;
13;        B[i]++;
14;        C[i]++;
15;        D[i]++;
16;      }
17;    }
18;
19target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
20
21define void @foo(ptr %A, ptr %B, ptr %C, ptr %D) {
22entry:
23  br label %for.cond
24
25for.cond:                                         ; preds = %for.inc, %entry
26  %i.0 = phi i64 [ 0, %entry ], [ %inc7, %for.inc ]
27  %exitcond = icmp ne i64 %i.0, 100
28  br i1 %exitcond, label %for.body, label %for.end
29
30for.body:                                         ; preds = %for.cond
31  %arrayidx = getelementptr inbounds float, ptr %A, i64 %i.0
32  %tmp = load float, ptr %arrayidx, align 4
33  %inc = fadd float %tmp, 1.000000e+00
34  store float %inc, ptr %arrayidx, align 4
35  %arrayidx1 = getelementptr inbounds float, ptr %B, i64 %i.0
36  %tmp1 = load float, ptr %arrayidx1, align 4
37  %inc2 = fadd float %tmp1, 1.000000e+00
38  store float %inc2, ptr %arrayidx1, align 4
39  %arrayidx3 = getelementptr inbounds float, ptr %C, i64 %i.0
40  %tmp2 = load float, ptr %arrayidx3, align 4
41  %inc4 = fadd float %tmp2, 1.000000e+00
42  store float %inc4, ptr %arrayidx3, align 4
43  %arrayidx5 = getelementptr inbounds float, ptr %D, i64 %i.0
44  %tmp3 = load float, ptr %arrayidx5, align 4
45  %inc6 = fadd float %tmp3, 1.000000e+00
46  store float %inc6, ptr %arrayidx5, align 4
47  br label %for.inc
48
49for.inc:                                          ; preds = %for.body
50  %inc7 = add nuw nsw i64 %i.0, 1
51  br label %for.cond
52
53for.end:                                          ; preds = %for.cond
54  ret void
55}
56