Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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** 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]* @SetupFastFullPelSearch.orig_pels, i64 0, i64 0), %for.cond286.preheader ], [ null, %for.end520 ] |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 56 | %1 = load i32* undef, align 4 |
| 57 | %2 = load i32* @weight_luma, align 4 |
| 58 | %3 = load i32* @wp_luma_round, align 4 |
| 59 | %4 = load i32* @luma_log_weight_denom, align 4 |
| 60 | %5 = load i32* @offset_luma, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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 ] |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 71 | %6 = load i16* %refptr.11590, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 81 | %7 = load i16* %srcptr.41591, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom302 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 86 | %8 = load i32* %arrayidx303, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 87 | %add304 = add nsw i32 %8, %LineSadBlk0.01588 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 88 | %9 = load i32* undef, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 89 | %add318 = add nsw i32 %add304, %9 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 90 | %10 = load i16* undef, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom330 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 103 | %11 = load i32* %arrayidx331, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 4 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 110 | %12 = load i16* null, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom344 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 115 | %13 = load i32* %arrayidx345, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 116 | %add346 = add nsw i32 %add332, %13 |
| 117 | %incdec.ptr348 = getelementptr inbounds i16* %refptr.11590, i64 5 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 118 | %14 = load i16* null, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 5 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 129 | %15 = load i16* %incdec.ptr341, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom358 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 134 | %16 = load i32* %arrayidx359, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 135 | %add360 = add nsw i32 %16, %LineSadBlk1.01587 |
| 136 | %incdec.ptr362 = getelementptr inbounds i16* %refptr.11590, i64 6 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 137 | %17 = load i16* %incdec.ptr348, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 6 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 148 | %18 = load i16* %incdec.ptr355, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom372 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 153 | %19 = load i32* %arrayidx373, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 154 | %add374 = add nsw i32 %add360, %19 |
| 155 | %incdec.ptr376 = getelementptr inbounds i16* %refptr.11590, i64 7 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 156 | %20 = load i16* %incdec.ptr362, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 7 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 167 | %21 = load i16* %incdec.ptr369, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom386 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 172 | %22 = load i32* %arrayidx387, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 173 | %add388 = add nsw i32 %add374, %22 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 174 | %23 = load i16* %incdec.ptr376, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 8 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 183 | %24 = load i16* %incdec.ptr383, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom400 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 188 | %25 = load i32* %arrayidx401, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 189 | %add402 = add nsw i32 %add388, %25 |
| 190 | %incdec.ptr404 = getelementptr inbounds 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 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 193 | %26 = load i16* %incdec.ptr397, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom414 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 198 | %27 = load i32* %arrayidx415, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 199 | %add416 = add nsw i32 %27, %LineSadBlk2.01585 |
| 200 | %incdec.ptr418 = getelementptr inbounds i16* %refptr.11590, i64 10 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 201 | %28 = load i16* %incdec.ptr404, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %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* %cond, i64 %idxprom428 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 215 | %29 = load i32* %arrayidx429, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 216 | %add430 = add nsw i32 %add416, %29 |
| 217 | %incdec.ptr432 = getelementptr inbounds i16* %refptr.11590, i64 11 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 218 | %30 = load i16* %incdec.ptr418, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 228 | %31 = load i16* %incdec.ptr425, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom442 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 233 | %32 = load i32* %arrayidx443, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 234 | %add444 = add nsw i32 %add430, %32 |
| 235 | %incdec.ptr446 = getelementptr inbounds i16* %refptr.11590, i64 12 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 236 | %33 = load i16* %incdec.ptr432, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 12 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 247 | %34 = load i16* undef, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom456 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 252 | %35 = load i32* %arrayidx457, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 253 | %add458 = add nsw i32 %add444, %35 |
| 254 | %incdec.ptr460 = getelementptr inbounds i16* %refptr.11590, i64 13 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 255 | %36 = load i16* %incdec.ptr446, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 13 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 266 | %37 = load i16* %incdec.ptr453, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom470 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 271 | %38 = load i32* %arrayidx471, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 272 | %add472 = add nsw i32 %38, %LineSadBlk3.01586 |
| 273 | %incdec.ptr474 = getelementptr inbounds 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* %srcptr.41591, i64 14 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 282 | %39 = load i16* %incdec.ptr467, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom484 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 287 | %40 = load i32* %arrayidx485, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 288 | %add486 = add nsw i32 %add472, %40 |
| 289 | %incdec.ptr488 = getelementptr inbounds i16* %refptr.11590, i64 15 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 290 | %41 = load i16* %incdec.ptr474, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %srcptr.41591, i64 15 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 301 | %42 = load i16* %incdec.ptr481, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom498 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 306 | %43 = load i32* %arrayidx499, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 307 | %add500 = add nsw i32 %add486, %43 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 308 | %44 = load i16* %incdec.ptr488, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 318 | %45 = load i16* %incdec.ptr495, align 2 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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* %cond, i64 %idxprom512 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 323 | %46 = load i32* %arrayidx513, align 4 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 324 | %add514 = add nsw i32 %add500, %46 |
| 325 | %add.ptr517 = getelementptr inbounds 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 |
Manman Ren | bf9d6e5 | 2013-08-21 22:20:53 +0000 | [diff] [blame] | 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 |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 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 | |
Bill Wendling | 80075c4 | 2013-08-22 21:28:54 +0000 | [diff] [blame] | 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" } |
Hal Finkel | d957f95 | 2013-03-28 03:38:16 +0000 | [diff] [blame] | 404 | attributes #1 = { nounwind } |