[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / CodeGen / alias_metadata_too_many_arrays.ll
blob7c5ca012a3783111c8a6c964d6d8db6ff97add41
1 ; RUN: opt %loadPolly -polly-codegen -polly-ignore-aliasing -S < %s \
2 ; RUN:   | FileCheck %s
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 ;    }
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
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 ;    }
57 ; CHECK-LABEL: @toomanyarrays
58 ; CHECK-NOT: !alias.scope
60 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
62 define void @manyarrays(ptr %A1, ptr %A2, ptr %A3, ptr %A4, ptr %A5, ptr %A6, ptr %A7, ptr %A8, ptr %A9) {
63 bb:
64   br label %bb1
66 bb1:                                              ; 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
71 bb2:                                              ; preds = %bb1
72   %tmp = sitofp i64 %i.0 to float
73   %tmp3 = getelementptr inbounds float, ptr %A1, i64 %i.0
74   %tmp4 = load float, ptr %tmp3, align 4
75   %tmp5 = fadd float %tmp4, %tmp
76   store float %tmp5, ptr %tmp3, align 4
77   %tmp6 = sitofp i64 %i.0 to float
78   %tmp7 = getelementptr inbounds float, ptr %A2, i64 %i.0
79   %tmp8 = load float, ptr %tmp7, align 4
80   %tmp9 = fadd float %tmp8, %tmp6
81   store float %tmp9, ptr %tmp7, align 4
82   %tmp10 = sitofp i64 %i.0 to float
83   %tmp11 = getelementptr inbounds float, ptr %A3, i64 %i.0
84   %tmp12 = load float, ptr %tmp11, align 4
85   %tmp13 = fadd float %tmp12, %tmp10
86   store float %tmp13, ptr %tmp11, align 4
87   %tmp14 = sitofp i64 %i.0 to float
88   %tmp15 = getelementptr inbounds float, ptr %A4, i64 %i.0
89   %tmp16 = load float, ptr %tmp15, align 4
90   %tmp17 = fadd float %tmp16, %tmp14
91   store float %tmp17, ptr %tmp15, align 4
92   %tmp18 = sitofp i64 %i.0 to float
93   %tmp19 = getelementptr inbounds float, ptr %A5, i64 %i.0
94   %tmp20 = load float, ptr %tmp19, align 4
95   %tmp21 = fadd float %tmp20, %tmp18
96   store float %tmp21, ptr %tmp19, align 4
97   %tmp22 = sitofp i64 %i.0 to float
98   %tmp23 = getelementptr inbounds float, ptr %A6, i64 %i.0
99   %tmp24 = load float, ptr %tmp23, align 4
100   %tmp25 = fadd float %tmp24, %tmp22
101   store float %tmp25, ptr %tmp23, align 4
102   %tmp26 = sitofp i64 %i.0 to float
103   %tmp27 = getelementptr inbounds float, ptr %A7, i64 %i.0
104   %tmp28 = load float, ptr %tmp27, align 4
105   %tmp29 = fadd float %tmp28, %tmp26
106   store float %tmp29, ptr %tmp27, align 4
107   %tmp30 = sitofp i64 %i.0 to float
108   %tmp31 = getelementptr inbounds float, ptr %A8, i64 %i.0
109   %tmp32 = load float, ptr %tmp31, align 4
110   %tmp33 = fadd float %tmp32, %tmp30
111   store float %tmp33, ptr %tmp31, align 4
112   %tmp34 = sitofp i64 %i.0 to float
113   %tmp35 = getelementptr inbounds float, ptr %A9, i64 %i.0
114   %tmp36 = load float, ptr %tmp35, align 4
115   %tmp37 = fadd float %tmp36, %tmp34
116   store float %tmp37, ptr %tmp35, align 4
117   br label %bb38
119 bb38:                                             ; preds = %bb2
120   %tmp39 = add nuw nsw i64 %i.0, 1
121   br label %bb1
123 bb40:                                             ; preds = %bb1
124   ret void
127 define void @toomanyarrays(ptr %A1, ptr %A2, ptr %A3, ptr %A4, ptr %A5, ptr %A6, ptr %A7, ptr %A8, ptr %A9, ptr %A10, ptr %A11) {
129   br label %bb1
131 bb1:                                              ; 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
136 bb2:                                              ; preds = %bb1
137   %tmp = sitofp i64 %i.0 to float
138   %tmp3 = getelementptr inbounds float, ptr %A1, i64 %i.0
139   %tmp4 = load float, ptr %tmp3, align 4
140   %tmp5 = fadd float %tmp4, %tmp
141   store float %tmp5, ptr %tmp3, align 4
142   %tmp6 = sitofp i64 %i.0 to float
143   %tmp7 = getelementptr inbounds float, ptr %A2, i64 %i.0
144   %tmp8 = load float, ptr %tmp7, align 4
145   %tmp9 = fadd float %tmp8, %tmp6
146   store float %tmp9, ptr %tmp7, align 4
147   %tmp10 = sitofp i64 %i.0 to float
148   %tmp11 = getelementptr inbounds float, ptr %A3, i64 %i.0
149   %tmp12 = load float, ptr %tmp11, align 4
150   %tmp13 = fadd float %tmp12, %tmp10
151   store float %tmp13, ptr %tmp11, align 4
152   %tmp14 = sitofp i64 %i.0 to float
153   %tmp15 = getelementptr inbounds float, ptr %A4, i64 %i.0
154   %tmp16 = load float, ptr %tmp15, align 4
155   %tmp17 = fadd float %tmp16, %tmp14
156   store float %tmp17, ptr %tmp15, align 4
157   %tmp18 = sitofp i64 %i.0 to float
158   %tmp19 = getelementptr inbounds float, ptr %A5, i64 %i.0
159   %tmp20 = load float, ptr %tmp19, align 4
160   %tmp21 = fadd float %tmp20, %tmp18
161   store float %tmp21, ptr %tmp19, align 4
162   %tmp22 = sitofp i64 %i.0 to float
163   %tmp23 = getelementptr inbounds float, ptr %A6, i64 %i.0
164   %tmp24 = load float, ptr %tmp23, align 4
165   %tmp25 = fadd float %tmp24, %tmp22
166   store float %tmp25, ptr %tmp23, align 4
167   %tmp26 = sitofp i64 %i.0 to float
168   %tmp27 = getelementptr inbounds float, ptr %A7, i64 %i.0
169   %tmp28 = load float, ptr %tmp27, align 4
170   %tmp29 = fadd float %tmp28, %tmp26
171   store float %tmp29, ptr %tmp27, align 4
172   %tmp30 = sitofp i64 %i.0 to float
173   %tmp31 = getelementptr inbounds float, ptr %A8, i64 %i.0
174   %tmp32 = load float, ptr %tmp31, align 4
175   %tmp33 = fadd float %tmp32, %tmp30
176   store float %tmp33, ptr %tmp31, align 4
177   %tmp34 = sitofp i64 %i.0 to float
178   %tmp35 = getelementptr inbounds float, ptr %A9, i64 %i.0
179   %tmp36 = load float, ptr %tmp35, align 4
180   %tmp37 = fadd float %tmp36, %tmp34
181   store float %tmp37, ptr %tmp35, align 4
182   %tmp38 = sitofp i64 %i.0 to float
183   %tmp39 = getelementptr inbounds float, ptr %A10, i64 %i.0
184   %tmp40 = load float, ptr %tmp39, align 4
185   %tmp41 = fadd float %tmp40, %tmp38
186   store float %tmp41, ptr %tmp39, align 4
187   %tmp42 = sitofp i64 %i.0 to float
188   %tmp43 = getelementptr inbounds float, ptr %A11, i64 %i.0
189   %tmp44 = load float, ptr %tmp43, align 4
190   %tmp45 = fadd float %tmp44, %tmp42
191   store float %tmp45, ptr %tmp43, align 4
192   br label %bb46
194 bb46:                                             ; preds = %bb2
195   %tmp47 = add nuw nsw i64 %i.0, 1
196   br label %bb1
198 bb48:                                             ; preds = %bb1
199   ret void