[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / ScopInfo / aliasing_many_read_only_acesses.ll
blobc22cfe55e11851edd980f9646bbedf7642d631f7
1 ; RUN: opt %loadPolly -polly-print-scops -disable-output < %s | FileCheck %s
3 ; CHECK: Assumed Context:
4 ; CHECK-NEXT: { : }
6 ; Make sure the large number of read-only accesses does not cause make us
7 ; invalidate the scop.
9 ;    void many_read_only_accesses(float A[], float B[]) {
10 ;      for (long i = 0; i < 1024; i++) {
11 ;        for (long j = 0; j < 1024; j++) {
12 ;          A[j] += B[i] + B[i + 1] + B[i + 2] + B[i + 3] + B[i + 4] + B[i + 5] +
13 ;                  B[i + 6] + B[i + 7] + B[i + 8] + B[i + 9] + B[i + 0] + B[i + 11] +
14 ;                  B[i + 12] + B[i + 13] + B[i + 14] + B[i + 15] + B[i + 16] +
15 ;                  B[i + 17] + B[i + 18] + B[i + 19] + B[i + 10] + B[i + 21] +
16 ;                  B[i + 22] + B[i + 23] + B[i + 24] + B[i + 25] + B[i + 26] +
17 ;                  B[i + 27] + B[i + 28] + B[i + 29] + B[i + 20] + B[i + 31] +
18 ;                  B[i + 32] + B[i + 33] + B[i + 34] + B[i + 35] + B[i + 36] +
19 ;                  B[i + 37] + B[i + 38] + B[i + 39] + B[i + 30];
20 ;        }
21 ;      }
22 ;    }
24 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
26 define void @many_read_only_accesses(ptr %A, ptr %B) {
27 bb:
28   br label %bb2
30 bb2:                                              ; preds = %bb172, %bb
31   %i.0 = phi i64 [ 0, %bb ], [ %tmp173, %bb172 ]
32   %exitcond1 = icmp ne i64 %i.0, 1024
33   br i1 %exitcond1, label %bb3, label %bb174
35 bb3:                                              ; preds = %bb2
36   br label %bb4
38 bb4:                                              ; preds = %bb169, %bb3
39   %j.0 = phi i64 [ 0, %bb3 ], [ %tmp170, %bb169 ]
40   %exitcond = icmp ne i64 %j.0, 1024
41   br i1 %exitcond, label %bb5, label %bb171
43 bb5:                                              ; preds = %bb4
44   %tmp = getelementptr inbounds float, ptr %B, i64 %i.0
45   %tmp6 = load float, ptr %tmp, align 4
46   %tmp7 = add nuw nsw i64 %i.0, 1
47   %tmp8 = getelementptr inbounds float, ptr %B, i64 %tmp7
48   %tmp9 = load float, ptr %tmp8, align 4
49   %tmp10 = fadd float %tmp6, %tmp9
50   %tmp11 = add nuw nsw i64 %i.0, 2
51   %tmp12 = getelementptr inbounds float, ptr %B, i64 %tmp11
52   %tmp13 = load float, ptr %tmp12, align 4
53   %tmp14 = fadd float %tmp10, %tmp13
54   %tmp15 = add nuw nsw i64 %i.0, 3
55   %tmp16 = getelementptr inbounds float, ptr %B, i64 %tmp15
56   %tmp17 = load float, ptr %tmp16, align 4
57   %tmp18 = fadd float %tmp14, %tmp17
58   %tmp19 = add nuw nsw i64 %i.0, 4
59   %tmp20 = getelementptr inbounds float, ptr %B, i64 %tmp19
60   %tmp21 = load float, ptr %tmp20, align 4
61   %tmp22 = fadd float %tmp18, %tmp21
62   %tmp23 = add nuw nsw i64 %i.0, 5
63   %tmp24 = getelementptr inbounds float, ptr %B, i64 %tmp23
64   %tmp25 = load float, ptr %tmp24, align 4
65   %tmp26 = fadd float %tmp22, %tmp25
66   %tmp27 = add nuw nsw i64 %i.0, 6
67   %tmp28 = getelementptr inbounds float, ptr %B, i64 %tmp27
68   %tmp29 = load float, ptr %tmp28, align 4
69   %tmp30 = fadd float %tmp26, %tmp29
70   %tmp31 = add nuw nsw i64 %i.0, 7
71   %tmp32 = getelementptr inbounds float, ptr %B, i64 %tmp31
72   %tmp33 = load float, ptr %tmp32, align 4
73   %tmp34 = fadd float %tmp30, %tmp33
74   %tmp35 = add nuw nsw i64 %i.0, 8
75   %tmp36 = getelementptr inbounds float, ptr %B, i64 %tmp35
76   %tmp37 = load float, ptr %tmp36, align 4
77   %tmp38 = fadd float %tmp34, %tmp37
78   %tmp39 = add nuw nsw i64 %i.0, 9
79   %tmp40 = getelementptr inbounds float, ptr %B, i64 %tmp39
80   %tmp41 = load float, ptr %tmp40, align 4
81   %tmp42 = fadd float %tmp38, %tmp41
82   %tmp43 = getelementptr inbounds float, ptr %B, i64 %i.0
83   %tmp44 = load float, ptr %tmp43, align 4
84   %tmp45 = fadd float %tmp42, %tmp44
85   %tmp46 = add nuw nsw i64 %i.0, 11
86   %tmp47 = getelementptr inbounds float, ptr %B, i64 %tmp46
87   %tmp48 = load float, ptr %tmp47, align 4
88   %tmp49 = fadd float %tmp45, %tmp48
89   %tmp50 = add nuw nsw i64 %i.0, 12
90   %tmp51 = getelementptr inbounds float, ptr %B, i64 %tmp50
91   %tmp52 = load float, ptr %tmp51, align 4
92   %tmp53 = fadd float %tmp49, %tmp52
93   %tmp54 = add nuw nsw i64 %i.0, 13
94   %tmp55 = getelementptr inbounds float, ptr %B, i64 %tmp54
95   %tmp56 = load float, ptr %tmp55, align 4
96   %tmp57 = fadd float %tmp53, %tmp56
97   %tmp58 = add nuw nsw i64 %i.0, 14
98   %tmp59 = getelementptr inbounds float, ptr %B, i64 %tmp58
99   %tmp60 = load float, ptr %tmp59, align 4
100   %tmp61 = fadd float %tmp57, %tmp60
101   %tmp62 = add nuw nsw i64 %i.0, 15
102   %tmp63 = getelementptr inbounds float, ptr %B, i64 %tmp62
103   %tmp64 = load float, ptr %tmp63, align 4
104   %tmp65 = fadd float %tmp61, %tmp64
105   %tmp66 = add nuw nsw i64 %i.0, 16
106   %tmp67 = getelementptr inbounds float, ptr %B, i64 %tmp66
107   %tmp68 = load float, ptr %tmp67, align 4
108   %tmp69 = fadd float %tmp65, %tmp68
109   %tmp70 = add nuw nsw i64 %i.0, 17
110   %tmp71 = getelementptr inbounds float, ptr %B, i64 %tmp70
111   %tmp72 = load float, ptr %tmp71, align 4
112   %tmp73 = fadd float %tmp69, %tmp72
113   %tmp74 = add nuw nsw i64 %i.0, 18
114   %tmp75 = getelementptr inbounds float, ptr %B, i64 %tmp74
115   %tmp76 = load float, ptr %tmp75, align 4
116   %tmp77 = fadd float %tmp73, %tmp76
117   %tmp78 = add nuw nsw i64 %i.0, 19
118   %tmp79 = getelementptr inbounds float, ptr %B, i64 %tmp78
119   %tmp80 = load float, ptr %tmp79, align 4
120   %tmp81 = fadd float %tmp77, %tmp80
121   %tmp82 = add nuw nsw i64 %i.0, 10
122   %tmp83 = getelementptr inbounds float, ptr %B, i64 %tmp82
123   %tmp84 = load float, ptr %tmp83, align 4
124   %tmp85 = fadd float %tmp81, %tmp84
125   %tmp86 = add nuw nsw i64 %i.0, 21
126   %tmp87 = getelementptr inbounds float, ptr %B, i64 %tmp86
127   %tmp88 = load float, ptr %tmp87, align 4
128   %tmp89 = fadd float %tmp85, %tmp88
129   %tmp90 = add nuw nsw i64 %i.0, 22
130   %tmp91 = getelementptr inbounds float, ptr %B, i64 %tmp90
131   %tmp92 = load float, ptr %tmp91, align 4
132   %tmp93 = fadd float %tmp89, %tmp92
133   %tmp94 = add nuw nsw i64 %i.0, 23
134   %tmp95 = getelementptr inbounds float, ptr %B, i64 %tmp94
135   %tmp96 = load float, ptr %tmp95, align 4
136   %tmp97 = fadd float %tmp93, %tmp96
137   %tmp98 = add nuw nsw i64 %i.0, 24
138   %tmp99 = getelementptr inbounds float, ptr %B, i64 %tmp98
139   %tmp100 = load float, ptr %tmp99, align 4
140   %tmp101 = fadd float %tmp97, %tmp100
141   %tmp102 = add nuw nsw i64 %i.0, 25
142   %tmp103 = getelementptr inbounds float, ptr %B, i64 %tmp102
143   %tmp104 = load float, ptr %tmp103, align 4
144   %tmp105 = fadd float %tmp101, %tmp104
145   %tmp106 = add nuw nsw i64 %i.0, 26
146   %tmp107 = getelementptr inbounds float, ptr %B, i64 %tmp106
147   %tmp108 = load float, ptr %tmp107, align 4
148   %tmp109 = fadd float %tmp105, %tmp108
149   %tmp110 = add nuw nsw i64 %i.0, 27
150   %tmp111 = getelementptr inbounds float, ptr %B, i64 %tmp110
151   %tmp112 = load float, ptr %tmp111, align 4
152   %tmp113 = fadd float %tmp109, %tmp112
153   %tmp114 = add nuw nsw i64 %i.0, 28
154   %tmp115 = getelementptr inbounds float, ptr %B, i64 %tmp114
155   %tmp116 = load float, ptr %tmp115, align 4
156   %tmp117 = fadd float %tmp113, %tmp116
157   %tmp118 = add nuw nsw i64 %i.0, 29
158   %tmp119 = getelementptr inbounds float, ptr %B, i64 %tmp118
159   %tmp120 = load float, ptr %tmp119, align 4
160   %tmp121 = fadd float %tmp117, %tmp120
161   %tmp122 = add nuw nsw i64 %i.0, 20
162   %tmp123 = getelementptr inbounds float, ptr %B, i64 %tmp122
163   %tmp124 = load float, ptr %tmp123, align 4
164   %tmp125 = fadd float %tmp121, %tmp124
165   %tmp126 = add nuw nsw i64 %i.0, 31
166   %tmp127 = getelementptr inbounds float, ptr %B, i64 %tmp126
167   %tmp128 = load float, ptr %tmp127, align 4
168   %tmp129 = fadd float %tmp125, %tmp128
169   %tmp130 = add nuw nsw i64 %i.0, 32
170   %tmp131 = getelementptr inbounds float, ptr %B, i64 %tmp130
171   %tmp132 = load float, ptr %tmp131, align 4
172   %tmp133 = fadd float %tmp129, %tmp132
173   %tmp134 = add nuw nsw i64 %i.0, 33
174   %tmp135 = getelementptr inbounds float, ptr %B, i64 %tmp134
175   %tmp136 = load float, ptr %tmp135, align 4
176   %tmp137 = fadd float %tmp133, %tmp136
177   %tmp138 = add nuw nsw i64 %i.0, 34
178   %tmp139 = getelementptr inbounds float, ptr %B, i64 %tmp138
179   %tmp140 = load float, ptr %tmp139, align 4
180   %tmp141 = fadd float %tmp137, %tmp140
181   %tmp142 = add nuw nsw i64 %i.0, 35
182   %tmp143 = getelementptr inbounds float, ptr %B, i64 %tmp142
183   %tmp144 = load float, ptr %tmp143, align 4
184   %tmp145 = fadd float %tmp141, %tmp144
185   %tmp146 = add nuw nsw i64 %i.0, 36
186   %tmp147 = getelementptr inbounds float, ptr %B, i64 %tmp146
187   %tmp148 = load float, ptr %tmp147, align 4
188   %tmp149 = fadd float %tmp145, %tmp148
189   %tmp150 = add nuw nsw i64 %i.0, 37
190   %tmp151 = getelementptr inbounds float, ptr %B, i64 %tmp150
191   %tmp152 = load float, ptr %tmp151, align 4
192   %tmp153 = fadd float %tmp149, %tmp152
193   %tmp154 = add nuw nsw i64 %i.0, 38
194   %tmp155 = getelementptr inbounds float, ptr %B, i64 %tmp154
195   %tmp156 = load float, ptr %tmp155, align 4
196   %tmp157 = fadd float %tmp153, %tmp156
197   %tmp158 = add nuw nsw i64 %i.0, 39
198   %tmp159 = getelementptr inbounds float, ptr %B, i64 %tmp158
199   %tmp160 = load float, ptr %tmp159, align 4
200   %tmp161 = fadd float %tmp157, %tmp160
201   %tmp162 = add nuw nsw i64 %i.0, 30
202   %tmp163 = getelementptr inbounds float, ptr %B, i64 %tmp162
203   %tmp164 = load float, ptr %tmp163, align 4
204   %tmp165 = fadd float %tmp161, %tmp164
205   %tmp166 = getelementptr inbounds float, ptr %A, i64 %j.0
206   %tmp167 = load float, ptr %tmp166, align 4
207   %tmp168 = fadd float %tmp167, %tmp165
208   store float %tmp168, ptr %tmp166, align 4
209   br label %bb169
211 bb169:                                            ; preds = %bb5
212   %tmp170 = add nuw nsw i64 %j.0, 1
213   br label %bb4
215 bb171:                                            ; preds = %bb4
216   br label %bb172
218 bb172:                                            ; preds = %bb171
219   %tmp173 = add nuw nsw i64 %i.0, 1
220   br label %bb2
222 bb174:                                            ; preds = %bb2
223   ret void