[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / ScopInfo / assume_gep_bounds_many.ll
blob261491564fc20a0f805025232ea4712de1b21811
1 ; RUN: opt %loadPolly -disable-output -polly-print-scops -polly-ignore-aliasing \
2 ; RUN:    < %s | FileCheck %s
4 ; CHECK: Assumed Context:
5 ; CHECK-NEXT: [n1_a, n1_b, n1_c, n1_d, n2_a, n2_b, n2_c, n2_d, n3_a, n3_b, n3_c, n3_d, n4_a, n4_b, n4_c, n4_d, n5_a, n5_b, n5_c, n5_d, n6_a, n6_b, n6_c, n6_d, n7_a, n7_b, n7_c, n7_d, n8_a, n8_b, n8_c, n8_d, n9_a, n9_b, n9_c, n9_d, p1_b, p1_c, p1_d, p2_b, p2_c, p2_d, p3_b, p3_c, p3_d, p4_b, p4_c, p4_d, p5_b, p5_c, p5_d, p6_b, p6_c, p6_d, p7_b, p7_c, p7_d, p8_b, p8_c, p8_d, p9_b, p9_c, p9_d] -> {  : p1_b >= n1_b and p1_c >= n1_c and p1_d >= n1_d and p2_b >= n2_b and p2_c >= n2_c and p2_d >= n2_d and p3_b >= n3_b and p3_c >= n3_c and p3_d >= n3_d and p4_b >= n4_b and p4_c >= n4_c and p4_d >= n4_d and p5_b >= n5_b and p5_c >= n5_c and p5_d >= n5_d and p6_b >= n6_b and p6_c >= n6_c and p6_d >= n6_d and p7_b >= n7_b and p7_c >= n7_c and p7_d >= n7_d and p8_b >= n8_b and p8_c >= n8_c and p8_d >= n8_d and p9_b >= n9_b and p9_c >= n9_c and p9_d >= n9_d }
6 ; CHECK-NEXT: Invalid Context:
7 ; CHECK-NEXT: [n1_a, n1_b, n1_c, n1_d, n2_a, n2_b, n2_c, n2_d, n3_a, n3_b, n3_c, n3_d, n4_a, n4_b, n4_c, n4_d, n5_a, n5_b, n5_c, n5_d, n6_a, n6_b, n6_c, n6_d, n7_a, n7_b, n7_c, n7_d, n8_a, n8_b, n8_c, n8_d, n9_a, n9_b, n9_c, n9_d, p1_b, p1_c, p1_d, p2_b, p2_c, p2_d, p3_b, p3_c, p3_d, p4_b, p4_c, p4_d, p5_b, p5_c, p5_d, p6_b, p6_c, p6_d, p7_b, p7_c, p7_d, p8_b, p8_c, p8_d, p9_b, p9_c, p9_d] -> {  : false }
11 ;    void foo(long n1_a, long n1_b, long n1_c, long n1_d, long n2_a, long n2_b,
12 ;             long n2_c, long n2_d, long n3_a, long n3_b, long n3_c, long n3_d,
13 ;             long n4_a, long n4_b, long n4_c, long n4_d, long n5_a, long n5_b,
14 ;             long n5_c, long n5_d, long n6_a, long n6_b, long n6_c, long n6_d,
15 ;             long n7_a, long n7_b, long n7_c, long n7_d, long n8_a, long n8_b,
16 ;             long n8_c, long n8_d, long n9_a, long n9_b, long n9_c, long n9_d,
17 ;             long p1_b, long p1_c, long p1_d, long p2_b, long p2_c, long p2_d,
18 ;             long p3_b, long p3_c, long p3_d, long p4_b, long p4_c, long p4_d,
19 ;             long p5_b, long p5_c, long p5_d, long p6_b, long p6_c, long p6_d,
20 ;             long p7_b, long p7_c, long p7_d, long p8_b, long p8_c, long p8_d,
21 ;             long p9_b, long p9_c, long p9_d, float A_1[][p1_b][p1_c][p1_d],
22 ;             float A_2[][p2_b][p2_c][p2_d], float A_3[][p3_b][p3_c][p3_d],
23 ;             float A_4[][p4_b][p4_c][p4_d], float A_5[][p5_b][p5_c][p5_d],
24 ;             float A_6[][p6_b][p6_c][p6_d], float A_7[][p7_b][p7_c][p7_d],
25 ;             float A_8[][p8_b][p8_c][p8_d], float A_9[][p9_b][p9_c][p9_d]) {
26 ;      for (long i = 0; i < n1_a; i++)
27 ;        for (long j = 0; j < n1_b; j++)
28 ;          for (long k = 0; k < n1_c; k++)
29 ;            for (long l = 0; l < n1_d; l++)
30 ;              A_1[i][j][k][l] += i + j + k + l;
31 ;      for (long i = 0; i < n2_a; i++)
32 ;        for (long j = 0; j < n2_b; j++)
33 ;          for (long k = 0; k < n2_c; k++)
34 ;            for (long l = 0; l < n2_d; l++)
35 ;              A_2[i][j][k][l] += i + j + k + l;
36 ;      for (long i = 0; i < n3_a; i++)
37 ;        for (long j = 0; j < n3_b; j++)
38 ;          for (long k = 0; k < n3_c; k++)
39 ;            for (long l = 0; l < n3_d; l++)
40 ;              A_3[i][j][k][l] += i + j + k + l;
41 ;      for (long i = 0; i < n4_a; i++)
42 ;        for (long j = 0; j < n4_b; j++)
43 ;          for (long k = 0; k < n4_c; k++)
44 ;            for (long l = 0; l < n4_d; l++)
45 ;              A_4[i][j][k][l] += i + j + k + l;
46 ;      for (long i = 0; i < n5_a; i++)
47 ;        for (long j = 0; j < n5_b; j++)
48 ;          for (long k = 0; k < n5_c; k++)
49 ;            for (long l = 0; l < n5_d; l++)
50 ;              A_5[i][j][k][l] += i + j + k + l;
51 ;      for (long i = 0; i < n6_a; i++)
52 ;        for (long j = 0; j < n6_b; j++)
53 ;          for (long k = 0; k < n6_c; k++)
54 ;            for (long l = 0; l < n6_d; l++)
55 ;              A_6[i][j][k][l] += i + j + k + l;
56 ;      for (long i = 0; i < n7_a; i++)
57 ;        for (long j = 0; j < n7_b; j++)
58 ;          for (long k = 0; k < n7_c; k++)
59 ;            for (long l = 0; l < n7_d; l++)
60 ;              A_7[i][j][k][l] += i + j + k + l;
61 ;      for (long i = 0; i < n8_a; i++)
62 ;        for (long j = 0; j < n8_b; j++)
63 ;          for (long k = 0; k < n8_c; k++)
64 ;            for (long l = 0; l < n8_d; l++)
65 ;              A_8[i][j][k][l] += i + j + k + l;
66 ;      for (long i = 0; i < n9_a; i++)
67 ;        for (long j = 0; j < n9_b; j++)
68 ;          for (long k = 0; k < n9_c; k++)
69 ;            for (long l = 0; l < n9_d; l++)
70 ;              A_9[i][j][k][l] += i + j + k + l;
71 ;    }
73 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
75 define void @foo(i64 %n1_a, i64 %n1_b, i64 %n1_c, i64 %n1_d, i64 %n2_a, i64 %n2_b, i64 %n2_c, i64 %n2_d, i64 %n3_a, i64 %n3_b, i64 %n3_c, i64 %n3_d, i64 %n4_a, i64 %n4_b, i64 %n4_c, i64 %n4_d, i64 %n5_a, i64 %n5_b, i64 %n5_c, i64 %n5_d, i64 %n6_a, i64 %n6_b, i64 %n6_c, i64 %n6_d, i64 %n7_a, i64 %n7_b, i64 %n7_c, i64 %n7_d, i64 %n8_a, i64 %n8_b, i64 %n8_c, i64 %n8_d, i64 %n9_a, i64 %n9_b, i64 %n9_c, i64 %n9_d, i64 %p1_b, i64 %p1_c, i64 %p1_d, i64 %p2_b, i64 %p2_c, i64 %p2_d, i64 %p3_b, i64 %p3_c, i64 %p3_d, i64 %p4_b, i64 %p4_c, i64 %p4_d, i64 %p5_b, i64 %p5_c, i64 %p5_d, i64 %p6_b, i64 %p6_c, i64 %p6_d, i64 %p7_b, i64 %p7_c, i64 %p7_d, i64 %p8_b, i64 %p8_c, i64 %p8_d, i64 %p9_b, i64 %p9_c, i64 %p9_d, ptr %A_1, ptr %A_2, ptr %A_3, ptr %A_4, ptr %A_5, ptr %A_6, ptr %A_7, ptr %A_8, ptr %A_9) {
76 bb:
77   br label %bb1
79 bb1:                                              ; preds = %bb37, %bb
80   %i.0 = phi i64 [ 0, %bb ], [ %tmp38, %bb37 ]
81   %tmp = icmp slt i64 %i.0, %n1_a
82   br i1 %tmp, label %bb2, label %bb39
84 bb2:                                              ; preds = %bb1
85   br label %bb3
87 bb3:                                              ; preds = %bb34, %bb2
88   %j.0 = phi i64 [ 0, %bb2 ], [ %tmp35, %bb34 ]
89   %tmp4 = icmp slt i64 %j.0, %n1_b
90   br i1 %tmp4, label %bb5, label %bb36
92 bb5:                                              ; preds = %bb3
93   br label %bb6
95 bb6:                                              ; preds = %bb31, %bb5
96   %k.0 = phi i64 [ 0, %bb5 ], [ %tmp32, %bb31 ]
97   %tmp7 = icmp slt i64 %k.0, %n1_c
98   br i1 %tmp7, label %bb8, label %bb33
100 bb8:                                              ; preds = %bb6
101   br label %bb9
103 bb9:                                              ; preds = %bb28, %bb8
104   %l.0 = phi i64 [ 0, %bb8 ], [ %tmp29, %bb28 ]
105   %tmp10 = icmp slt i64 %l.0, %n1_d
106   br i1 %tmp10, label %bb11, label %bb30
108 bb11:                                             ; preds = %bb9
109   %tmp12 = add nuw nsw i64 %i.0, %j.0
110   %tmp13 = add nsw i64 %tmp12, %k.0
111   %tmp14 = add nsw i64 %tmp13, %l.0
112   %tmp15 = sitofp i64 %tmp14 to float
113   %tmp16 = mul nuw i64 %p1_b, %p1_c
114   %tmp17 = mul nuw i64 %tmp16, %p1_d
115   %tmp18 = mul nsw i64 %i.0, %tmp17
116   %tmp19 = getelementptr inbounds float, ptr %A_1, i64 %tmp18
117   %tmp20 = mul nuw i64 %p1_c, %p1_d
118   %tmp21 = mul nsw i64 %j.0, %tmp20
119   %tmp22 = getelementptr inbounds float, ptr %tmp19, i64 %tmp21
120   %tmp23 = mul nsw i64 %k.0, %p1_d
121   %tmp24 = getelementptr inbounds float, ptr %tmp22, i64 %tmp23
122   %tmp25 = getelementptr inbounds float, ptr %tmp24, i64 %l.0
123   %tmp26 = load float, ptr %tmp25, align 4
124   %tmp27 = fadd float %tmp26, %tmp15
125   store float %tmp27, ptr %tmp25, align 4
126   br label %bb28
128 bb28:                                             ; preds = %bb11
129   %tmp29 = add nuw nsw i64 %l.0, 1
130   br label %bb9
132 bb30:                                             ; preds = %bb9
133   br label %bb31
135 bb31:                                             ; preds = %bb30
136   %tmp32 = add nuw nsw i64 %k.0, 1
137   br label %bb6
139 bb33:                                             ; preds = %bb6
140   br label %bb34
142 bb34:                                             ; preds = %bb33
143   %tmp35 = add nuw nsw i64 %j.0, 1
144   br label %bb3
146 bb36:                                             ; preds = %bb3
147   br label %bb37
149 bb37:                                             ; preds = %bb36
150   %tmp38 = add nuw nsw i64 %i.0, 1
151   br label %bb1
153 bb39:                                             ; preds = %bb1
154   br label %bb40
156 bb40:                                             ; preds = %bb77, %bb39
157   %i1.0 = phi i64 [ 0, %bb39 ], [ %tmp78, %bb77 ]
158   %tmp41 = icmp slt i64 %i1.0, %n2_a
159   br i1 %tmp41, label %bb42, label %bb79
161 bb42:                                             ; preds = %bb40
162   br label %bb43
164 bb43:                                             ; preds = %bb74, %bb42
165   %j2.0 = phi i64 [ 0, %bb42 ], [ %tmp75, %bb74 ]
166   %tmp44 = icmp slt i64 %j2.0, %n2_b
167   br i1 %tmp44, label %bb45, label %bb76
169 bb45:                                             ; preds = %bb43
170   br label %bb46
172 bb46:                                             ; preds = %bb71, %bb45
173   %k3.0 = phi i64 [ 0, %bb45 ], [ %tmp72, %bb71 ]
174   %tmp47 = icmp slt i64 %k3.0, %n2_c
175   br i1 %tmp47, label %bb48, label %bb73
177 bb48:                                             ; preds = %bb46
178   br label %bb49
180 bb49:                                             ; preds = %bb68, %bb48
181   %l4.0 = phi i64 [ 0, %bb48 ], [ %tmp69, %bb68 ]
182   %tmp50 = icmp slt i64 %l4.0, %n2_d
183   br i1 %tmp50, label %bb51, label %bb70
185 bb51:                                             ; preds = %bb49
186   %tmp52 = add nuw nsw i64 %i1.0, %j2.0
187   %tmp53 = add nsw i64 %tmp52, %k3.0
188   %tmp54 = add nsw i64 %tmp53, %l4.0
189   %tmp55 = sitofp i64 %tmp54 to float
190   %tmp56 = mul nuw i64 %p2_b, %p2_c
191   %tmp57 = mul nuw i64 %tmp56, %p2_d
192   %tmp58 = mul nsw i64 %i1.0, %tmp57
193   %tmp59 = getelementptr inbounds float, ptr %A_2, i64 %tmp58
194   %tmp60 = mul nuw i64 %p2_c, %p2_d
195   %tmp61 = mul nsw i64 %j2.0, %tmp60
196   %tmp62 = getelementptr inbounds float, ptr %tmp59, i64 %tmp61
197   %tmp63 = mul nsw i64 %k3.0, %p2_d
198   %tmp64 = getelementptr inbounds float, ptr %tmp62, i64 %tmp63
199   %tmp65 = getelementptr inbounds float, ptr %tmp64, i64 %l4.0
200   %tmp66 = load float, ptr %tmp65, align 4
201   %tmp67 = fadd float %tmp66, %tmp55
202   store float %tmp67, ptr %tmp65, align 4
203   br label %bb68
205 bb68:                                             ; preds = %bb51
206   %tmp69 = add nuw nsw i64 %l4.0, 1
207   br label %bb49
209 bb70:                                             ; preds = %bb49
210   br label %bb71
212 bb71:                                             ; preds = %bb70
213   %tmp72 = add nuw nsw i64 %k3.0, 1
214   br label %bb46
216 bb73:                                             ; preds = %bb46
217   br label %bb74
219 bb74:                                             ; preds = %bb73
220   %tmp75 = add nuw nsw i64 %j2.0, 1
221   br label %bb43
223 bb76:                                             ; preds = %bb43
224   br label %bb77
226 bb77:                                             ; preds = %bb76
227   %tmp78 = add nuw nsw i64 %i1.0, 1
228   br label %bb40
230 bb79:                                             ; preds = %bb40
231   br label %bb80
233 bb80:                                             ; preds = %bb117, %bb79
234   %i5.0 = phi i64 [ 0, %bb79 ], [ %tmp118, %bb117 ]
235   %tmp81 = icmp slt i64 %i5.0, %n3_a
236   br i1 %tmp81, label %bb82, label %bb119
238 bb82:                                             ; preds = %bb80
239   br label %bb83
241 bb83:                                             ; preds = %bb114, %bb82
242   %j6.0 = phi i64 [ 0, %bb82 ], [ %tmp115, %bb114 ]
243   %tmp84 = icmp slt i64 %j6.0, %n3_b
244   br i1 %tmp84, label %bb85, label %bb116
246 bb85:                                             ; preds = %bb83
247   br label %bb86
249 bb86:                                             ; preds = %bb111, %bb85
250   %k7.0 = phi i64 [ 0, %bb85 ], [ %tmp112, %bb111 ]
251   %tmp87 = icmp slt i64 %k7.0, %n3_c
252   br i1 %tmp87, label %bb88, label %bb113
254 bb88:                                             ; preds = %bb86
255   br label %bb89
257 bb89:                                             ; preds = %bb108, %bb88
258   %l8.0 = phi i64 [ 0, %bb88 ], [ %tmp109, %bb108 ]
259   %tmp90 = icmp slt i64 %l8.0, %n3_d
260   br i1 %tmp90, label %bb91, label %bb110
262 bb91:                                             ; preds = %bb89
263   %tmp92 = add nuw nsw i64 %i5.0, %j6.0
264   %tmp93 = add nsw i64 %tmp92, %k7.0
265   %tmp94 = add nsw i64 %tmp93, %l8.0
266   %tmp95 = sitofp i64 %tmp94 to float
267   %tmp96 = mul nuw i64 %p3_b, %p3_c
268   %tmp97 = mul nuw i64 %tmp96, %p3_d
269   %tmp98 = mul nsw i64 %i5.0, %tmp97
270   %tmp99 = getelementptr inbounds float, ptr %A_3, i64 %tmp98
271   %tmp100 = mul nuw i64 %p3_c, %p3_d
272   %tmp101 = mul nsw i64 %j6.0, %tmp100
273   %tmp102 = getelementptr inbounds float, ptr %tmp99, i64 %tmp101
274   %tmp103 = mul nsw i64 %k7.0, %p3_d
275   %tmp104 = getelementptr inbounds float, ptr %tmp102, i64 %tmp103
276   %tmp105 = getelementptr inbounds float, ptr %tmp104, i64 %l8.0
277   %tmp106 = load float, ptr %tmp105, align 4
278   %tmp107 = fadd float %tmp106, %tmp95
279   store float %tmp107, ptr %tmp105, align 4
280   br label %bb108
282 bb108:                                            ; preds = %bb91
283   %tmp109 = add nuw nsw i64 %l8.0, 1
284   br label %bb89
286 bb110:                                            ; preds = %bb89
287   br label %bb111
289 bb111:                                            ; preds = %bb110
290   %tmp112 = add nuw nsw i64 %k7.0, 1
291   br label %bb86
293 bb113:                                            ; preds = %bb86
294   br label %bb114
296 bb114:                                            ; preds = %bb113
297   %tmp115 = add nuw nsw i64 %j6.0, 1
298   br label %bb83
300 bb116:                                            ; preds = %bb83
301   br label %bb117
303 bb117:                                            ; preds = %bb116
304   %tmp118 = add nuw nsw i64 %i5.0, 1
305   br label %bb80
307 bb119:                                            ; preds = %bb80
308   br label %bb120
310 bb120:                                            ; preds = %bb157, %bb119
311   %i9.0 = phi i64 [ 0, %bb119 ], [ %tmp158, %bb157 ]
312   %tmp121 = icmp slt i64 %i9.0, %n4_a
313   br i1 %tmp121, label %bb122, label %bb159
315 bb122:                                            ; preds = %bb120
316   br label %bb123
318 bb123:                                            ; preds = %bb154, %bb122
319   %j10.0 = phi i64 [ 0, %bb122 ], [ %tmp155, %bb154 ]
320   %tmp124 = icmp slt i64 %j10.0, %n4_b
321   br i1 %tmp124, label %bb125, label %bb156
323 bb125:                                            ; preds = %bb123
324   br label %bb126
326 bb126:                                            ; preds = %bb151, %bb125
327   %k11.0 = phi i64 [ 0, %bb125 ], [ %tmp152, %bb151 ]
328   %tmp127 = icmp slt i64 %k11.0, %n4_c
329   br i1 %tmp127, label %bb128, label %bb153
331 bb128:                                            ; preds = %bb126
332   br label %bb129
334 bb129:                                            ; preds = %bb148, %bb128
335   %l12.0 = phi i64 [ 0, %bb128 ], [ %tmp149, %bb148 ]
336   %tmp130 = icmp slt i64 %l12.0, %n4_d
337   br i1 %tmp130, label %bb131, label %bb150
339 bb131:                                            ; preds = %bb129
340   %tmp132 = add nuw nsw i64 %i9.0, %j10.0
341   %tmp133 = add nsw i64 %tmp132, %k11.0
342   %tmp134 = add nsw i64 %tmp133, %l12.0
343   %tmp135 = sitofp i64 %tmp134 to float
344   %tmp136 = mul nuw i64 %p4_b, %p4_c
345   %tmp137 = mul nuw i64 %tmp136, %p4_d
346   %tmp138 = mul nsw i64 %i9.0, %tmp137
347   %tmp139 = getelementptr inbounds float, ptr %A_4, i64 %tmp138
348   %tmp140 = mul nuw i64 %p4_c, %p4_d
349   %tmp141 = mul nsw i64 %j10.0, %tmp140
350   %tmp142 = getelementptr inbounds float, ptr %tmp139, i64 %tmp141
351   %tmp143 = mul nsw i64 %k11.0, %p4_d
352   %tmp144 = getelementptr inbounds float, ptr %tmp142, i64 %tmp143
353   %tmp145 = getelementptr inbounds float, ptr %tmp144, i64 %l12.0
354   %tmp146 = load float, ptr %tmp145, align 4
355   %tmp147 = fadd float %tmp146, %tmp135
356   store float %tmp147, ptr %tmp145, align 4
357   br label %bb148
359 bb148:                                            ; preds = %bb131
360   %tmp149 = add nuw nsw i64 %l12.0, 1
361   br label %bb129
363 bb150:                                            ; preds = %bb129
364   br label %bb151
366 bb151:                                            ; preds = %bb150
367   %tmp152 = add nuw nsw i64 %k11.0, 1
368   br label %bb126
370 bb153:                                            ; preds = %bb126
371   br label %bb154
373 bb154:                                            ; preds = %bb153
374   %tmp155 = add nuw nsw i64 %j10.0, 1
375   br label %bb123
377 bb156:                                            ; preds = %bb123
378   br label %bb157
380 bb157:                                            ; preds = %bb156
381   %tmp158 = add nuw nsw i64 %i9.0, 1
382   br label %bb120
384 bb159:                                            ; preds = %bb120
385   br label %bb160
387 bb160:                                            ; preds = %bb197, %bb159
388   %i13.0 = phi i64 [ 0, %bb159 ], [ %tmp198, %bb197 ]
389   %tmp161 = icmp slt i64 %i13.0, %n5_a
390   br i1 %tmp161, label %bb162, label %bb199
392 bb162:                                            ; preds = %bb160
393   br label %bb163
395 bb163:                                            ; preds = %bb194, %bb162
396   %j14.0 = phi i64 [ 0, %bb162 ], [ %tmp195, %bb194 ]
397   %tmp164 = icmp slt i64 %j14.0, %n5_b
398   br i1 %tmp164, label %bb165, label %bb196
400 bb165:                                            ; preds = %bb163
401   br label %bb166
403 bb166:                                            ; preds = %bb191, %bb165
404   %k15.0 = phi i64 [ 0, %bb165 ], [ %tmp192, %bb191 ]
405   %tmp167 = icmp slt i64 %k15.0, %n5_c
406   br i1 %tmp167, label %bb168, label %bb193
408 bb168:                                            ; preds = %bb166
409   br label %bb169
411 bb169:                                            ; preds = %bb188, %bb168
412   %l16.0 = phi i64 [ 0, %bb168 ], [ %tmp189, %bb188 ]
413   %tmp170 = icmp slt i64 %l16.0, %n5_d
414   br i1 %tmp170, label %bb171, label %bb190
416 bb171:                                            ; preds = %bb169
417   %tmp172 = add nuw nsw i64 %i13.0, %j14.0
418   %tmp173 = add nsw i64 %tmp172, %k15.0
419   %tmp174 = add nsw i64 %tmp173, %l16.0
420   %tmp175 = sitofp i64 %tmp174 to float
421   %tmp176 = mul nuw i64 %p5_b, %p5_c
422   %tmp177 = mul nuw i64 %tmp176, %p5_d
423   %tmp178 = mul nsw i64 %i13.0, %tmp177
424   %tmp179 = getelementptr inbounds float, ptr %A_5, i64 %tmp178
425   %tmp180 = mul nuw i64 %p5_c, %p5_d
426   %tmp181 = mul nsw i64 %j14.0, %tmp180
427   %tmp182 = getelementptr inbounds float, ptr %tmp179, i64 %tmp181
428   %tmp183 = mul nsw i64 %k15.0, %p5_d
429   %tmp184 = getelementptr inbounds float, ptr %tmp182, i64 %tmp183
430   %tmp185 = getelementptr inbounds float, ptr %tmp184, i64 %l16.0
431   %tmp186 = load float, ptr %tmp185, align 4
432   %tmp187 = fadd float %tmp186, %tmp175
433   store float %tmp187, ptr %tmp185, align 4
434   br label %bb188
436 bb188:                                            ; preds = %bb171
437   %tmp189 = add nuw nsw i64 %l16.0, 1
438   br label %bb169
440 bb190:                                            ; preds = %bb169
441   br label %bb191
443 bb191:                                            ; preds = %bb190
444   %tmp192 = add nuw nsw i64 %k15.0, 1
445   br label %bb166
447 bb193:                                            ; preds = %bb166
448   br label %bb194
450 bb194:                                            ; preds = %bb193
451   %tmp195 = add nuw nsw i64 %j14.0, 1
452   br label %bb163
454 bb196:                                            ; preds = %bb163
455   br label %bb197
457 bb197:                                            ; preds = %bb196
458   %tmp198 = add nuw nsw i64 %i13.0, 1
459   br label %bb160
461 bb199:                                            ; preds = %bb160
462   br label %bb200
464 bb200:                                            ; preds = %bb237, %bb199
465   %i17.0 = phi i64 [ 0, %bb199 ], [ %tmp238, %bb237 ]
466   %tmp201 = icmp slt i64 %i17.0, %n6_a
467   br i1 %tmp201, label %bb202, label %bb239
469 bb202:                                            ; preds = %bb200
470   br label %bb203
472 bb203:                                            ; preds = %bb234, %bb202
473   %j18.0 = phi i64 [ 0, %bb202 ], [ %tmp235, %bb234 ]
474   %tmp204 = icmp slt i64 %j18.0, %n6_b
475   br i1 %tmp204, label %bb205, label %bb236
477 bb205:                                            ; preds = %bb203
478   br label %bb206
480 bb206:                                            ; preds = %bb231, %bb205
481   %k19.0 = phi i64 [ 0, %bb205 ], [ %tmp232, %bb231 ]
482   %tmp207 = icmp slt i64 %k19.0, %n6_c
483   br i1 %tmp207, label %bb208, label %bb233
485 bb208:                                            ; preds = %bb206
486   br label %bb209
488 bb209:                                            ; preds = %bb228, %bb208
489   %l20.0 = phi i64 [ 0, %bb208 ], [ %tmp229, %bb228 ]
490   %tmp210 = icmp slt i64 %l20.0, %n6_d
491   br i1 %tmp210, label %bb211, label %bb230
493 bb211:                                            ; preds = %bb209
494   %tmp212 = add nuw nsw i64 %i17.0, %j18.0
495   %tmp213 = add nsw i64 %tmp212, %k19.0
496   %tmp214 = add nsw i64 %tmp213, %l20.0
497   %tmp215 = sitofp i64 %tmp214 to float
498   %tmp216 = mul nuw i64 %p6_b, %p6_c
499   %tmp217 = mul nuw i64 %tmp216, %p6_d
500   %tmp218 = mul nsw i64 %i17.0, %tmp217
501   %tmp219 = getelementptr inbounds float, ptr %A_6, i64 %tmp218
502   %tmp220 = mul nuw i64 %p6_c, %p6_d
503   %tmp221 = mul nsw i64 %j18.0, %tmp220
504   %tmp222 = getelementptr inbounds float, ptr %tmp219, i64 %tmp221
505   %tmp223 = mul nsw i64 %k19.0, %p6_d
506   %tmp224 = getelementptr inbounds float, ptr %tmp222, i64 %tmp223
507   %tmp225 = getelementptr inbounds float, ptr %tmp224, i64 %l20.0
508   %tmp226 = load float, ptr %tmp225, align 4
509   %tmp227 = fadd float %tmp226, %tmp215
510   store float %tmp227, ptr %tmp225, align 4
511   br label %bb228
513 bb228:                                            ; preds = %bb211
514   %tmp229 = add nuw nsw i64 %l20.0, 1
515   br label %bb209
517 bb230:                                            ; preds = %bb209
518   br label %bb231
520 bb231:                                            ; preds = %bb230
521   %tmp232 = add nuw nsw i64 %k19.0, 1
522   br label %bb206
524 bb233:                                            ; preds = %bb206
525   br label %bb234
527 bb234:                                            ; preds = %bb233
528   %tmp235 = add nuw nsw i64 %j18.0, 1
529   br label %bb203
531 bb236:                                            ; preds = %bb203
532   br label %bb237
534 bb237:                                            ; preds = %bb236
535   %tmp238 = add nuw nsw i64 %i17.0, 1
536   br label %bb200
538 bb239:                                            ; preds = %bb200
539   br label %bb240
541 bb240:                                            ; preds = %bb277, %bb239
542   %i21.0 = phi i64 [ 0, %bb239 ], [ %tmp278, %bb277 ]
543   %tmp241 = icmp slt i64 %i21.0, %n7_a
544   br i1 %tmp241, label %bb242, label %bb279
546 bb242:                                            ; preds = %bb240
547   br label %bb243
549 bb243:                                            ; preds = %bb274, %bb242
550   %j22.0 = phi i64 [ 0, %bb242 ], [ %tmp275, %bb274 ]
551   %tmp244 = icmp slt i64 %j22.0, %n7_b
552   br i1 %tmp244, label %bb245, label %bb276
554 bb245:                                            ; preds = %bb243
555   br label %bb246
557 bb246:                                            ; preds = %bb271, %bb245
558   %k23.0 = phi i64 [ 0, %bb245 ], [ %tmp272, %bb271 ]
559   %tmp247 = icmp slt i64 %k23.0, %n7_c
560   br i1 %tmp247, label %bb248, label %bb273
562 bb248:                                            ; preds = %bb246
563   br label %bb249
565 bb249:                                            ; preds = %bb268, %bb248
566   %l24.0 = phi i64 [ 0, %bb248 ], [ %tmp269, %bb268 ]
567   %tmp250 = icmp slt i64 %l24.0, %n7_d
568   br i1 %tmp250, label %bb251, label %bb270
570 bb251:                                            ; preds = %bb249
571   %tmp252 = add nuw nsw i64 %i21.0, %j22.0
572   %tmp253 = add nsw i64 %tmp252, %k23.0
573   %tmp254 = add nsw i64 %tmp253, %l24.0
574   %tmp255 = sitofp i64 %tmp254 to float
575   %tmp256 = mul nuw i64 %p7_b, %p7_c
576   %tmp257 = mul nuw i64 %tmp256, %p7_d
577   %tmp258 = mul nsw i64 %i21.0, %tmp257
578   %tmp259 = getelementptr inbounds float, ptr %A_7, i64 %tmp258
579   %tmp260 = mul nuw i64 %p7_c, %p7_d
580   %tmp261 = mul nsw i64 %j22.0, %tmp260
581   %tmp262 = getelementptr inbounds float, ptr %tmp259, i64 %tmp261
582   %tmp263 = mul nsw i64 %k23.0, %p7_d
583   %tmp264 = getelementptr inbounds float, ptr %tmp262, i64 %tmp263
584   %tmp265 = getelementptr inbounds float, ptr %tmp264, i64 %l24.0
585   %tmp266 = load float, ptr %tmp265, align 4
586   %tmp267 = fadd float %tmp266, %tmp255
587   store float %tmp267, ptr %tmp265, align 4
588   br label %bb268
590 bb268:                                            ; preds = %bb251
591   %tmp269 = add nuw nsw i64 %l24.0, 1
592   br label %bb249
594 bb270:                                            ; preds = %bb249
595   br label %bb271
597 bb271:                                            ; preds = %bb270
598   %tmp272 = add nuw nsw i64 %k23.0, 1
599   br label %bb246
601 bb273:                                            ; preds = %bb246
602   br label %bb274
604 bb274:                                            ; preds = %bb273
605   %tmp275 = add nuw nsw i64 %j22.0, 1
606   br label %bb243
608 bb276:                                            ; preds = %bb243
609   br label %bb277
611 bb277:                                            ; preds = %bb276
612   %tmp278 = add nuw nsw i64 %i21.0, 1
613   br label %bb240
615 bb279:                                            ; preds = %bb240
616   br label %bb280
618 bb280:                                            ; preds = %bb317, %bb279
619   %i25.0 = phi i64 [ 0, %bb279 ], [ %tmp318, %bb317 ]
620   %tmp281 = icmp slt i64 %i25.0, %n8_a
621   br i1 %tmp281, label %bb282, label %bb319
623 bb282:                                            ; preds = %bb280
624   br label %bb283
626 bb283:                                            ; preds = %bb314, %bb282
627   %j26.0 = phi i64 [ 0, %bb282 ], [ %tmp315, %bb314 ]
628   %tmp284 = icmp slt i64 %j26.0, %n8_b
629   br i1 %tmp284, label %bb285, label %bb316
631 bb285:                                            ; preds = %bb283
632   br label %bb286
634 bb286:                                            ; preds = %bb311, %bb285
635   %k27.0 = phi i64 [ 0, %bb285 ], [ %tmp312, %bb311 ]
636   %tmp287 = icmp slt i64 %k27.0, %n8_c
637   br i1 %tmp287, label %bb288, label %bb313
639 bb288:                                            ; preds = %bb286
640   br label %bb289
642 bb289:                                            ; preds = %bb308, %bb288
643   %l28.0 = phi i64 [ 0, %bb288 ], [ %tmp309, %bb308 ]
644   %tmp290 = icmp slt i64 %l28.0, %n8_d
645   br i1 %tmp290, label %bb291, label %bb310
647 bb291:                                            ; preds = %bb289
648   %tmp292 = add nuw nsw i64 %i25.0, %j26.0
649   %tmp293 = add nsw i64 %tmp292, %k27.0
650   %tmp294 = add nsw i64 %tmp293, %l28.0
651   %tmp295 = sitofp i64 %tmp294 to float
652   %tmp296 = mul nuw i64 %p8_b, %p8_c
653   %tmp297 = mul nuw i64 %tmp296, %p8_d
654   %tmp298 = mul nsw i64 %i25.0, %tmp297
655   %tmp299 = getelementptr inbounds float, ptr %A_8, i64 %tmp298
656   %tmp300 = mul nuw i64 %p8_c, %p8_d
657   %tmp301 = mul nsw i64 %j26.0, %tmp300
658   %tmp302 = getelementptr inbounds float, ptr %tmp299, i64 %tmp301
659   %tmp303 = mul nsw i64 %k27.0, %p8_d
660   %tmp304 = getelementptr inbounds float, ptr %tmp302, i64 %tmp303
661   %tmp305 = getelementptr inbounds float, ptr %tmp304, i64 %l28.0
662   %tmp306 = load float, ptr %tmp305, align 4
663   %tmp307 = fadd float %tmp306, %tmp295
664   store float %tmp307, ptr %tmp305, align 4
665   br label %bb308
667 bb308:                                            ; preds = %bb291
668   %tmp309 = add nuw nsw i64 %l28.0, 1
669   br label %bb289
671 bb310:                                            ; preds = %bb289
672   br label %bb311
674 bb311:                                            ; preds = %bb310
675   %tmp312 = add nuw nsw i64 %k27.0, 1
676   br label %bb286
678 bb313:                                            ; preds = %bb286
679   br label %bb314
681 bb314:                                            ; preds = %bb313
682   %tmp315 = add nuw nsw i64 %j26.0, 1
683   br label %bb283
685 bb316:                                            ; preds = %bb283
686   br label %bb317
688 bb317:                                            ; preds = %bb316
689   %tmp318 = add nuw nsw i64 %i25.0, 1
690   br label %bb280
692 bb319:                                            ; preds = %bb280
693   br label %bb320
695 bb320:                                            ; preds = %bb357, %bb319
696   %i29.0 = phi i64 [ 0, %bb319 ], [ %tmp358, %bb357 ]
697   %tmp321 = icmp slt i64 %i29.0, %n9_a
698   br i1 %tmp321, label %bb322, label %bb359
700 bb322:                                            ; preds = %bb320
701   br label %bb323
703 bb323:                                            ; preds = %bb354, %bb322
704   %j30.0 = phi i64 [ 0, %bb322 ], [ %tmp355, %bb354 ]
705   %tmp324 = icmp slt i64 %j30.0, %n9_b
706   br i1 %tmp324, label %bb325, label %bb356
708 bb325:                                            ; preds = %bb323
709   br label %bb326
711 bb326:                                            ; preds = %bb351, %bb325
712   %k31.0 = phi i64 [ 0, %bb325 ], [ %tmp352, %bb351 ]
713   %tmp327 = icmp slt i64 %k31.0, %n9_c
714   br i1 %tmp327, label %bb328, label %bb353
716 bb328:                                            ; preds = %bb326
717   br label %bb329
719 bb329:                                            ; preds = %bb348, %bb328
720   %l32.0 = phi i64 [ 0, %bb328 ], [ %tmp349, %bb348 ]
721   %tmp330 = icmp slt i64 %l32.0, %n9_d
722   br i1 %tmp330, label %bb331, label %bb350
724 bb331:                                            ; preds = %bb329
725   %tmp332 = add nuw nsw i64 %i29.0, %j30.0
726   %tmp333 = add nsw i64 %tmp332, %k31.0
727   %tmp334 = add nsw i64 %tmp333, %l32.0
728   %tmp335 = sitofp i64 %tmp334 to float
729   %tmp336 = mul nuw i64 %p9_b, %p9_c
730   %tmp337 = mul nuw i64 %tmp336, %p9_d
731   %tmp338 = mul nsw i64 %i29.0, %tmp337
732   %tmp339 = getelementptr inbounds float, ptr %A_9, i64 %tmp338
733   %tmp340 = mul nuw i64 %p9_c, %p9_d
734   %tmp341 = mul nsw i64 %j30.0, %tmp340
735   %tmp342 = getelementptr inbounds float, ptr %tmp339, i64 %tmp341
736   %tmp343 = mul nsw i64 %k31.0, %p9_d
737   %tmp344 = getelementptr inbounds float, ptr %tmp342, i64 %tmp343
738   %tmp345 = getelementptr inbounds float, ptr %tmp344, i64 %l32.0
739   %tmp346 = load float, ptr %tmp345, align 4
740   %tmp347 = fadd float %tmp346, %tmp335
741   store float %tmp347, ptr %tmp345, align 4
742   br label %bb348
744 bb348:                                            ; preds = %bb331
745   %tmp349 = add nuw nsw i64 %l32.0, 1
746   br label %bb329
748 bb350:                                            ; preds = %bb329
749   br label %bb351
751 bb351:                                            ; preds = %bb350
752   %tmp352 = add nuw nsw i64 %k31.0, 1
753   br label %bb326
755 bb353:                                            ; preds = %bb326
756   br label %bb354
758 bb354:                                            ; preds = %bb353
759   %tmp355 = add nuw nsw i64 %j30.0, 1
760   br label %bb323
762 bb356:                                            ; preds = %bb323
763   br label %bb357
765 bb357:                                            ; preds = %bb356
766   %tmp358 = add nuw nsw i64 %i29.0, 1
767   br label %bb320
769 bb359:                                            ; preds = %bb320
770   ret void