Home | History | Annotate | Download | only in PowerPC
      1 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7
      2 
      3 target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
      4 target triple = "powerpc64-unknown-linux-gnu"
      5 
      6 ; This test case triggers several functions related to cr spilling, both in
      7 ; frame lowering and to handle cr register pressure. When the register kill
      8 ; flags were not being set correctly, this would cause the register scavenger to
      9 ; assert.
     10 
     11 @SetupFastFullPelSearch.orig_pels = external unnamed_addr global [768 x i16], align 2
     12 @weight_luma = external global i32
     13 @offset_luma = external global i32
     14 @wp_luma_round = external global i32, align 4
     15 @luma_log_weight_denom = external global i32, align 4
     16 
     17 define void @SetupFastFullPelSearch() #0 {
     18 entry:
     19   %mul10 = mul nsw i32 undef, undef
     20   br i1 undef, label %land.end, label %land.lhs.true
     21 
     22 land.lhs.true:                                    ; preds = %entry
     23   switch i32 0, label %land.end [
     24     i32 0, label %land.rhs
     25     i32 3, label %land.rhs
     26   ]
     27 
     28 land.rhs:                                         ; preds = %land.lhs.true, %land.lhs.true
     29   %tobool21 = icmp ne i32 undef, 0
     30   br label %land.end
     31 
     32 land.end:                                         ; preds = %land.rhs, %land.lhs.true, %entry
     33   %0 = phi i1 [ %tobool21, %land.rhs ], [ false, %land.lhs.true ], [ false, %entry ]
     34   %cond = load i32*, i32** undef, align 8
     35   br i1 undef, label %if.then95, label %for.body.lr.ph
     36 
     37 if.then95:                                        ; preds = %land.end
     38   %cmp.i4.i1427 = icmp slt i32 undef, undef
     39   br label %for.body.lr.ph
     40 
     41 for.body.lr.ph:                                   ; preds = %if.then95, %land.end
     42   br label %for.body
     43 
     44 for.body:                                         ; preds = %for.body, %for.body.lr.ph
     45   br i1 undef, label %for.body, label %for.body252
     46 
     47 for.body252:                                      ; preds = %for.inc997, %for.body
     48   %shl263 = add i32 undef, 80
     49   br i1 %0, label %for.cond286.preheader, label %for.cond713.preheader
     50 
     51 for.cond286.preheader:                            ; preds = %for.body252
     52   br label %for.cond290.preheader
     53 
     54 for.cond290.preheader:                            ; preds = %for.end520, %for.cond286.preheader
     55   %srcptr.31595 = phi i16* [ getelementptr inbounds ([768 x i16], [768 x i16]* @SetupFastFullPelSearch.orig_pels, i64 0, i64 0), %for.cond286.preheader ], [ null, %for.end520 ]
     56   %1 = load i32, i32* undef, align 4
     57   %2 = load i32, i32* @weight_luma, align 4
     58   %3 = load i32, i32* @wp_luma_round, align 4
     59   %4 = load i32, i32* @luma_log_weight_denom, align 4
     60   %5 = load i32, i32* @offset_luma, align 4
     61   %incdec.ptr502.sum = add i64 undef, 16
     62   br label %for.body293
     63 
     64 for.body293:                                      ; preds = %for.body293, %for.cond290.preheader
     65   %srcptr.41591 = phi i16* [ %srcptr.31595, %for.cond290.preheader ], [ undef, %for.body293 ]
     66   %refptr.11590 = phi i16* [ undef, %for.cond290.preheader ], [ %add.ptr517, %for.body293 ]
     67   %LineSadBlk0.01588 = phi i32 [ 0, %for.cond290.preheader ], [ %add346, %for.body293 ]
     68   %LineSadBlk1.01587 = phi i32 [ 0, %for.cond290.preheader ], [ %add402, %for.body293 ]
     69   %LineSadBlk3.01586 = phi i32 [ 0, %for.cond290.preheader ], [ %add514, %for.body293 ]
     70   %LineSadBlk2.01585 = phi i32 [ 0, %for.cond290.preheader ], [ %add458, %for.body293 ]
     71   %6 = load i16, i16* %refptr.11590, align 2
     72   %conv294 = zext i16 %6 to i32
     73   %mul295 = mul nsw i32 %conv294, %2
     74   %add296 = add nsw i32 %mul295, %3
     75   %shr = ashr i32 %add296, %4
     76   %add297 = add nsw i32 %shr, %5
     77   %cmp.i.i1513 = icmp sgt i32 %add297, 0
     78   %cond.i.i1514 = select i1 %cmp.i.i1513, i32 %add297, i32 0
     79   %cmp.i4.i1515 = icmp slt i32 %cond.i.i1514, %1
     80   %cond.i5.i1516 = select i1 %cmp.i4.i1515, i32 %cond.i.i1514, i32 %1
     81   %7 = load i16, i16* %srcptr.41591, align 2
     82   %conv300 = zext i16 %7 to i32
     83   %sub301 = sub nsw i32 %cond.i5.i1516, %conv300
     84   %idxprom302 = sext i32 %sub301 to i64
     85   %arrayidx303 = getelementptr inbounds i32, i32* %cond, i64 %idxprom302
     86   %8 = load i32, i32* %arrayidx303, align 4
     87   %add304 = add nsw i32 %8, %LineSadBlk0.01588
     88   %9 = load i32, i32* undef, align 4
     89   %add318 = add nsw i32 %add304, %9
     90   %10 = load i16, i16* undef, align 2
     91   %conv321 = zext i16 %10 to i32
     92   %mul322 = mul nsw i32 %conv321, %2
     93   %add323 = add nsw i32 %mul322, %3
     94   %shr324 = ashr i32 %add323, %4
     95   %add325 = add nsw i32 %shr324, %5
     96   %cmp.i.i1505 = icmp sgt i32 %add325, 0
     97   %cond.i.i1506 = select i1 %cmp.i.i1505, i32 %add325, i32 0
     98   %cmp.i4.i1507 = icmp slt i32 %cond.i.i1506, %1
     99   %cond.i5.i1508 = select i1 %cmp.i4.i1507, i32 %cond.i.i1506, i32 %1
    100   %sub329 = sub nsw i32 %cond.i5.i1508, 0
    101   %idxprom330 = sext i32 %sub329 to i64
    102   %arrayidx331 = getelementptr inbounds i32, i32* %cond, i64 %idxprom330
    103   %11 = load i32, i32* %arrayidx331, align 4
    104   %add332 = add nsw i32 %add318, %11
    105   %cmp.i.i1501 = icmp sgt i32 undef, 0
    106   %cond.i.i1502 = select i1 %cmp.i.i1501, i32 undef, i32 0
    107   %cmp.i4.i1503 = icmp slt i32 %cond.i.i1502, %1
    108   %cond.i5.i1504 = select i1 %cmp.i4.i1503, i32 %cond.i.i1502, i32 %1
    109   %incdec.ptr341 = getelementptr inbounds i16, i16* %srcptr.41591, i64 4
    110   %12 = load i16, i16* null, align 2
    111   %conv342 = zext i16 %12 to i32
    112   %sub343 = sub nsw i32 %cond.i5.i1504, %conv342
    113   %idxprom344 = sext i32 %sub343 to i64
    114   %arrayidx345 = getelementptr inbounds i32, i32* %cond, i64 %idxprom344
    115   %13 = load i32, i32* %arrayidx345, align 4
    116   %add346 = add nsw i32 %add332, %13
    117   %incdec.ptr348 = getelementptr inbounds i16, i16* %refptr.11590, i64 5
    118   %14 = load i16, i16* null, align 2
    119   %conv349 = zext i16 %14 to i32
    120   %mul350 = mul nsw i32 %conv349, %2
    121   %add351 = add nsw i32 %mul350, %3
    122   %shr352 = ashr i32 %add351, %4
    123   %add353 = add nsw i32 %shr352, %5
    124   %cmp.i.i1497 = icmp sgt i32 %add353, 0
    125   %cond.i.i1498 = select i1 %cmp.i.i1497, i32 %add353, i32 0
    126   %cmp.i4.i1499 = icmp slt i32 %cond.i.i1498, %1
    127   %cond.i5.i1500 = select i1 %cmp.i4.i1499, i32 %cond.i.i1498, i32 %1
    128   %incdec.ptr355 = getelementptr inbounds i16, i16* %srcptr.41591, i64 5
    129   %15 = load i16, i16* %incdec.ptr341, align 2
    130   %conv356 = zext i16 %15 to i32
    131   %sub357 = sub nsw i32 %cond.i5.i1500, %conv356
    132   %idxprom358 = sext i32 %sub357 to i64
    133   %arrayidx359 = getelementptr inbounds i32, i32* %cond, i64 %idxprom358
    134   %16 = load i32, i32* %arrayidx359, align 4
    135   %add360 = add nsw i32 %16, %LineSadBlk1.01587
    136   %incdec.ptr362 = getelementptr inbounds i16, i16* %refptr.11590, i64 6
    137   %17 = load i16, i16* %incdec.ptr348, align 2
    138   %conv363 = zext i16 %17 to i32
    139   %mul364 = mul nsw i32 %conv363, %2
    140   %add365 = add nsw i32 %mul364, %3
    141   %shr366 = ashr i32 %add365, %4
    142   %add367 = add nsw i32 %shr366, %5
    143   %cmp.i.i1493 = icmp sgt i32 %add367, 0
    144   %cond.i.i1494 = select i1 %cmp.i.i1493, i32 %add367, i32 0
    145   %cmp.i4.i1495 = icmp slt i32 %cond.i.i1494, %1
    146   %cond.i5.i1496 = select i1 %cmp.i4.i1495, i32 %cond.i.i1494, i32 %1
    147   %incdec.ptr369 = getelementptr inbounds i16, i16* %srcptr.41591, i64 6
    148   %18 = load i16, i16* %incdec.ptr355, align 2
    149   %conv370 = zext i16 %18 to i32
    150   %sub371 = sub nsw i32 %cond.i5.i1496, %conv370
    151   %idxprom372 = sext i32 %sub371 to i64
    152   %arrayidx373 = getelementptr inbounds i32, i32* %cond, i64 %idxprom372
    153   %19 = load i32, i32* %arrayidx373, align 4
    154   %add374 = add nsw i32 %add360, %19
    155   %incdec.ptr376 = getelementptr inbounds i16, i16* %refptr.11590, i64 7
    156   %20 = load i16, i16* %incdec.ptr362, align 2
    157   %conv377 = zext i16 %20 to i32
    158   %mul378 = mul nsw i32 %conv377, %2
    159   %add379 = add nsw i32 %mul378, %3
    160   %shr380 = ashr i32 %add379, %4
    161   %add381 = add nsw i32 %shr380, %5
    162   %cmp.i.i1489 = icmp sgt i32 %add381, 0
    163   %cond.i.i1490 = select i1 %cmp.i.i1489, i32 %add381, i32 0
    164   %cmp.i4.i1491 = icmp slt i32 %cond.i.i1490, %1
    165   %cond.i5.i1492 = select i1 %cmp.i4.i1491, i32 %cond.i.i1490, i32 %1
    166   %incdec.ptr383 = getelementptr inbounds i16, i16* %srcptr.41591, i64 7
    167   %21 = load i16, i16* %incdec.ptr369, align 2
    168   %conv384 = zext i16 %21 to i32
    169   %sub385 = sub nsw i32 %cond.i5.i1492, %conv384
    170   %idxprom386 = sext i32 %sub385 to i64
    171   %arrayidx387 = getelementptr inbounds i32, i32* %cond, i64 %idxprom386
    172   %22 = load i32, i32* %arrayidx387, align 4
    173   %add388 = add nsw i32 %add374, %22
    174   %23 = load i16, i16* %incdec.ptr376, align 2
    175   %conv391 = zext i16 %23 to i32
    176   %mul392 = mul nsw i32 %conv391, %2
    177   %add395 = add nsw i32 0, %5
    178   %cmp.i.i1485 = icmp sgt i32 %add395, 0
    179   %cond.i.i1486 = select i1 %cmp.i.i1485, i32 %add395, i32 0
    180   %cmp.i4.i1487 = icmp slt i32 %cond.i.i1486, %1
    181   %cond.i5.i1488 = select i1 %cmp.i4.i1487, i32 %cond.i.i1486, i32 %1
    182   %incdec.ptr397 = getelementptr inbounds i16, i16* %srcptr.41591, i64 8
    183   %24 = load i16, i16* %incdec.ptr383, align 2
    184   %conv398 = zext i16 %24 to i32
    185   %sub399 = sub nsw i32 %cond.i5.i1488, %conv398
    186   %idxprom400 = sext i32 %sub399 to i64
    187   %arrayidx401 = getelementptr inbounds i32, i32* %cond, i64 %idxprom400
    188   %25 = load i32, i32* %arrayidx401, align 4
    189   %add402 = add nsw i32 %add388, %25
    190   %incdec.ptr404 = getelementptr inbounds i16, i16* %refptr.11590, i64 9
    191   %cmp.i4.i1483 = icmp slt i32 undef, %1
    192   %cond.i5.i1484 = select i1 %cmp.i4.i1483, i32 undef, i32 %1
    193   %26 = load i16, i16* %incdec.ptr397, align 2
    194   %conv412 = zext i16 %26 to i32
    195   %sub413 = sub nsw i32 %cond.i5.i1484, %conv412
    196   %idxprom414 = sext i32 %sub413 to i64
    197   %arrayidx415 = getelementptr inbounds i32, i32* %cond, i64 %idxprom414
    198   %27 = load i32, i32* %arrayidx415, align 4
    199   %add416 = add nsw i32 %27, %LineSadBlk2.01585
    200   %incdec.ptr418 = getelementptr inbounds i16, i16* %refptr.11590, i64 10
    201   %28 = load i16, i16* %incdec.ptr404, align 2
    202   %conv419 = zext i16 %28 to i32
    203   %mul420 = mul nsw i32 %conv419, %2
    204   %add421 = add nsw i32 %mul420, %3
    205   %shr422 = ashr i32 %add421, %4
    206   %add423 = add nsw i32 %shr422, %5
    207   %cmp.i.i1477 = icmp sgt i32 %add423, 0
    208   %cond.i.i1478 = select i1 %cmp.i.i1477, i32 %add423, i32 0
    209   %cmp.i4.i1479 = icmp slt i32 %cond.i.i1478, %1
    210   %cond.i5.i1480 = select i1 %cmp.i4.i1479, i32 %cond.i.i1478, i32 %1
    211   %incdec.ptr425 = getelementptr inbounds i16, i16* %srcptr.41591, i64 10
    212   %sub427 = sub nsw i32 %cond.i5.i1480, 0
    213   %idxprom428 = sext i32 %sub427 to i64
    214   %arrayidx429 = getelementptr inbounds i32, i32* %cond, i64 %idxprom428
    215   %29 = load i32, i32* %arrayidx429, align 4
    216   %add430 = add nsw i32 %add416, %29
    217   %incdec.ptr432 = getelementptr inbounds i16, i16* %refptr.11590, i64 11
    218   %30 = load i16, i16* %incdec.ptr418, align 2
    219   %conv433 = zext i16 %30 to i32
    220   %mul434 = mul nsw i32 %conv433, %2
    221   %add435 = add nsw i32 %mul434, %3
    222   %shr436 = ashr i32 %add435, %4
    223   %add437 = add nsw i32 %shr436, %5
    224   %cmp.i.i1473 = icmp sgt i32 %add437, 0
    225   %cond.i.i1474 = select i1 %cmp.i.i1473, i32 %add437, i32 0
    226   %cmp.i4.i1475 = icmp slt i32 %cond.i.i1474, %1
    227   %cond.i5.i1476 = select i1 %cmp.i4.i1475, i32 %cond.i.i1474, i32 %1
    228   %31 = load i16, i16* %incdec.ptr425, align 2
    229   %conv440 = zext i16 %31 to i32
    230   %sub441 = sub nsw i32 %cond.i5.i1476, %conv440
    231   %idxprom442 = sext i32 %sub441 to i64
    232   %arrayidx443 = getelementptr inbounds i32, i32* %cond, i64 %idxprom442
    233   %32 = load i32, i32* %arrayidx443, align 4
    234   %add444 = add nsw i32 %add430, %32
    235   %incdec.ptr446 = getelementptr inbounds i16, i16* %refptr.11590, i64 12
    236   %33 = load i16, i16* %incdec.ptr432, align 2
    237   %conv447 = zext i16 %33 to i32
    238   %mul448 = mul nsw i32 %conv447, %2
    239   %add449 = add nsw i32 %mul448, %3
    240   %shr450 = ashr i32 %add449, %4
    241   %add451 = add nsw i32 %shr450, %5
    242   %cmp.i.i1469 = icmp sgt i32 %add451, 0
    243   %cond.i.i1470 = select i1 %cmp.i.i1469, i32 %add451, i32 0
    244   %cmp.i4.i1471 = icmp slt i32 %cond.i.i1470, %1
    245   %cond.i5.i1472 = select i1 %cmp.i4.i1471, i32 %cond.i.i1470, i32 %1
    246   %incdec.ptr453 = getelementptr inbounds i16, i16* %srcptr.41591, i64 12
    247   %34 = load i16, i16* undef, align 2
    248   %conv454 = zext i16 %34 to i32
    249   %sub455 = sub nsw i32 %cond.i5.i1472, %conv454
    250   %idxprom456 = sext i32 %sub455 to i64
    251   %arrayidx457 = getelementptr inbounds i32, i32* %cond, i64 %idxprom456
    252   %35 = load i32, i32* %arrayidx457, align 4
    253   %add458 = add nsw i32 %add444, %35
    254   %incdec.ptr460 = getelementptr inbounds i16, i16* %refptr.11590, i64 13
    255   %36 = load i16, i16* %incdec.ptr446, align 2
    256   %conv461 = zext i16 %36 to i32
    257   %mul462 = mul nsw i32 %conv461, %2
    258   %add463 = add nsw i32 %mul462, %3
    259   %shr464 = ashr i32 %add463, %4
    260   %add465 = add nsw i32 %shr464, %5
    261   %cmp.i.i1465 = icmp sgt i32 %add465, 0
    262   %cond.i.i1466 = select i1 %cmp.i.i1465, i32 %add465, i32 0
    263   %cmp.i4.i1467 = icmp slt i32 %cond.i.i1466, %1
    264   %cond.i5.i1468 = select i1 %cmp.i4.i1467, i32 %cond.i.i1466, i32 %1
    265   %incdec.ptr467 = getelementptr inbounds i16, i16* %srcptr.41591, i64 13
    266   %37 = load i16, i16* %incdec.ptr453, align 2
    267   %conv468 = zext i16 %37 to i32
    268   %sub469 = sub nsw i32 %cond.i5.i1468, %conv468
    269   %idxprom470 = sext i32 %sub469 to i64
    270   %arrayidx471 = getelementptr inbounds i32, i32* %cond, i64 %idxprom470
    271   %38 = load i32, i32* %arrayidx471, align 4
    272   %add472 = add nsw i32 %38, %LineSadBlk3.01586
    273   %incdec.ptr474 = getelementptr inbounds i16, i16* %refptr.11590, i64 14
    274   %add477 = add nsw i32 0, %3
    275   %shr478 = ashr i32 %add477, %4
    276   %add479 = add nsw i32 %shr478, %5
    277   %cmp.i.i1461 = icmp sgt i32 %add479, 0
    278   %cond.i.i1462 = select i1 %cmp.i.i1461, i32 %add479, i32 0
    279   %cmp.i4.i1463 = icmp slt i32 %cond.i.i1462, %1
    280   %cond.i5.i1464 = select i1 %cmp.i4.i1463, i32 %cond.i.i1462, i32 %1
    281   %incdec.ptr481 = getelementptr inbounds i16, i16* %srcptr.41591, i64 14
    282   %39 = load i16, i16* %incdec.ptr467, align 2
    283   %conv482 = zext i16 %39 to i32
    284   %sub483 = sub nsw i32 %cond.i5.i1464, %conv482
    285   %idxprom484 = sext i32 %sub483 to i64
    286   %arrayidx485 = getelementptr inbounds i32, i32* %cond, i64 %idxprom484
    287   %40 = load i32, i32* %arrayidx485, align 4
    288   %add486 = add nsw i32 %add472, %40
    289   %incdec.ptr488 = getelementptr inbounds i16, i16* %refptr.11590, i64 15
    290   %41 = load i16, i16* %incdec.ptr474, align 2
    291   %conv489 = zext i16 %41 to i32
    292   %mul490 = mul nsw i32 %conv489, %2
    293   %add491 = add nsw i32 %mul490, %3
    294   %shr492 = ashr i32 %add491, %4
    295   %add493 = add nsw i32 %shr492, %5
    296   %cmp.i.i1457 = icmp sgt i32 %add493, 0
    297   %cond.i.i1458 = select i1 %cmp.i.i1457, i32 %add493, i32 0
    298   %cmp.i4.i1459 = icmp slt i32 %cond.i.i1458, %1
    299   %cond.i5.i1460 = select i1 %cmp.i4.i1459, i32 %cond.i.i1458, i32 %1
    300   %incdec.ptr495 = getelementptr inbounds i16, i16* %srcptr.41591, i64 15
    301   %42 = load i16, i16* %incdec.ptr481, align 2
    302   %conv496 = zext i16 %42 to i32
    303   %sub497 = sub nsw i32 %cond.i5.i1460, %conv496
    304   %idxprom498 = sext i32 %sub497 to i64
    305   %arrayidx499 = getelementptr inbounds i32, i32* %cond, i64 %idxprom498
    306   %43 = load i32, i32* %arrayidx499, align 4
    307   %add500 = add nsw i32 %add486, %43
    308   %44 = load i16, i16* %incdec.ptr488, align 2
    309   %conv503 = zext i16 %44 to i32
    310   %mul504 = mul nsw i32 %conv503, %2
    311   %add505 = add nsw i32 %mul504, %3
    312   %shr506 = ashr i32 %add505, %4
    313   %add507 = add nsw i32 %shr506, %5
    314   %cmp.i.i1453 = icmp sgt i32 %add507, 0
    315   %cond.i.i1454 = select i1 %cmp.i.i1453, i32 %add507, i32 0
    316   %cmp.i4.i1455 = icmp slt i32 %cond.i.i1454, %1
    317   %cond.i5.i1456 = select i1 %cmp.i4.i1455, i32 %cond.i.i1454, i32 %1
    318   %45 = load i16, i16* %incdec.ptr495, align 2
    319   %conv510 = zext i16 %45 to i32
    320   %sub511 = sub nsw i32 %cond.i5.i1456, %conv510
    321   %idxprom512 = sext i32 %sub511 to i64
    322   %arrayidx513 = getelementptr inbounds i32, i32* %cond, i64 %idxprom512
    323   %46 = load i32, i32* %arrayidx513, align 4
    324   %add514 = add nsw i32 %add500, %46
    325   %add.ptr517 = getelementptr inbounds i16, i16* %refptr.11590, i64 %incdec.ptr502.sum
    326   %exitcond1692 = icmp eq i32 undef, 4
    327   br i1 %exitcond1692, label %for.end520, label %for.body293
    328 
    329 for.end520:                                       ; preds = %for.body293
    330   store i32 %add346, i32* undef, align 4
    331   store i32 %add402, i32* undef, align 4
    332   store i32 %add458, i32* undef, align 4
    333   store i32 %add514, i32* null, align 4
    334   br i1 undef, label %for.end543, label %for.cond290.preheader
    335 
    336 for.end543:                                       ; preds = %for.end520
    337   br i1 undef, label %for.inc997, label %for.body549
    338 
    339 for.body549:                                      ; preds = %for.inc701, %for.end543
    340   %call554 = call i16* null(i16**** null, i32 signext undef, i32 signext %shl263) #1
    341   br label %for.cond559.preheader
    342 
    343 for.cond559.preheader:                            ; preds = %for.cond559.preheader, %for.body549
    344   br i1 undef, label %for.inc701, label %for.cond559.preheader
    345 
    346 for.inc701:                                       ; preds = %for.cond559.preheader
    347   br i1 undef, label %for.inc997, label %for.body549
    348 
    349 for.cond713.preheader:                            ; preds = %for.end850, %for.body252
    350   br label %for.body716
    351 
    352 for.body716:                                      ; preds = %for.body716, %for.cond713.preheader
    353   br i1 undef, label %for.end850, label %for.body716
    354 
    355 for.end850:                                       ; preds = %for.body716
    356   br i1 undef, label %for.end873, label %for.cond713.preheader
    357 
    358 for.end873:                                       ; preds = %for.end850
    359   br i1 undef, label %for.inc997, label %for.body879
    360 
    361 for.body879:                                      ; preds = %for.inc992, %for.end873
    362   br label %for.cond889.preheader
    363 
    364 for.cond889.preheader:                            ; preds = %for.end964, %for.body879
    365   br i1 undef, label %for.cond894.preheader.lr.ph, label %for.end964
    366 
    367 for.cond894.preheader.lr.ph:                      ; preds = %for.cond889.preheader
    368   br label %for.body898.lr.ph.us
    369 
    370 for.end957.us:                                    ; preds = %for.body946.us
    371   br i1 undef, label %for.body898.lr.ph.us, label %for.end964
    372 
    373 for.body946.us:                                   ; preds = %for.body930.us, %for.body946.us
    374   br i1 false, label %for.body946.us, label %for.end957.us
    375 
    376 for.body930.us:                                   ; preds = %for.body914.us, %for.body930.us
    377   br i1 undef, label %for.body930.us, label %for.body946.us
    378 
    379 for.body914.us:                                   ; preds = %for.body898.us, %for.body914.us
    380   br i1 undef, label %for.body914.us, label %for.body930.us
    381 
    382 for.body898.us:                                   ; preds = %for.body898.lr.ph.us, %for.body898.us
    383   br i1 undef, label %for.body898.us, label %for.body914.us
    384 
    385 for.body898.lr.ph.us:                             ; preds = %for.end957.us, %for.cond894.preheader.lr.ph
    386   br label %for.body898.us
    387 
    388 for.end964:                                       ; preds = %for.end957.us, %for.cond889.preheader
    389   %inc990 = add nsw i32 undef, 1
    390   br i1 false, label %for.inc992, label %for.cond889.preheader
    391 
    392 for.inc992:                                       ; preds = %for.end964
    393   br i1 false, label %for.inc997, label %for.body879
    394 
    395 for.inc997:                                       ; preds = %for.inc992, %for.end873, %for.inc701, %for.end543
    396   %cmp250 = icmp slt i32 undef, %mul10
    397   br i1 %cmp250, label %for.body252, label %for.end999
    398 
    399 for.end999:                                       ; preds = %for.inc997
    400   ret void
    401 }
    402 
    403 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
    404 attributes #1 = { nounwind }
    405