1; RUN: opt %loadPolly -analyze -polly-scops -polly-ignore-aliasing \
2; RUN:    < %s | FileCheck %s
3
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 }
8
9
10;
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;    }
72;
73target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
74
75define 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, float* %A_1, float* %A_2, float* %A_3, float* %A_4, float* %A_5, float* %A_6, float* %A_7, float* %A_8, float* %A_9) {
76bb:
77  br label %bb1
78
79bb1:                                              ; 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
83
84bb2:                                              ; preds = %bb1
85  br label %bb3
86
87bb3:                                              ; 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
91
92bb5:                                              ; preds = %bb3
93  br label %bb6
94
95bb6:                                              ; 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
99
100bb8:                                              ; preds = %bb6
101  br label %bb9
102
103bb9:                                              ; 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
107
108bb11:                                             ; 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, float* %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, float* %tmp19, i64 %tmp21
120  %tmp23 = mul nsw i64 %k.0, %p1_d
121  %tmp24 = getelementptr inbounds float, float* %tmp22, i64 %tmp23
122  %tmp25 = getelementptr inbounds float, float* %tmp24, i64 %l.0
123  %tmp26 = load float, float* %tmp25, align 4
124  %tmp27 = fadd float %tmp26, %tmp15
125  store float %tmp27, float* %tmp25, align 4
126  br label %bb28
127
128bb28:                                             ; preds = %bb11
129  %tmp29 = add nuw nsw i64 %l.0, 1
130  br label %bb9
131
132bb30:                                             ; preds = %bb9
133  br label %bb31
134
135bb31:                                             ; preds = %bb30
136  %tmp32 = add nuw nsw i64 %k.0, 1
137  br label %bb6
138
139bb33:                                             ; preds = %bb6
140  br label %bb34
141
142bb34:                                             ; preds = %bb33
143  %tmp35 = add nuw nsw i64 %j.0, 1
144  br label %bb3
145
146bb36:                                             ; preds = %bb3
147  br label %bb37
148
149bb37:                                             ; preds = %bb36
150  %tmp38 = add nuw nsw i64 %i.0, 1
151  br label %bb1
152
153bb39:                                             ; preds = %bb1
154  br label %bb40
155
156bb40:                                             ; 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
160
161bb42:                                             ; preds = %bb40
162  br label %bb43
163
164bb43:                                             ; 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
168
169bb45:                                             ; preds = %bb43
170  br label %bb46
171
172bb46:                                             ; 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
176
177bb48:                                             ; preds = %bb46
178  br label %bb49
179
180bb49:                                             ; 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
184
185bb51:                                             ; 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, float* %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, float* %tmp59, i64 %tmp61
197  %tmp63 = mul nsw i64 %k3.0, %p2_d
198  %tmp64 = getelementptr inbounds float, float* %tmp62, i64 %tmp63
199  %tmp65 = getelementptr inbounds float, float* %tmp64, i64 %l4.0
200  %tmp66 = load float, float* %tmp65, align 4
201  %tmp67 = fadd float %tmp66, %tmp55
202  store float %tmp67, float* %tmp65, align 4
203  br label %bb68
204
205bb68:                                             ; preds = %bb51
206  %tmp69 = add nuw nsw i64 %l4.0, 1
207  br label %bb49
208
209bb70:                                             ; preds = %bb49
210  br label %bb71
211
212bb71:                                             ; preds = %bb70
213  %tmp72 = add nuw nsw i64 %k3.0, 1
214  br label %bb46
215
216bb73:                                             ; preds = %bb46
217  br label %bb74
218
219bb74:                                             ; preds = %bb73
220  %tmp75 = add nuw nsw i64 %j2.0, 1
221  br label %bb43
222
223bb76:                                             ; preds = %bb43
224  br label %bb77
225
226bb77:                                             ; preds = %bb76
227  %tmp78 = add nuw nsw i64 %i1.0, 1
228  br label %bb40
229
230bb79:                                             ; preds = %bb40
231  br label %bb80
232
233bb80:                                             ; 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
237
238bb82:                                             ; preds = %bb80
239  br label %bb83
240
241bb83:                                             ; 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
245
246bb85:                                             ; preds = %bb83
247  br label %bb86
248
249bb86:                                             ; 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
253
254bb88:                                             ; preds = %bb86
255  br label %bb89
256
257bb89:                                             ; 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
261
262bb91:                                             ; 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, float* %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, float* %tmp99, i64 %tmp101
274  %tmp103 = mul nsw i64 %k7.0, %p3_d
275  %tmp104 = getelementptr inbounds float, float* %tmp102, i64 %tmp103
276  %tmp105 = getelementptr inbounds float, float* %tmp104, i64 %l8.0
277  %tmp106 = load float, float* %tmp105, align 4
278  %tmp107 = fadd float %tmp106, %tmp95
279  store float %tmp107, float* %tmp105, align 4
280  br label %bb108
281
282bb108:                                            ; preds = %bb91
283  %tmp109 = add nuw nsw i64 %l8.0, 1
284  br label %bb89
285
286bb110:                                            ; preds = %bb89
287  br label %bb111
288
289bb111:                                            ; preds = %bb110
290  %tmp112 = add nuw nsw i64 %k7.0, 1
291  br label %bb86
292
293bb113:                                            ; preds = %bb86
294  br label %bb114
295
296bb114:                                            ; preds = %bb113
297  %tmp115 = add nuw nsw i64 %j6.0, 1
298  br label %bb83
299
300bb116:                                            ; preds = %bb83
301  br label %bb117
302
303bb117:                                            ; preds = %bb116
304  %tmp118 = add nuw nsw i64 %i5.0, 1
305  br label %bb80
306
307bb119:                                            ; preds = %bb80
308  br label %bb120
309
310bb120:                                            ; 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
314
315bb122:                                            ; preds = %bb120
316  br label %bb123
317
318bb123:                                            ; 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
322
323bb125:                                            ; preds = %bb123
324  br label %bb126
325
326bb126:                                            ; 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
330
331bb128:                                            ; preds = %bb126
332  br label %bb129
333
334bb129:                                            ; 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
338
339bb131:                                            ; 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, float* %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, float* %tmp139, i64 %tmp141
351  %tmp143 = mul nsw i64 %k11.0, %p4_d
352  %tmp144 = getelementptr inbounds float, float* %tmp142, i64 %tmp143
353  %tmp145 = getelementptr inbounds float, float* %tmp144, i64 %l12.0
354  %tmp146 = load float, float* %tmp145, align 4
355  %tmp147 = fadd float %tmp146, %tmp135
356  store float %tmp147, float* %tmp145, align 4
357  br label %bb148
358
359bb148:                                            ; preds = %bb131
360  %tmp149 = add nuw nsw i64 %l12.0, 1
361  br label %bb129
362
363bb150:                                            ; preds = %bb129
364  br label %bb151
365
366bb151:                                            ; preds = %bb150
367  %tmp152 = add nuw nsw i64 %k11.0, 1
368  br label %bb126
369
370bb153:                                            ; preds = %bb126
371  br label %bb154
372
373bb154:                                            ; preds = %bb153
374  %tmp155 = add nuw nsw i64 %j10.0, 1
375  br label %bb123
376
377bb156:                                            ; preds = %bb123
378  br label %bb157
379
380bb157:                                            ; preds = %bb156
381  %tmp158 = add nuw nsw i64 %i9.0, 1
382  br label %bb120
383
384bb159:                                            ; preds = %bb120
385  br label %bb160
386
387bb160:                                            ; 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
391
392bb162:                                            ; preds = %bb160
393  br label %bb163
394
395bb163:                                            ; 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
399
400bb165:                                            ; preds = %bb163
401  br label %bb166
402
403bb166:                                            ; 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
407
408bb168:                                            ; preds = %bb166
409  br label %bb169
410
411bb169:                                            ; 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
415
416bb171:                                            ; 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, float* %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, float* %tmp179, i64 %tmp181
428  %tmp183 = mul nsw i64 %k15.0, %p5_d
429  %tmp184 = getelementptr inbounds float, float* %tmp182, i64 %tmp183
430  %tmp185 = getelementptr inbounds float, float* %tmp184, i64 %l16.0
431  %tmp186 = load float, float* %tmp185, align 4
432  %tmp187 = fadd float %tmp186, %tmp175
433  store float %tmp187, float* %tmp185, align 4
434  br label %bb188
435
436bb188:                                            ; preds = %bb171
437  %tmp189 = add nuw nsw i64 %l16.0, 1
438  br label %bb169
439
440bb190:                                            ; preds = %bb169
441  br label %bb191
442
443bb191:                                            ; preds = %bb190
444  %tmp192 = add nuw nsw i64 %k15.0, 1
445  br label %bb166
446
447bb193:                                            ; preds = %bb166
448  br label %bb194
449
450bb194:                                            ; preds = %bb193
451  %tmp195 = add nuw nsw i64 %j14.0, 1
452  br label %bb163
453
454bb196:                                            ; preds = %bb163
455  br label %bb197
456
457bb197:                                            ; preds = %bb196
458  %tmp198 = add nuw nsw i64 %i13.0, 1
459  br label %bb160
460
461bb199:                                            ; preds = %bb160
462  br label %bb200
463
464bb200:                                            ; 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
468
469bb202:                                            ; preds = %bb200
470  br label %bb203
471
472bb203:                                            ; 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
476
477bb205:                                            ; preds = %bb203
478  br label %bb206
479
480bb206:                                            ; 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
484
485bb208:                                            ; preds = %bb206
486  br label %bb209
487
488bb209:                                            ; 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
492
493bb211:                                            ; 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, float* %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, float* %tmp219, i64 %tmp221
505  %tmp223 = mul nsw i64 %k19.0, %p6_d
506  %tmp224 = getelementptr inbounds float, float* %tmp222, i64 %tmp223
507  %tmp225 = getelementptr inbounds float, float* %tmp224, i64 %l20.0
508  %tmp226 = load float, float* %tmp225, align 4
509  %tmp227 = fadd float %tmp226, %tmp215
510  store float %tmp227, float* %tmp225, align 4
511  br label %bb228
512
513bb228:                                            ; preds = %bb211
514  %tmp229 = add nuw nsw i64 %l20.0, 1
515  br label %bb209
516
517bb230:                                            ; preds = %bb209
518  br label %bb231
519
520bb231:                                            ; preds = %bb230
521  %tmp232 = add nuw nsw i64 %k19.0, 1
522  br label %bb206
523
524bb233:                                            ; preds = %bb206
525  br label %bb234
526
527bb234:                                            ; preds = %bb233
528  %tmp235 = add nuw nsw i64 %j18.0, 1
529  br label %bb203
530
531bb236:                                            ; preds = %bb203
532  br label %bb237
533
534bb237:                                            ; preds = %bb236
535  %tmp238 = add nuw nsw i64 %i17.0, 1
536  br label %bb200
537
538bb239:                                            ; preds = %bb200
539  br label %bb240
540
541bb240:                                            ; 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
545
546bb242:                                            ; preds = %bb240
547  br label %bb243
548
549bb243:                                            ; 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
553
554bb245:                                            ; preds = %bb243
555  br label %bb246
556
557bb246:                                            ; 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
561
562bb248:                                            ; preds = %bb246
563  br label %bb249
564
565bb249:                                            ; 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
569
570bb251:                                            ; 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, float* %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, float* %tmp259, i64 %tmp261
582  %tmp263 = mul nsw i64 %k23.0, %p7_d
583  %tmp264 = getelementptr inbounds float, float* %tmp262, i64 %tmp263
584  %tmp265 = getelementptr inbounds float, float* %tmp264, i64 %l24.0
585  %tmp266 = load float, float* %tmp265, align 4
586  %tmp267 = fadd float %tmp266, %tmp255
587  store float %tmp267, float* %tmp265, align 4
588  br label %bb268
589
590bb268:                                            ; preds = %bb251
591  %tmp269 = add nuw nsw i64 %l24.0, 1
592  br label %bb249
593
594bb270:                                            ; preds = %bb249
595  br label %bb271
596
597bb271:                                            ; preds = %bb270
598  %tmp272 = add nuw nsw i64 %k23.0, 1
599  br label %bb246
600
601bb273:                                            ; preds = %bb246
602  br label %bb274
603
604bb274:                                            ; preds = %bb273
605  %tmp275 = add nuw nsw i64 %j22.0, 1
606  br label %bb243
607
608bb276:                                            ; preds = %bb243
609  br label %bb277
610
611bb277:                                            ; preds = %bb276
612  %tmp278 = add nuw nsw i64 %i21.0, 1
613  br label %bb240
614
615bb279:                                            ; preds = %bb240
616  br label %bb280
617
618bb280:                                            ; 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
622
623bb282:                                            ; preds = %bb280
624  br label %bb283
625
626bb283:                                            ; 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
630
631bb285:                                            ; preds = %bb283
632  br label %bb286
633
634bb286:                                            ; 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
638
639bb288:                                            ; preds = %bb286
640  br label %bb289
641
642bb289:                                            ; 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
646
647bb291:                                            ; 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, float* %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, float* %tmp299, i64 %tmp301
659  %tmp303 = mul nsw i64 %k27.0, %p8_d
660  %tmp304 = getelementptr inbounds float, float* %tmp302, i64 %tmp303
661  %tmp305 = getelementptr inbounds float, float* %tmp304, i64 %l28.0
662  %tmp306 = load float, float* %tmp305, align 4
663  %tmp307 = fadd float %tmp306, %tmp295
664  store float %tmp307, float* %tmp305, align 4
665  br label %bb308
666
667bb308:                                            ; preds = %bb291
668  %tmp309 = add nuw nsw i64 %l28.0, 1
669  br label %bb289
670
671bb310:                                            ; preds = %bb289
672  br label %bb311
673
674bb311:                                            ; preds = %bb310
675  %tmp312 = add nuw nsw i64 %k27.0, 1
676  br label %bb286
677
678bb313:                                            ; preds = %bb286
679  br label %bb314
680
681bb314:                                            ; preds = %bb313
682  %tmp315 = add nuw nsw i64 %j26.0, 1
683  br label %bb283
684
685bb316:                                            ; preds = %bb283
686  br label %bb317
687
688bb317:                                            ; preds = %bb316
689  %tmp318 = add nuw nsw i64 %i25.0, 1
690  br label %bb280
691
692bb319:                                            ; preds = %bb280
693  br label %bb320
694
695bb320:                                            ; 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
699
700bb322:                                            ; preds = %bb320
701  br label %bb323
702
703bb323:                                            ; 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
707
708bb325:                                            ; preds = %bb323
709  br label %bb326
710
711bb326:                                            ; 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
715
716bb328:                                            ; preds = %bb326
717  br label %bb329
718
719bb329:                                            ; 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
723
724bb331:                                            ; 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, float* %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, float* %tmp339, i64 %tmp341
736  %tmp343 = mul nsw i64 %k31.0, %p9_d
737  %tmp344 = getelementptr inbounds float, float* %tmp342, i64 %tmp343
738  %tmp345 = getelementptr inbounds float, float* %tmp344, i64 %l32.0
739  %tmp346 = load float, float* %tmp345, align 4
740  %tmp347 = fadd float %tmp346, %tmp335
741  store float %tmp347, float* %tmp345, align 4
742  br label %bb348
743
744bb348:                                            ; preds = %bb331
745  %tmp349 = add nuw nsw i64 %l32.0, 1
746  br label %bb329
747
748bb350:                                            ; preds = %bb329
749  br label %bb351
750
751bb351:                                            ; preds = %bb350
752  %tmp352 = add nuw nsw i64 %k31.0, 1
753  br label %bb326
754
755bb353:                                            ; preds = %bb326
756  br label %bb354
757
758bb354:                                            ; preds = %bb353
759  %tmp355 = add nuw nsw i64 %j30.0, 1
760  br label %bb323
761
762bb356:                                            ; preds = %bb323
763  br label %bb357
764
765bb357:                                            ; preds = %bb356
766  %tmp358 = add nuw nsw i64 %i29.0, 1
767  br label %bb320
768
769bb359:                                            ; preds = %bb320
770  ret void
771}
772