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