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