• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt %loadPolly -polly-codegen -polly-ignore-aliasing -S < %s \
2; RUN:   | FileCheck %s
3;
4;    void manyarrays(float A1[], float A2[], float A3[], float A4[], float A5[],
5;                    float A6[], float A7[], float A8[], float A9[]) {
6;      for (long i = 0; i <= 1024; i++) {
7;        A1[i] += i;
8;        A2[i] += i;
9;        A3[i] += i;
10;        A4[i] += i;
11;        A5[i] += i;
12;        A6[i] += i;
13;        A7[i] += i;
14;        A8[i] += i;
15;        A9[i] += i;
16;      }
17;    }
18;
19; CHECK-LABEL @manyarrays
20; CHECK: load{{.*}}!alias.scope
21; CHECK: store{{.*}}!alias.scope
22; CHECK: load{{.*}}!alias.scope
23; CHECK: store{{.*}}!alias.scope
24; CHECK: load{{.*}}!alias.scope
25; CHECK: store{{.*}}!alias.scope
26; CHECK: load{{.*}}!alias.scope
27; CHECK: store{{.*}}!alias.scope
28; CHECK: load{{.*}}!alias.scope
29; CHECK: store{{.*}}!alias.scope
30; CHECK: load{{.*}}!alias.scope
31; CHECK: store{{.*}}!alias.scope
32; CHECK: load{{.*}}!alias.scope
33; CHECK: store{{.*}}!alias.scope
34; CHECK: load{{.*}}!alias.scope
35; CHECK: store{{.*}}!alias.scope
36; CHECK: load{{.*}}!alias.scope
37; CHECK: store{{.*}}!alias.scope
38;
39;    void toomanyarrays(float A1[], float A2[], float A3[], float A4[], float A5[],
40;                       float A6[], float A7[], float A8[], float A9[], float A10[],
41;                       float A11[]) {
42;      for (long i = 0; i <= 1024; i++) {
43;        A1[i] += i;
44;        A2[i] += i;
45;        A3[i] += i;
46;        A4[i] += i;
47;        A5[i] += i;
48;        A6[i] += i;
49;        A7[i] += i;
50;        A8[i] += i;
51;        A9[i] += i;
52;        A10[i] += i;
53;        A11[i] += i;
54;      }
55;    }
56;
57; CHECK-LABEL: @toomanyarrays
58; CHECK-NOT: !alias.scope
59;
60target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
61
62define void @manyarrays(float* %A1, float* %A2, float* %A3, float* %A4, float* %A5, float* %A6, float* %A7, float* %A8, float* %A9) {
63bb:
64  br label %bb1
65
66bb1:                                              ; preds = %bb38, %bb
67  %i.0 = phi i64 [ 0, %bb ], [ %tmp39, %bb38 ]
68  %exitcond = icmp ne i64 %i.0, 1025
69  br i1 %exitcond, label %bb2, label %bb40
70
71bb2:                                              ; preds = %bb1
72  %tmp = sitofp i64 %i.0 to float
73  %tmp3 = getelementptr inbounds float, float* %A1, i64 %i.0
74  %tmp4 = load float, float* %tmp3, align 4
75  %tmp5 = fadd float %tmp4, %tmp
76  store float %tmp5, float* %tmp3, align 4
77  %tmp6 = sitofp i64 %i.0 to float
78  %tmp7 = getelementptr inbounds float, float* %A2, i64 %i.0
79  %tmp8 = load float, float* %tmp7, align 4
80  %tmp9 = fadd float %tmp8, %tmp6
81  store float %tmp9, float* %tmp7, align 4
82  %tmp10 = sitofp i64 %i.0 to float
83  %tmp11 = getelementptr inbounds float, float* %A3, i64 %i.0
84  %tmp12 = load float, float* %tmp11, align 4
85  %tmp13 = fadd float %tmp12, %tmp10
86  store float %tmp13, float* %tmp11, align 4
87  %tmp14 = sitofp i64 %i.0 to float
88  %tmp15 = getelementptr inbounds float, float* %A4, i64 %i.0
89  %tmp16 = load float, float* %tmp15, align 4
90  %tmp17 = fadd float %tmp16, %tmp14
91  store float %tmp17, float* %tmp15, align 4
92  %tmp18 = sitofp i64 %i.0 to float
93  %tmp19 = getelementptr inbounds float, float* %A5, i64 %i.0
94  %tmp20 = load float, float* %tmp19, align 4
95  %tmp21 = fadd float %tmp20, %tmp18
96  store float %tmp21, float* %tmp19, align 4
97  %tmp22 = sitofp i64 %i.0 to float
98  %tmp23 = getelementptr inbounds float, float* %A6, i64 %i.0
99  %tmp24 = load float, float* %tmp23, align 4
100  %tmp25 = fadd float %tmp24, %tmp22
101  store float %tmp25, float* %tmp23, align 4
102  %tmp26 = sitofp i64 %i.0 to float
103  %tmp27 = getelementptr inbounds float, float* %A7, i64 %i.0
104  %tmp28 = load float, float* %tmp27, align 4
105  %tmp29 = fadd float %tmp28, %tmp26
106  store float %tmp29, float* %tmp27, align 4
107  %tmp30 = sitofp i64 %i.0 to float
108  %tmp31 = getelementptr inbounds float, float* %A8, i64 %i.0
109  %tmp32 = load float, float* %tmp31, align 4
110  %tmp33 = fadd float %tmp32, %tmp30
111  store float %tmp33, float* %tmp31, align 4
112  %tmp34 = sitofp i64 %i.0 to float
113  %tmp35 = getelementptr inbounds float, float* %A9, i64 %i.0
114  %tmp36 = load float, float* %tmp35, align 4
115  %tmp37 = fadd float %tmp36, %tmp34
116  store float %tmp37, float* %tmp35, align 4
117  br label %bb38
118
119bb38:                                             ; preds = %bb2
120  %tmp39 = add nuw nsw i64 %i.0, 1
121  br label %bb1
122
123bb40:                                             ; preds = %bb1
124  ret void
125}
126
127define void @toomanyarrays(float* %A1, float* %A2, float* %A3, float* %A4, float* %A5, float* %A6, float* %A7, float* %A8, float* %A9, float* %A10, float* %A11) {
128bb:
129  br label %bb1
130
131bb1:                                              ; preds = %bb46, %bb
132  %i.0 = phi i64 [ 0, %bb ], [ %tmp47, %bb46 ]
133  %exitcond = icmp ne i64 %i.0, 1025
134  br i1 %exitcond, label %bb2, label %bb48
135
136bb2:                                              ; preds = %bb1
137  %tmp = sitofp i64 %i.0 to float
138  %tmp3 = getelementptr inbounds float, float* %A1, i64 %i.0
139  %tmp4 = load float, float* %tmp3, align 4
140  %tmp5 = fadd float %tmp4, %tmp
141  store float %tmp5, float* %tmp3, align 4
142  %tmp6 = sitofp i64 %i.0 to float
143  %tmp7 = getelementptr inbounds float, float* %A2, i64 %i.0
144  %tmp8 = load float, float* %tmp7, align 4
145  %tmp9 = fadd float %tmp8, %tmp6
146  store float %tmp9, float* %tmp7, align 4
147  %tmp10 = sitofp i64 %i.0 to float
148  %tmp11 = getelementptr inbounds float, float* %A3, i64 %i.0
149  %tmp12 = load float, float* %tmp11, align 4
150  %tmp13 = fadd float %tmp12, %tmp10
151  store float %tmp13, float* %tmp11, align 4
152  %tmp14 = sitofp i64 %i.0 to float
153  %tmp15 = getelementptr inbounds float, float* %A4, i64 %i.0
154  %tmp16 = load float, float* %tmp15, align 4
155  %tmp17 = fadd float %tmp16, %tmp14
156  store float %tmp17, float* %tmp15, align 4
157  %tmp18 = sitofp i64 %i.0 to float
158  %tmp19 = getelementptr inbounds float, float* %A5, i64 %i.0
159  %tmp20 = load float, float* %tmp19, align 4
160  %tmp21 = fadd float %tmp20, %tmp18
161  store float %tmp21, float* %tmp19, align 4
162  %tmp22 = sitofp i64 %i.0 to float
163  %tmp23 = getelementptr inbounds float, float* %A6, i64 %i.0
164  %tmp24 = load float, float* %tmp23, align 4
165  %tmp25 = fadd float %tmp24, %tmp22
166  store float %tmp25, float* %tmp23, align 4
167  %tmp26 = sitofp i64 %i.0 to float
168  %tmp27 = getelementptr inbounds float, float* %A7, i64 %i.0
169  %tmp28 = load float, float* %tmp27, align 4
170  %tmp29 = fadd float %tmp28, %tmp26
171  store float %tmp29, float* %tmp27, align 4
172  %tmp30 = sitofp i64 %i.0 to float
173  %tmp31 = getelementptr inbounds float, float* %A8, i64 %i.0
174  %tmp32 = load float, float* %tmp31, align 4
175  %tmp33 = fadd float %tmp32, %tmp30
176  store float %tmp33, float* %tmp31, align 4
177  %tmp34 = sitofp i64 %i.0 to float
178  %tmp35 = getelementptr inbounds float, float* %A9, i64 %i.0
179  %tmp36 = load float, float* %tmp35, align 4
180  %tmp37 = fadd float %tmp36, %tmp34
181  store float %tmp37, float* %tmp35, align 4
182  %tmp38 = sitofp i64 %i.0 to float
183  %tmp39 = getelementptr inbounds float, float* %A10, i64 %i.0
184  %tmp40 = load float, float* %tmp39, align 4
185  %tmp41 = fadd float %tmp40, %tmp38
186  store float %tmp41, float* %tmp39, align 4
187  %tmp42 = sitofp i64 %i.0 to float
188  %tmp43 = getelementptr inbounds float, float* %A11, i64 %i.0
189  %tmp44 = load float, float* %tmp43, align 4
190  %tmp45 = fadd float %tmp44, %tmp42
191  store float %tmp45, float* %tmp43, align 4
192  br label %bb46
193
194bb46:                                             ; preds = %bb2
195  %tmp47 = add nuw nsw i64 %i.0, 1
196  br label %bb1
197
198bb48:                                             ; preds = %bb1
199  ret void
200}
201