diff --git a/bench/abseil-cpp/optimized/time_zone_format.cc.ll b/bench/abseil-cpp/optimized/time_zone_format.cc.ll index bed7436a407..3b15866cac4 100644 --- a/bench/abseil-cpp/optimized/time_zone_format.cc.ll +++ b/bench/abseil-cpp/optimized/time_zone_format.cc.ll @@ -799,8 +799,8 @@ sw.bb172: ; preds = %if.end60 store i8 %89, ptr %incdec.ptr.i41.i, align 2 %div.i4260.i = udiv i32 %spec.select26.i, 36000 %rem1.i4361.lhs.trunc.i = trunc nuw i32 %div.i4260.i to i16 - %rem1.i436162.i = urem i16 %rem1.i4361.lhs.trunc.i, 10 - %idxprom2.i44.i = zext nneg i16 %rem1.i436162.i to i64 + %rem1.i436166.i = urem i16 %rem1.i4361.lhs.trunc.i, 10 + %idxprom2.i44.i = zext nneg i16 %rem1.i436166.i to i64 %arrayidx3.i45.i = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i44.i %90 = load i8, ptr %arrayidx3.i45.i, align 1 store i8 %90, ptr %incdec.ptr4.i46.i, align 1 @@ -1001,8 +1001,8 @@ if.end219: ; preds = %invoke.cont216, %if store i8 %109, ptr %incdec.ptr4.i46.i, align 1 %div.i4260.i483 = udiv i32 %spec.select26.i465, 36000 %rem1.i4361.lhs.trunc.i484 = trunc nuw i32 %div.i4260.i483 to i16 - %rem1.i436162.i485 = urem i16 %rem1.i4361.lhs.trunc.i484, 10 - %idxprom2.i44.i486 = zext nneg i16 %rem1.i436162.i485 to i64 + %rem1.i436166.i485 = urem i16 %rem1.i4361.lhs.trunc.i484, 10 + %idxprom2.i44.i486 = zext nneg i16 %rem1.i436166.i485 to i64 %arrayidx3.i45.i487 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i44.i486 %110 = load i8, ptr %arrayidx3.i45.i487, align 1 store i8 %110, ptr %incdec.ptr37.i, align 16 @@ -1084,14 +1084,14 @@ _ZN4absl13time_internal4cctz6detail12_GLOBAL__N_112FormatOffsetEPciPKc.exit: ; p %rem.i509 = urem i32 %spec.select26.i508, 60 %div.i510 = udiv i32 %spec.select26.i508, 60 %rem1.i511 = urem i32 %div.i510, 60 - %rem.i63.lhs.trunc.i = trunc nuw nsw i32 %rem.i509 to i8 - %rem.i6364.i = urem i8 %rem.i63.lhs.trunc.i, 10 - %idxprom.i.i543 = zext nneg i8 %rem.i6364.i to i64 + %rem.i62.lhs.trunc.i = trunc nuw nsw i32 %rem.i509 to i8 + %rem.i6263.i = urem i8 %rem.i62.lhs.trunc.i, 10 + %idxprom.i.i543 = zext nneg i8 %rem.i6263.i to i64 %arrayidx.i.i544 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom.i.i543 %116 = load i8, ptr %arrayidx.i.i544, align 1 store i8 %116, ptr %incdec.ptr.i454, align 4 - %div.i6566.i = udiv i8 %rem.i63.lhs.trunc.i, 10 - %idxprom2.i.i = zext nneg i8 %div.i6566.i to i64 + %div.i6465.i = udiv i8 %rem.i62.lhs.trunc.i, 10 + %idxprom2.i.i = zext nneg i8 %div.i6465.i to i64 %arrayidx3.i.i = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i.i %117 = load i8, ptr %arrayidx3.i.i, align 1 store i8 %117, ptr %incdec.ptr4.i37.i, align 1 @@ -1116,8 +1116,8 @@ _ZN4absl13time_internal4cctz6detail12_GLOBAL__N_112FormatOffsetEPciPKc.exit: ; p store i8 %120, ptr %incdec.ptr.i41.i687, align 2 %div.i4260.i526 = udiv i32 %spec.select26.i508, 36000 %rem1.i4361.lhs.trunc.i527 = trunc nuw i32 %div.i4260.i526 to i16 - %rem1.i436162.i528 = urem i16 %rem1.i4361.lhs.trunc.i527, 10 - %idxprom2.i44.i529 = zext nneg i16 %rem1.i436162.i528 to i64 + %rem1.i436166.i528 = urem i16 %rem1.i4361.lhs.trunc.i527, 10 + %idxprom2.i44.i529 = zext nneg i16 %rem1.i436166.i528 to i64 %arrayidx3.i45.i530 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i44.i529 %121 = load i8, ptr %arrayidx3.i45.i530, align 1 store i8 %121, ptr %incdec.ptr4.i46.i693, align 1 @@ -1186,14 +1186,14 @@ if.end287: ; preds = %invoke.cont284, %if br i1 %cmp15.i552.not, label %if.end22.i, label %if.end22.i.thread if.end22.i.thread: ; preds = %if.end287 - %rem.i63.lhs.trunc.i587 = trunc nuw nsw i32 %rem.i549 to i8 - %rem.i6364.i588 = urem i8 %rem.i63.lhs.trunc.i587, 10 - %idxprom.i.i589 = zext nneg i8 %rem.i6364.i588 to i64 + %rem.i62.lhs.trunc.i587 = trunc nuw nsw i32 %rem.i549 to i8 + %rem.i6263.i588 = urem i8 %rem.i62.lhs.trunc.i587, 10 + %idxprom.i.i589 = zext nneg i8 %rem.i6263.i588 to i64 %arrayidx.i.i590 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom.i.i589 %126 = load i8, ptr %arrayidx.i.i590, align 1 store i8 %126, ptr %incdec.ptr.i454, align 4 - %div.i6566.i592 = udiv i8 %rem.i63.lhs.trunc.i587, 10 - %idxprom2.i.i593 = zext nneg i8 %div.i6566.i592 to i64 + %div.i6465.i592 = udiv i8 %rem.i62.lhs.trunc.i587, 10 + %idxprom2.i.i593 = zext nneg i8 %div.i6465.i592 to i64 %arrayidx3.i.i594 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i.i593 %127 = load i8, ptr %arrayidx3.i.i594, align 1 store i8 %127, ptr %incdec.ptr4.i37.i, align 1 @@ -1238,8 +1238,8 @@ _ZN4absl13time_internal4cctz6detail12_GLOBAL__N_112FormatOffsetEPciPKc.exit597: store i8 %130, ptr %incdec.ptr.i41.i568, align 1 %div.i4260.i569 = udiv i32 %spec.select26.i548, 36000 %rem1.i4361.lhs.trunc.i570 = trunc nuw i32 %div.i4260.i569 to i16 - %rem1.i436162.i571 = urem i16 %rem1.i4361.lhs.trunc.i570, 10 - %idxprom2.i44.i572 = zext nneg i16 %rem1.i436162.i571 to i64 + %rem1.i436166.i571 = urem i16 %rem1.i4361.lhs.trunc.i570, 10 + %idxprom2.i44.i572 = zext nneg i16 %rem1.i436166.i571 to i64 %arrayidx3.i45.i573 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i44.i572 %131 = load i8, ptr %arrayidx3.i45.i573, align 1 %incdec.ptr4.i46.i574 = getelementptr inbounds i8, ptr %ep.addr.1.i563, i64 -2 @@ -1408,8 +1408,8 @@ if.end342: ; preds = %invoke.cont339, %if store i8 %142, ptr %incdec.ptr4.i46.i, align 1 %div.i4260.i637 = udiv i32 %spec.select26.i614, 36000 %rem1.i4361.lhs.trunc.i638 = trunc nuw i32 %div.i4260.i637 to i16 - %rem1.i436162.i639 = urem i16 %rem1.i4361.lhs.trunc.i638, 10 - %idxprom2.i44.i640 = zext nneg i16 %rem1.i436162.i639 to i64 + %rem1.i436166.i639 = urem i16 %rem1.i4361.lhs.trunc.i638, 10 + %idxprom2.i44.i640 = zext nneg i16 %rem1.i436166.i639 to i64 %arrayidx3.i45.i641 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i44.i640 %143 = load i8, ptr %arrayidx3.i45.i641, align 1 store i8 %143, ptr %incdec.ptr37.i, align 16 @@ -1489,14 +1489,14 @@ _ZN4absl13time_internal4cctz6detail12_GLOBAL__N_112FormatOffsetEPciPKc.exit717: %rem.i665 = urem i32 %spec.select26.i664, 60 %div.i666 = udiv i32 %spec.select26.i664, 60 %rem1.i667 = urem i32 %div.i666, 60 - %rem.i63.lhs.trunc.i707 = trunc nuw nsw i32 %rem.i665 to i8 - %rem.i6364.i708 = urem i8 %rem.i63.lhs.trunc.i707, 10 - %idxprom.i.i709 = zext nneg i8 %rem.i6364.i708 to i64 + %rem.i62.lhs.trunc.i707 = trunc nuw nsw i32 %rem.i665 to i8 + %rem.i6263.i708 = urem i8 %rem.i62.lhs.trunc.i707, 10 + %idxprom.i.i709 = zext nneg i8 %rem.i6263.i708 to i64 %arrayidx.i.i710 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom.i.i709 %149 = load i8, ptr %arrayidx.i.i710, align 1 store i8 %149, ptr %incdec.ptr.i454, align 4 - %div.i6566.i712 = udiv i8 %rem.i63.lhs.trunc.i707, 10 - %idxprom2.i.i713 = zext nneg i8 %div.i6566.i712 to i64 + %div.i6465.i712 = udiv i8 %rem.i62.lhs.trunc.i707, 10 + %idxprom2.i.i713 = zext nneg i8 %div.i6465.i712 to i64 %arrayidx3.i.i714 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i.i713 %150 = load i8, ptr %arrayidx3.i.i714, align 1 store i8 %150, ptr %incdec.ptr4.i37.i, align 1 @@ -1521,8 +1521,8 @@ _ZN4absl13time_internal4cctz6detail12_GLOBAL__N_112FormatOffsetEPciPKc.exit717: store i8 %153, ptr %incdec.ptr.i41.i687, align 2 %div.i4260.i688 = udiv i32 %spec.select26.i664, 36000 %rem1.i4361.lhs.trunc.i689 = trunc nuw i32 %div.i4260.i688 to i16 - %rem1.i436162.i690 = urem i16 %rem1.i4361.lhs.trunc.i689, 10 - %idxprom2.i44.i691 = zext nneg i16 %rem1.i436162.i690 to i64 + %rem1.i436166.i690 = urem i16 %rem1.i4361.lhs.trunc.i689, 10 + %idxprom2.i44.i691 = zext nneg i16 %rem1.i436166.i690 to i64 %arrayidx3.i45.i692 = getelementptr inbounds [11 x i8], ptr @_ZN4absl13time_internal4cctz6detail12_GLOBAL__N_17kDigitsE, i64 0, i64 %idxprom2.i44.i691 %154 = load i8, ptr %arrayidx3.i45.i692, align 1 store i8 %154, ptr %incdec.ptr4.i46.i693, align 1 diff --git a/bench/arrow/optimized/concatenate.cc.ll b/bench/arrow/optimized/concatenate.cc.ll index 8996176ab41..02f23a8d5ae 100644 --- a/bench/arrow/optimized/concatenate.cc.ll +++ b/bench/arrow/optimized/concatenate.cc.ll @@ -2929,7 +2929,7 @@ if.then.i.i.i.i279: ; preds = %if.else.i.i _ZNKSt6vectorIN5arrow12_GLOBAL__N_15RangeESaIS2_EE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %if.else.i.i %sub.ptr.div.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i, 4 %.sroa.speculated.i.i.i.i = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i.i, i64 1) - %add.i.i.i.i = add i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i + %add.i.i.i.i = add nsw i64 %.sroa.speculated.i.i.i.i, %sub.ptr.div.i.i.i.i.i %cmp7.i.i.i.i = icmp ult i64 %add.i.i.i.i, %sub.ptr.div.i.i.i.i.i %126 = call i64 @llvm.umin.i64(i64 %add.i.i.i.i, i64 576460752303423487) %cond.i.i.i.i274 = select i1 %cmp7.i.i.i.i, i64 576460752303423487, i64 %126 @@ -4066,7 +4066,7 @@ if.then.i.i.i.i686: ; preds = %if.else.i.i654 _ZNKSt6vectorIN5arrow12_GLOBAL__N_15RangeESaIS2_EE12_M_check_lenEmPKc.exit.i.i.i660: ; preds = %if.else.i.i654 %sub.ptr.div.i.i.i.i.i661 = ashr exact i64 %sub.ptr.sub.i.i.i.i.i658, 4 %.sroa.speculated.i.i.i.i662 = call i64 @llvm.umax.i64(i64 %sub.ptr.div.i.i.i.i.i661, i64 1) - %add.i.i.i.i663 = add i64 %.sroa.speculated.i.i.i.i662, %sub.ptr.div.i.i.i.i.i661 + %add.i.i.i.i663 = add nsw i64 %.sroa.speculated.i.i.i.i662, %sub.ptr.div.i.i.i.i.i661 %cmp7.i.i.i.i664 = icmp ult i64 %add.i.i.i.i663, %sub.ptr.div.i.i.i.i.i661 %279 = call i64 @llvm.umin.i64(i64 %add.i.i.i.i663, i64 576460752303423487) %cond.i.i.i.i665 = select i1 %cmp7.i.i.i.i664, i64 576460752303423487, i64 %279 diff --git a/bench/cmake/optimized/zstd_compress.c.ll b/bench/cmake/optimized/zstd_compress.c.ll index 6362bc58d8f..be86e194b96 100644 --- a/bench/cmake/optimized/zstd_compress.c.ll +++ b/bench/cmake/optimized/zstd_compress.c.ll @@ -11825,13 +11825,13 @@ ZSTD_cwksp_reserve_object.exit191.thread: ; preds = %135 143: ; preds = %ZSTD_cwksp_check_wasteful.exit %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 672 %.pre = load ptr, ptr %.phi.trans.insert, align 8 - %.phi.trans.insert254 = getelementptr inbounds i8, ptr %0, i64 720 - %.pre255 = load i32, ptr %.phi.trans.insert254, align 8 - %.pre256 = and i64 %88, -64 - %.pre258 = inttoptr i64 %.pre256 to ptr - %144 = icmp ugt i32 %.pre255, 1 + %.phi.trans.insert253 = getelementptr inbounds i8, ptr %0, i64 720 + %.pre254 = load i32, ptr %.phi.trans.insert253, align 8 + %.pre255 = and i64 %88, -64 + %.pre257 = inttoptr i64 %.pre255 to ptr + %144 = icmp ugt i32 %.pre254, 1 store ptr %.pre, ptr %92, align 8 - store ptr %.pre258, ptr %93, align 8 + store ptr %.pre257, ptr %93, align 8 %145 = getelementptr inbounds i8, ptr %0, i64 712 store i8 0, ptr %145, align 8 %146 = getelementptr inbounds i8, ptr %0, i64 720 @@ -11844,7 +11844,7 @@ ZSTD_cwksp_reserve_object.exit191.thread: ; preds = %135 ZSTD_cwksp_clear.exit: ; preds = %.thread, %143, %147 %148 = phi ptr [ %142, %.thread ], [ %146, %143 ], [ %146, %147 ] %149 = phi ptr [ %141, %.thread ], [ %145, %143 ], [ %145, %147 ] - %.0164262 = phi i32 [ 1, %.thread ], [ %69, %143 ], [ %69, %147 ] + %.0164261 = phi i32 [ 1, %.thread ], [ %69, %143 ], [ %69, %147 ] %150 = getelementptr inbounds i8, ptr %0, i64 672 %151 = getelementptr inbounds i8, ptr %0, i64 3448 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %151, ptr noundef nonnull align 4 dereferenceable(28) %16, i64 28, i1 false) @@ -11889,7 +11889,7 @@ ZSTD_cwksp_clear.exit: ; preds = %.thread, %143, %147 %174 = getelementptr inbounds i8, ptr %169, i64 5612 store i32 0, ptr %174, align 4 %175 = load i32, ptr %74, align 8 - %176 = tail call fastcc i64 @ZSTD_reset_matchState(ptr noundef nonnull %57, ptr noundef nonnull %7, ptr noundef nonnull %16, i32 noundef %175, i32 noundef %4, i32 noundef %.0164262, i32 noundef 1) + %176 = tail call fastcc i64 @ZSTD_reset_matchState(ptr noundef nonnull %57, ptr noundef nonnull %7, ptr noundef nonnull %16, i32 noundef %175, i32 noundef %4, i32 noundef %.0164261, i32 noundef 1) %177 = icmp ult i64 %176, -119 br i1 %177, label %178, label %ZSTD_cwksp_create.exit @@ -12275,7 +12275,7 @@ ZSTD_cwksp_reserve_aligned.exit208: ; preds = %316, %ZSTD_cwksp_in br label %ZSTD_cwksp_internal_advance_phase.exit.i.i209 ZSTD_cwksp_internal_advance_phase.exit.i.i209: ; preds = %348, %367 - %368 = phi i32 [ %349, %348 ], [ 3, %367 ] + %368 = phi i32 [ 3, %367 ], [ %349, %348 ] %369 = load ptr, ptr %93, align 8 %370 = sub nuw i64 -32, %.176 %371 = getelementptr inbounds i8, ptr %369, i64 %370 diff --git a/bench/cpython/optimized/unicodeobject.ll b/bench/cpython/optimized/unicodeobject.ll index ebdfbb09f8f..6d628a22e1a 100644 --- a/bench/cpython/optimized/unicodeobject.ll +++ b/bench/cpython/optimized/unicodeobject.ll @@ -26578,11 +26578,11 @@ while.body: ; preds = %GroupGenerator_next %retval.0.i = zext nneg i8 %groupgen.sroa.2.1 to i64 %cond15 = tail call i64 @llvm.smax.i64(i64 %remaining.0, i64 %min_width.addr.0) %spec.select = tail call i64 @llvm.smax.i64(i64 %cond15, i64 1) - %cond45 = tail call i64 @llvm.umin.i64(i64 %spec.select, i64 %retval.0.i) - %sub = sub i64 %cond45, %remaining.0 + %3 = tail call i64 @llvm.umin.i64(i64 %spec.select, i64 %retval.0.i) + %sub = sub i64 %3, %remaining.0 %cond51 = tail call i64 @llvm.smax.i64(i64 %sub, i64 0) %cmp57 = icmp slt i64 %remaining.0, 0 - %cond56 = tail call i64 @llvm.smin.i64(i64 %remaining.0, i64 %cond45) + %cond56 = tail call i64 @llvm.smin.i64(i64 %remaining.0, i64 %3) %cond66 = select i1 %cmp57, i64 0, i64 %cond56 %cond71 = select i1 %tobool67.not, i64 0, i64 %thousands_sep.val %add72 = add i64 %cond71, %count.0 @@ -26591,7 +26591,7 @@ while.body: ; preds = %GroupGenerator_next %cond79 = select i1 %tobool67.not, ptr null, ptr %thousands_sep call fastcc void @InsertThousandsGrouping_fill(ptr noundef %writer, ptr noundef %buffer_pos, ptr noundef %digits, ptr noundef %digits_pos, i64 noundef %cond66, i64 noundef %cond51, ptr noundef %cond79, i64 noundef %thousands_sep.val, ptr noundef %maxchar) %sub80 = sub i64 %remaining.0, %cond66 - %sub81 = sub i64 %min_width.addr.0, %cond45 + %sub81 = sub i64 %min_width.addr.0, %3 %cmp82 = icmp slt i64 %sub80, 1 %cmp83 = icmp slt i64 %sub81, 1 %or.cond = select i1 %cmp82, i1 %cmp83, i1 false diff --git a/bench/fmt/optimized/chrono-test.cc.ll b/bench/fmt/optimized/chrono-test.cc.ll index a485d471247..f52834a965d 100644 --- a/bench/fmt/optimized/chrono-test.cc.ll +++ b/bench/fmt/optimized/chrono-test.cc.ll @@ -71721,10 +71721,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i47, ptr %size_.i.i, align 8 %arrayidx.i.i49 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i49, align 1 - %.sroa.speculated193 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated193 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i57.not = icmp eq i32 %.sroa.speculated193, 0 - br i1 %cmp2.i.i.i57.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75, label %for.body.lr.ph.i.i.i58 + %cmp2.i.i.i57 = icmp sgt i32 %.sroa.speculated193, 0 + br i1 %cmp2.i.i.i57, label %for.body.lr.ph.i.i.i58, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75 for.body.lr.ph.i.i.i58: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 %size_.i.i.i.i.i59 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -71762,7 +71762,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i66, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated193 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -74180,10 +74180,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i47, ptr %size_.i.i, align 8 %arrayidx.i.i49 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i49, align 1 - %.sroa.speculated193 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated193 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i57.not = icmp eq i32 %.sroa.speculated193, 0 - br i1 %cmp2.i.i.i57.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75, label %for.body.lr.ph.i.i.i58 + %cmp2.i.i.i57 = icmp sgt i32 %.sroa.speculated193, 0 + br i1 %cmp2.i.i.i57, label %for.body.lr.ph.i.i.i58, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75 for.body.lr.ph.i.i.i58: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 %size_.i.i.i.i.i59 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -74221,7 +74221,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i66, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated193 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -76562,10 +76562,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i47, ptr %size_.i.i, align 8 %arrayidx.i.i49 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i49, align 1 - %.sroa.speculated193 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated193 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i57.not = icmp eq i32 %.sroa.speculated193, 0 - br i1 %cmp2.i.i.i57.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75, label %for.body.lr.ph.i.i.i58 + %cmp2.i.i.i57 = icmp sgt i32 %.sroa.speculated193, 0 + br i1 %cmp2.i.i.i57, label %for.body.lr.ph.i.i.i58, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75 for.body.lr.ph.i.i.i58: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 %size_.i.i.i.i.i59 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -76603,7 +76603,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i66, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated193 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -78956,10 +78956,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -78997,7 +78997,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -81350,10 +81350,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -81391,7 +81391,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -83741,10 +83741,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -83782,7 +83782,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -86123,10 +86123,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i47, ptr %size_.i.i, align 8 %arrayidx.i.i49 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i49, align 1 - %.sroa.speculated193 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated193 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i57.not = icmp eq i32 %.sroa.speculated193, 0 - br i1 %cmp2.i.i.i57.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75, label %for.body.lr.ph.i.i.i58 + %cmp2.i.i.i57 = icmp sgt i32 %.sroa.speculated193, 0 + br i1 %cmp2.i.i.i57, label %for.body.lr.ph.i.i.i58, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75 for.body.lr.ph.i.i.i58: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 %size_.i.i.i.i.i59 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -86164,7 +86164,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i66, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated193 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -88511,10 +88511,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i47, ptr %size_.i.i, align 8 %arrayidx.i.i49 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i49, align 1 - %.sroa.speculated193 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated193 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i57.not = icmp eq i32 %.sroa.speculated193, 0 - br i1 %cmp2.i.i.i57.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75, label %for.body.lr.ph.i.i.i58 + %cmp2.i.i.i57 = icmp sgt i32 %.sroa.speculated193, 0 + br i1 %cmp2.i.i.i57, label %for.body.lr.ph.i.i.i58, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75 for.body.lr.ph.i.i.i58: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 %size_.i.i.i.i.i59 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -88552,7 +88552,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i66, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated193 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -115756,10 +115756,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -115797,7 +115797,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -121525,10 +121525,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -121566,7 +121566,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -141871,10 +141871,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i47, ptr %size_.i.i, align 8 %arrayidx.i.i49 = getelementptr inbounds i8, ptr %24, i64 %23 store i8 46, ptr %arrayidx.i.i49, align 1 - %.sroa.speculated193 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated193 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i57.not = icmp eq i32 %.sroa.speculated193, 0 - br i1 %cmp2.i.i.i57.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75, label %for.body.lr.ph.i.i.i58 + %cmp2.i.i.i57 = icmp sgt i32 %.sroa.speculated193, 0 + br i1 %cmp2.i.i.i57, label %for.body.lr.ph.i.i.i58, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75 for.body.lr.ph.i.i.i58: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 %size_.i.i.i.i.i59 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -141912,7 +141912,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit75: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i66, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit54 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated193 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -158315,10 +158315,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -158356,7 +158356,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -163858,10 +163858,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i50, ptr %size_.i.i, align 8 %arrayidx.i.i52 = getelementptr inbounds i8, ptr %26, i64 %25 store i8 46, ptr %arrayidx.i.i52, align 1 - %.sroa.speculated196 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated196 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i60.not = icmp eq i32 %.sroa.speculated196, 0 - br i1 %cmp2.i.i.i60.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit78, label %for.body.lr.ph.i.i.i61 + %cmp2.i.i.i60 = icmp sgt i32 %.sroa.speculated196, 0 + br i1 %cmp2.i.i.i60, label %for.body.lr.ph.i.i.i61, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit78 for.body.lr.ph.i.i.i61: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit57 %size_.i.i.i.i.i62 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -163899,7 +163899,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit78: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i69, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit57 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated196 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -166315,10 +166315,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i50, ptr %size_.i.i, align 8 %arrayidx.i.i52 = getelementptr inbounds i8, ptr %26, i64 %25 store i8 46, ptr %arrayidx.i.i52, align 1 - %.sroa.speculated196 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated196 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i60.not = icmp eq i32 %.sroa.speculated196, 0 - br i1 %cmp2.i.i.i60.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit78, label %for.body.lr.ph.i.i.i61 + %cmp2.i.i.i60 = icmp sgt i32 %.sroa.speculated196, 0 + br i1 %cmp2.i.i.i60, label %for.body.lr.ph.i.i.i61, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit78 for.body.lr.ph.i.i.i61: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit57 %size_.i.i.i.i.i62 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -166356,7 +166356,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit78: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i69, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit57 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated196 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -175692,10 +175692,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -175733,7 +175733,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -201592,10 +201592,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i49, ptr %size_.i.i, align 8 %arrayidx.i.i51 = getelementptr inbounds i8, ptr %26, i64 %25 store i8 46, ptr %arrayidx.i.i51, align 1 - %.sroa.speculated195 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated195 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i59.not = icmp eq i32 %.sroa.speculated195, 0 - br i1 %cmp2.i.i.i59.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit77, label %for.body.lr.ph.i.i.i60 + %cmp2.i.i.i59 = icmp sgt i32 %.sroa.speculated195, 0 + br i1 %cmp2.i.i.i59, label %for.body.lr.ph.i.i.i60, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit77 for.body.lr.ph.i.i.i60: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit56 %size_.i.i.i.i.i61 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -201633,7 +201633,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit77: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i68, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit56 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated195 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end @@ -217561,10 +217561,10 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc. store i64 %inc.pre-phi.i.i48, ptr %size_.i.i, align 8 %arrayidx.i.i50 = getelementptr inbounds i8, ptr %25, i64 %24 store i8 46, ptr %arrayidx.i.i50, align 1 - %.sroa.speculated194 = tail call i32 @llvm.umin.i32(i32 %precision, i32 %.sroa.speculated) + %.sroa.speculated194 = tail call i32 @llvm.smin.i32(i32 %precision, i32 %.sroa.speculated) %agg.tmp40.sroa.0.0.copyload = load ptr, ptr %out, align 8 - %cmp2.i.i.i58.not = icmp eq i32 %.sroa.speculated194, 0 - br i1 %cmp2.i.i.i58.not, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76, label %for.body.lr.ph.i.i.i59 + %cmp2.i.i.i58 = icmp sgt i32 %.sroa.speculated194, 0 + br i1 %cmp2.i.i.i58, label %for.body.lr.ph.i.i.i59, label %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76 for.body.lr.ph.i.i.i59: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 %size_.i.i.i.i.i60 = getelementptr inbounds i8, ptr %agg.tmp40.sroa.0.0.copyload, i64 16 @@ -217602,7 +217602,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit76: ; preds = %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSERKc.exit.i.i.i67, %_ZNSt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEaSEOc.exit55 store ptr %agg.tmp40.sroa.0.0.copyload, ptr %out, align 8 %sub45 = sub nsw i32 %precision, %.sroa.speculated194 - %cmp46.not = icmp ugt i32 %precision, %.sroa.speculated + %cmp46.not = icmp sgt i32 %precision, %.sroa.speculated %cmp47 = icmp slt i32 %sub45, %sub.i.i %or.cond = select i1 %cmp46.not, i1 %cmp47, i1 false br i1 %or.cond, label %if.then48, label %if.end diff --git a/bench/gromacs/optimized/gmx_bar.cpp.ll b/bench/gromacs/optimized/gmx_bar.cpp.ll index 2dfd35bbfad..f161cdc146f 100644 --- a/bench/gromacs/optimized/gmx_bar.cpp.ll +++ b/bench/gromacs/optimized/gmx_bar.cpp.ll @@ -11335,173 +11335,173 @@ define internal fastcc noundef zeroext i1 @_ZL28sample_coll_create_subsampleP13s %44 = getelementptr inbounds i8, ptr %0, i64 24 %45 = load i32, ptr %44, align 8 %46 = icmp slt i32 %45, 1 - br i1 %46, label %._crit_edge127.thread, label %.lr.ph126 + br i1 %46, label %._crit_edge128.thread, label %.lr.ph127 -._crit_edge127.thread: ; preds = %._crit_edge +._crit_edge128.thread: ; preds = %._crit_edge %47 = getelementptr inbounds i8, ptr %0, i64 56 store i64 0, ptr %47, align 8 br label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit -.lr.ph126: ; preds = %._crit_edge, %103 - %indvars.iv132 = phi i64 [ %indvars.iv.next133, %103 ], [ 0, %._crit_edge ] - %.089.neg124 = phi i64 [ %.089.neg, %103 ], [ 0, %._crit_edge ] - %.089123 = phi i64 [ %104, %103 ], [ 0, %._crit_edge ] +.lr.ph127: ; preds = %._crit_edge, %104 + %indvars.iv133 = phi i64 [ %indvars.iv.next134, %104 ], [ 0, %._crit_edge ] + %.089.neg125 = phi i64 [ %.089.neg, %104 ], [ 0, %._crit_edge ] + %.089124 = phi i64 [ %105, %104 ], [ 0, %._crit_edge ] %48 = load ptr, ptr %10, align 8 - %49 = getelementptr inbounds %struct.sample_range_t, ptr %48, i64 %indvars.iv132 + %49 = getelementptr inbounds %struct.sample_range_t, ptr %48, i64 %indvars.iv133 %50 = getelementptr inbounds i8, ptr %49, i64 8 %51 = load i8, ptr %50, align 8 %52 = trunc i8 %51 to i1 %.pre = load ptr, ptr %5, align 8 - %53 = getelementptr inbounds ptr, ptr %.pre, i64 %indvars.iv132 + %53 = getelementptr inbounds ptr, ptr %.pre, i64 %indvars.iv133 %54 = load ptr, ptr %53, align 8 %55 = getelementptr inbounds i8, ptr %54, i64 64 %56 = load ptr, ptr %55, align 8 %.not = icmp eq ptr %56, null br i1 %52, label %57, label %63 -57: ; preds = %.lr.ph126 - br i1 %.not, label %.thread138, label %82 +57: ; preds = %.lr.ph127 + br i1 %.not, label %.thread, label %83 -.thread138: ; preds = %57 +.thread: ; preds = %57 %58 = getelementptr inbounds i8, ptr %49, i64 4 %59 = load i32, ptr %58, align 4 %60 = load i32, ptr %49, align 8 %61 = sub nsw i32 %59, %60 %62 = sext i32 %61 to i64 - br label %.thread - -63: ; preds = %.lr.ph126 - br i1 %.not, label %.thread, label %103 - -.thread: ; preds = %.thread138, %63 - %.088142 = phi i64 [ %62, %.thread138 ], [ 0, %63 ] - %64 = icmp slt i64 %.089123, %38 - %65 = load i32, ptr %49, align 8 - %66 = sext i32 %65 to i64 - %67 = add i64 %.089.neg124, %38 - %68 = select i1 %64, i64 %67, i64 0 - %.086 = add nsw i64 %68, %66 - %69 = add i64 %.089.neg124, %43 - %70 = add nsw i64 %69, %66 - %71 = getelementptr inbounds i8, ptr %49, i64 4 - %72 = load i32, ptr %71, align 4 - %73 = sext i32 %72 to i64 - %spec.select = tail call i64 @llvm.smin.i64(i64 %70, i64 %73) - %74 = icmp slt i64 %spec.select, %.086 - %75 = icmp sgt i64 %.086, %73 - %or.cond = or i1 %74, %75 - %76 = trunc i64 %.086 to i32 - %77 = trunc i64 %spec.select to i32 - %78 = select i1 %or.cond, i32 0, i32 %76 - store i32 %78, ptr %49, align 8 + br label %64 + +63: ; preds = %.lr.ph127 + br i1 %.not, label %64, label %104 + +64: ; preds = %.thread, %63 + %.088142 = phi i64 [ %62, %.thread ], [ 0, %63 ] + %65 = icmp slt i64 %.089124, %38 + %66 = load i32, ptr %49, align 8 + %67 = sext i32 %66 to i64 + %68 = add i64 %.089.neg125, %38 + %69 = select i1 %65, i64 %68, i64 0 + %.086 = add nsw i64 %69, %67 + %70 = add i64 %.089.neg125, %43 + %71 = add nsw i64 %70, %67 + %72 = getelementptr inbounds i8, ptr %49, i64 4 + %73 = load i32, ptr %72, align 4 + %74 = sext i32 %73 to i64 + %spec.select = tail call i64 @llvm.smin.i64(i64 %71, i64 %74) + %75 = icmp slt i64 %spec.select, %.086 + %76 = icmp sgt i64 %.086, %74 + %or.cond = or i1 %75, %76 + %77 = trunc i64 %.086 to i32 + %78 = trunc i64 %spec.select to i32 %79 = select i1 %or.cond, i32 0, i32 %77 - %80 = load ptr, ptr %10, align 8 - %81 = getelementptr inbounds %struct.sample_range_t, ptr %80, i64 %indvars.iv132, i32 1 - store i32 %79, ptr %81, align 4 - br label %103 - -82: ; preds = %57 - %83 = getelementptr inbounds i8, ptr %56, i64 56 - %84 = load i64, ptr %83, align 8 - %85 = getelementptr inbounds %struct.sample_range_t, ptr %48, i64 %indvars.iv132, i32 2 - %86 = sub nsw i64 %38, %.089123 - %87 = sitofp i64 %86 to double - %88 = sitofp i64 %84 to double - %89 = fdiv double %87, %88 - %90 = sub nsw i64 %43, %.089123 - %91 = sitofp i64 %90 to double - %92 = fdiv double %91, %88 - %93 = fcmp ogt double %89, 0.000000e+00 - %.sroa.speculated114 = select i1 %93, double %89, double 0.000000e+00 - %94 = fcmp olt double %.sroa.speculated114, 1.000000e+00 - %.sroa.speculated107 = select i1 %94, double %.sroa.speculated114, double 1.000000e+00 - %95 = fcmp olt double %92, 1.000000e+00 - %.sroa.speculated110 = select i1 %95, double %92, double 1.000000e+00 - %96 = fcmp ogt double %.sroa.speculated110, 0.000000e+00 - %.sroa.speculated = select i1 %96, double %.sroa.speculated110, double 0.000000e+00 - %97 = fsub double %.sroa.speculated, %.sroa.speculated107 - %98 = fcmp ogt double %97, 0x3FEE666666666666 - br i1 %98, label %99, label %100 - -99: ; preds = %82 - store i8 1, ptr %85, align 8 - br label %103 - -100: ; preds = %82 - %101 = fcmp olt double %97, 5.000000e-02 - br i1 %101, label %102, label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit - -102: ; preds = %100 - store i8 0, ptr %85, align 8 - br label %103 - -103: ; preds = %63, %102, %99, %.thread - %.088141 = phi i64 [ %84, %102 ], [ %84, %99 ], [ %.088142, %.thread ], [ 0, %63 ] - %104 = add nsw i64 %.088141, %.089123 - %indvars.iv.next133 = add nuw nsw i64 %indvars.iv132, 1 - %.089.neg = sub i64 0, %104 - %105 = load i32, ptr %44, align 8 - %106 = sext i32 %105 to i64 - %.not129 = icmp slt i64 %indvars.iv.next133, %106 - br i1 %.not129, label %.lr.ph126, label %._crit_edge127, !llvm.loop !105 - -._crit_edge127: ; preds = %103 - %107 = getelementptr inbounds i8, ptr %0, i64 56 - store i64 0, ptr %107, align 8 - %108 = icmp sgt i32 %105, 0 - br i1 %108, label %.lr.ph.i, label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit - -.lr.ph.i: ; preds = %._crit_edge127 - %109 = load ptr, ptr %10, align 8 - %wide.trip.count.i = zext nneg i32 %105 to i64 - br label %110 - -110: ; preds = %132, %.lr.ph.i - %111 = phi i64 [ 0, %.lr.ph.i ], [ %133, %132 ] - %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %132 ] - %112 = getelementptr inbounds %struct.sample_range_t, ptr %109, i64 %indvars.iv.i - %113 = getelementptr inbounds i8, ptr %112, i64 8 - %114 = load i8, ptr %113, align 8 - %115 = trunc i8 %114 to i1 - br i1 %115, label %116, label %132 - -116: ; preds = %110 - %117 = load ptr, ptr %5, align 8 - %118 = getelementptr inbounds ptr, ptr %117, i64 %indvars.iv.i - %119 = load ptr, ptr %118, align 8 - %120 = getelementptr inbounds i8, ptr %119, i64 64 - %121 = load ptr, ptr %120, align 8 - %.not.i = icmp eq ptr %121, null - br i1 %.not.i, label %125, label %122 - -122: ; preds = %116 - %123 = getelementptr inbounds i8, ptr %119, i64 88 - %124 = load i64, ptr %123, align 8 + store i32 %79, ptr %49, align 8 + %80 = select i1 %or.cond, i32 0, i32 %78 + %81 = load ptr, ptr %10, align 8 + %82 = getelementptr inbounds %struct.sample_range_t, ptr %81, i64 %indvars.iv133, i32 1 + store i32 %80, ptr %82, align 4 + br label %104 + +83: ; preds = %57 + %84 = getelementptr inbounds i8, ptr %56, i64 56 + %85 = load i64, ptr %84, align 8 + %86 = getelementptr inbounds %struct.sample_range_t, ptr %48, i64 %indvars.iv133, i32 2 + %87 = sub nsw i64 %38, %.089124 + %88 = sitofp i64 %87 to double + %89 = sitofp i64 %85 to double + %90 = fdiv double %88, %89 + %91 = sub nsw i64 %43, %.089124 + %92 = sitofp i64 %91 to double + %93 = fdiv double %92, %89 + %94 = fcmp ogt double %90, 0.000000e+00 + %.sroa.speculated114 = select i1 %94, double %90, double 0.000000e+00 + %95 = fcmp olt double %.sroa.speculated114, 1.000000e+00 + %.sroa.speculated107 = select i1 %95, double %.sroa.speculated114, double 1.000000e+00 + %96 = fcmp olt double %93, 1.000000e+00 + %.sroa.speculated110 = select i1 %96, double %93, double 1.000000e+00 + %97 = fcmp ogt double %.sroa.speculated110, 0.000000e+00 + %.sroa.speculated = select i1 %97, double %.sroa.speculated110, double 0.000000e+00 + %98 = fsub double %.sroa.speculated, %.sroa.speculated107 + %99 = fcmp ogt double %98, 0x3FEE666666666666 + br i1 %99, label %100, label %101 + +100: ; preds = %83 + store i8 1, ptr %86, align 8 + br label %104 + +101: ; preds = %83 + %102 = fcmp olt double %98, 5.000000e-02 + br i1 %102, label %103, label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit + +103: ; preds = %101 + store i8 0, ptr %86, align 8 + br label %104 + +104: ; preds = %63, %103, %100, %64 + %.088141 = phi i64 [ %85, %103 ], [ %85, %100 ], [ %.088142, %64 ], [ 0, %63 ] + %105 = add nsw i64 %.088141, %.089124 + %indvars.iv.next134 = add nuw nsw i64 %indvars.iv133, 1 + %.089.neg = sub i64 0, %105 + %106 = load i32, ptr %44, align 8 + %107 = sext i32 %106 to i64 + %.not130 = icmp slt i64 %indvars.iv.next134, %107 + br i1 %.not130, label %.lr.ph127, label %._crit_edge128, !llvm.loop !105 + +._crit_edge128: ; preds = %104 + %108 = getelementptr inbounds i8, ptr %0, i64 56 + store i64 0, ptr %108, align 8 + %109 = icmp sgt i32 %106, 0 + br i1 %109, label %.lr.ph.i, label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit + +.lr.ph.i: ; preds = %._crit_edge128 + %110 = load ptr, ptr %10, align 8 + %wide.trip.count.i = zext nneg i32 %106 to i64 + br label %111 + +111: ; preds = %133, %.lr.ph.i + %112 = phi i64 [ 0, %.lr.ph.i ], [ %134, %133 ] + %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %133 ] + %113 = getelementptr inbounds %struct.sample_range_t, ptr %110, i64 %indvars.iv.i + %114 = getelementptr inbounds i8, ptr %113, i64 8 + %115 = load i8, ptr %114, align 8 + %116 = trunc i8 %115 to i1 + br i1 %116, label %117, label %133 + +117: ; preds = %111 + %118 = load ptr, ptr %5, align 8 + %119 = getelementptr inbounds ptr, ptr %118, i64 %indvars.iv.i + %120 = load ptr, ptr %119, align 8 + %121 = getelementptr inbounds i8, ptr %120, i64 64 + %122 = load ptr, ptr %121, align 8 + %.not.i = icmp eq ptr %122, null + br i1 %.not.i, label %126, label %123 + +123: ; preds = %117 + %124 = getelementptr inbounds i8, ptr %120, i64 88 + %125 = load i64, ptr %124, align 8 br label %.sink.split.i -125: ; preds = %116 - %126 = getelementptr inbounds i8, ptr %112, i64 4 - %127 = load i32, ptr %126, align 4 - %128 = load i32, ptr %112, align 8 - %129 = sub nsw i32 %127, %128 - %130 = sext i32 %129 to i64 +126: ; preds = %117 + %127 = getelementptr inbounds i8, ptr %113, i64 4 + %128 = load i32, ptr %127, align 4 + %129 = load i32, ptr %113, align 8 + %130 = sub nsw i32 %128, %129 + %131 = sext i32 %130 to i64 br label %.sink.split.i -.sink.split.i: ; preds = %125, %122 - %.sink17.i = phi i64 [ %130, %125 ], [ %124, %122 ] - %131 = add nsw i64 %.sink17.i, %111 - store i64 %131, ptr %107, align 8 - br label %132 +.sink.split.i: ; preds = %126, %123 + %.sink17.i = phi i64 [ %131, %126 ], [ %125, %123 ] + %132 = add nsw i64 %.sink17.i, %112 + store i64 %132, ptr %108, align 8 + br label %133 -132: ; preds = %.sink.split.i, %110 - %133 = phi i64 [ %111, %110 ], [ %131, %.sink.split.i ] +133: ; preds = %.sink.split.i, %111 + %134 = phi i64 [ %112, %111 ], [ %132, %.sink.split.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit, label %110, !llvm.loop !45 + br i1 %exitcond.not.i, label %_ZL21sample_coll_calc_ntotP13sample_coll_t.exit, label %111, !llvm.loop !45 -_ZL21sample_coll_calc_ntotP13sample_coll_t.exit: ; preds = %100, %132, %._crit_edge127.thread, %._crit_edge127 - %134 = phi i1 [ true, %._crit_edge127 ], [ true, %._crit_edge127.thread ], [ true, %132 ], [ false, %100 ] - ret i1 %134 +_ZL21sample_coll_calc_ntotP13sample_coll_t.exit: ; preds = %101, %133, %._crit_edge128.thread, %._crit_edge128 + %135 = phi i1 [ true, %._crit_edge128 ], [ true, %._crit_edge128.thread ], [ true, %133 ], [ false, %101 ] + ret i1 %135 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(write) diff --git a/bench/gromacs/optimized/surfacearea.cpp.ll b/bench/gromacs/optimized/surfacearea.cpp.ll index e78a2f71cc4..c19d2c8b809 100644 --- a/bench/gromacs/optimized/surfacearea.cpp.ll +++ b/bench/gromacs/optimized/surfacearea.cpp.ll @@ -1484,7 +1484,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1112 = mul nuw nsw i32 %1111, %.sroa.speculated.i.i %1113 = add nuw nsw i32 %1112, 2 %.not.i129.i = icmp slt i32 %1113, %1 - br i1 %.not.i129.i, label %.invoke.i, label %.noexc145.i + br i1 %.not.i129.i, label %.invoke.i, label %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i130.i .invoke.i: ; preds = %1105, %18 %1114 = phi ptr [ @"__PRETTY_FUNCTION__._ZZL11ico_dot_dodiENK3$_0clEv", %1105 ], [ @"__PRETTY_FUNCTION__._ZZL11ico_dot_arciENK3$_0clEv", %18 ] @@ -1492,7 +1492,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 tail call void @_ZN3gmx8internal13assertHandlerEPKcS2_S2_S2_i(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %1114, ptr noundef nonnull @.str.2, i32 noundef %1115) #19, !noalias !13 unreachable -.noexc145.i: ; preds = %1105 +_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i130.i: ; preds = %1105 %1116 = mul nuw nsw i32 %1113, 3 %1117 = zext nneg i32 %1116 to i64 %1118 = shl nuw nsw i64 %1117, 2 @@ -1574,35 +1574,35 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 .loopexit350.i.i: ; preds = %.loopexit349.i.i %indvars.iv.next437.i.i = add nuw nsw i64 %indvars.iv436.i.i, 1 - %indvars.iv.next.i132.i = add nuw nsw i64 %indvars.iv.i130.i, 1 + %indvars.iv.next.i133.i = add nuw nsw i64 %indvars.iv.i131.i, 1 %exitcond439.not.i.i = icmp eq i64 %indvars.iv.next437.i.i, 10 br i1 %exitcond439.not.i.i, label %1227, label %.lr.ph362.i.i, !llvm.loop !25 -.lr.ph362.i.i: ; preds = %.loopexit350.i.i, %.noexc145.i - %indvars.iv436.i.i = phi i64 [ 0, %.noexc145.i ], [ %indvars.iv.next437.i.i, %.loopexit350.i.i ] - %indvars.iv.i130.i = phi i64 [ 1, %.noexc145.i ], [ %indvars.iv.next.i132.i, %.loopexit350.i.i ] - %.0247365.i.i = phi i32 [ 12, %.noexc145.i ], [ %.2.i.i, %.loopexit350.i.i ] +.lr.ph362.i.i: ; preds = %.loopexit350.i.i, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i130.i + %indvars.iv436.i.i = phi i64 [ 0, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i130.i ], [ %indvars.iv.next437.i.i, %.loopexit350.i.i ] + %indvars.iv.i131.i = phi i64 [ 1, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i130.i ], [ %indvars.iv.next.i133.i, %.loopexit350.i.i ] + %.0247365.i.i = phi i32 [ 12, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i130.i ], [ %.2.i.i, %.loopexit350.i.i ] %1156 = mul nuw nsw i64 %indvars.iv436.i.i, 3 %1157 = getelementptr inbounds float, ptr %1119, i64 %1156 - %gep213.i = getelementptr inbounds float, ptr %1120, i64 %1156 - %gep215.i = getelementptr inbounds float, ptr %1122, i64 %1156 + %gep214.i = getelementptr inbounds float, ptr %1120, i64 %1156 + %gep216.i = getelementptr inbounds float, ptr %1122, i64 %1156 br label %1158 1158: ; preds = %.loopexit349.i.i, %.lr.ph362.i.i - %indvars.iv429.i.i = phi i64 [ %indvars.iv.i130.i, %.lr.ph362.i.i ], [ %indvars.iv.next430.i.i, %.loopexit349.i.i ] + %indvars.iv429.i.i = phi i64 [ %indvars.iv.i131.i, %.lr.ph362.i.i ], [ %indvars.iv.next430.i.i, %.loopexit349.i.i ] %.1361.i.i = phi i32 [ %.0247365.i.i, %.lr.ph362.i.i ], [ %.2.i.i, %.loopexit349.i.i ] %1159 = load float, ptr %1157, align 4, !noalias !22 %1160 = mul nuw nsw i64 %indvars.iv429.i.i, 3 %1161 = getelementptr inbounds float, ptr %1119, i64 %1160 %1162 = load float, ptr %1161, align 4, !noalias !22 %1163 = fsub float %1159, %1162 - %1164 = load float, ptr %gep213.i, align 4, !noalias !22 + %1164 = load float, ptr %gep214.i, align 4, !noalias !22 %gep.i = getelementptr inbounds float, ptr %1120, i64 %1160 %1165 = load float, ptr %gep.i, align 4, !noalias !22 %1166 = fsub float %1164, %1165 - %1167 = load float, ptr %gep215.i, align 4, !noalias !22 - %gep211.i = getelementptr inbounds float, ptr %1122, i64 %1160 - %1168 = load float, ptr %gep211.i, align 4, !noalias !22 + %1167 = load float, ptr %gep216.i, align 4, !noalias !22 + %gep212.i = getelementptr inbounds float, ptr %1122, i64 %1160 + %1168 = load float, ptr %gep212.i, align 4, !noalias !22 %1169 = fsub float %1167, %1168 %1170 = fmul float %1166, %1166 %1171 = tail call float @llvm.fmuladd.f32(float %1163, float %1163, float %1170) @@ -1622,11 +1622,11 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1179 = getelementptr inbounds float, ptr %1119, i64 %1178 %1180 = load float, ptr %1179, align 4, !noalias !22 %1181 = fsub float %1177, %1180 - %1182 = load float, ptr %gep213.i, align 4, !noalias !22 + %1182 = load float, ptr %gep214.i, align 4, !noalias !22 %gep.i.i = getelementptr inbounds float, ptr %1120, i64 %1178 %1183 = load float, ptr %gep.i.i, align 4, !noalias !22 %1184 = fsub float %1182, %1183 - %1185 = load float, ptr %gep215.i, align 4, !noalias !22 + %1185 = load float, ptr %gep216.i, align 4, !noalias !22 %gep355.i.i = getelementptr inbounds float, ptr %1122, i64 %1178 %1186 = load float, ptr %gep355.i.i, align 4, !noalias !22 %1187 = fsub float %1185, %1186 @@ -1644,7 +1644,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1197 = fsub float %1196, %1180 %1198 = load float, ptr %gep.i, align 4, !noalias !22 %1199 = fsub float %1198, %1183 - %1200 = load float, ptr %gep211.i, align 4, !noalias !22 + %1200 = load float, ptr %gep212.i, align 4, !noalias !22 %1201 = fsub float %1200, %1186 %1202 = fmul float %1199, %1199 %1203 = tail call float @llvm.fmuladd.f32(float %1197, float %1197, float %1202) @@ -1682,8 +1682,8 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 1226: ; preds = %1209, %1195, %.lr.ph.i.i %.4.i.i = phi i32 [ %.3352.i.i, %.lr.ph.i.i ], [ %.3352.i.i, %1195 ], [ %1225, %1209 ] - %exitcond.not.i131.i = icmp eq i64 %indvars.iv.next432.i.i, 11 - br i1 %exitcond.not.i131.i, label %.loopexit349.i.i, label %.lr.ph.i.i, !llvm.loop !26 + %exitcond.not.i132.i = icmp eq i64 %indvars.iv.next432.i.i, 11 + br i1 %exitcond.not.i132.i, label %.loopexit349.i.i, label %.lr.ph.i.i, !llvm.loop !26 .loopexit349.i.i: ; preds = %1226, %1158 %.2.i.i = phi i32 [ %.1361.i.i, %1158 ], [ %.4.i.i, %1226 ] @@ -1772,7 +1772,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1271 = fmul float %1267, %1267 %1272 = tail call float @llvm.fmuladd.f32(float %1264, float %1264, float %1271) %1273 = tail call float @llvm.fmuladd.f32(float %1270, float %1270, float %1272) - %sqrt.i.us.us.i141.i = tail call float @llvm.sqrt.f32(float %1273) + %sqrt.i.us.us.i142.i = tail call float @llvm.sqrt.f32(float %1273) %1274 = fmul float %1255, %1255 %1275 = tail call float @llvm.fmuladd.f32(float %1254, float %1254, float %1274) %1276 = tail call float @llvm.fmuladd.f32(float %1256, float %1256, float %1275) @@ -1781,7 +1781,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1279 = tail call float @llvm.fmuladd.f32(float %1259, float %1259, float %1278) %1280 = fmul float %1276, %1279 %1281 = tail call noundef float @sqrtf(float noundef %1280) #18, !noalias !22 - %1282 = fdiv float %sqrt.i.us.us.i141.i, %1281 + %1282 = fdiv float %sqrt.i.us.us.i142.i, %1281 %1283 = tail call noundef float @llvm.fabs.f32(float %1282) %1284 = fcmp olt float %1283, 1.000000e+00 br i1 %1284, label %1285, label %1287 @@ -1791,22 +1791,22 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 br label %1287 1287: ; preds = %1285, %.preheader344.us.us.i.i - %.0.i.i.us.us.i142.i = phi float [ %1286, %1285 ], [ 0x3FF921FB60000000, %.preheader344.us.us.i.i ] + %.0.i.i.us.us.i143.i = phi float [ %1286, %1285 ], [ 0x3FF921FB60000000, %.preheader344.us.us.i.i ] %1288 = uitofp nneg i32 %.0246371.us.us.i.i to float - %1289 = fmul float %.0.i.i.us.us.i142.i, %1288 + %1289 = fmul float %.0.i.i.us.us.i143.i, %1288 %1290 = fdiv float %1289, %1230 %1291 = tail call noundef float @sinf(float noundef %1290) #18, !noalias !22 %1292 = tail call noundef float @cosf(float noundef %1290) #18, !noalias !22 %1293 = fmul float %1255, %1267 %1294 = tail call float @llvm.fmuladd.f32(float %1254, float %1264, float %1293) %1295 = tail call float @llvm.fmuladd.f32(float %1256, float %1270, float %1294) - %1296 = fdiv float %1295, %sqrt.i.us.us.i141.i + %1296 = fdiv float %1295, %sqrt.i.us.us.i142.i %1297 = fmul float %1264, %1296 %1298 = fpext float %1297 to double %1299 = fpext float %1292 to double %1300 = fsub double 1.000000e+00, %1299 %1301 = fmul double %1300, %1298 - %1302 = fpext float %sqrt.i.us.us.i141.i to double + %1302 = fpext float %sqrt.i.us.us.i142.i to double %1303 = fdiv double %1301, %1302 %1304 = fmul float %1254, %1292 %1305 = fpext float %1304 to double @@ -1815,7 +1815,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1308 = fmul float %1255, %1307 %1309 = tail call float @llvm.fmuladd.f32(float %1267, float %1256, float %1308) %1310 = fmul float %1309, %1291 - %1311 = fdiv float %1310, %sqrt.i.us.us.i141.i + %1311 = fdiv float %1310, %sqrt.i.us.us.i142.i %1312 = fpext float %1311 to double %1313 = fadd double %1306, %1312 %1314 = fptrunc double %1313 to float @@ -1830,7 +1830,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1323 = fmul float %1256, %1322 %1324 = tail call float @llvm.fmuladd.f32(float %1270, float %1254, float %1323) %1325 = fmul float %1324, %1291 - %1326 = fdiv float %1325, %sqrt.i.us.us.i141.i + %1326 = fdiv float %1325, %sqrt.i.us.us.i142.i %1327 = fpext float %1326 to double %1328 = fadd double %1321, %1327 %1329 = fptrunc double %1328 to float @@ -1845,19 +1845,19 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1338 = fmul float %1254, %1337 %1339 = tail call float @llvm.fmuladd.f32(float %1264, float %1255, float %1338) %1340 = fmul float %1339, %1291 - %1341 = fdiv float %1340, %sqrt.i.us.us.i141.i + %1341 = fdiv float %1340, %sqrt.i.us.us.i142.i %1342 = fpext float %1341 to double %1343 = fadd double %1336, %1342 %1344 = fptrunc double %1343 to float %1345 = fmul float %1329, %1329 %1346 = tail call float @llvm.fmuladd.f32(float %1314, float %1314, float %1345) %1347 = tail call float @llvm.fmuladd.f32(float %1344, float %1344, float %1346) - %sqrt95.i.us.us.i143.i = tail call float @llvm.sqrt.f32(float %1347) - %1348 = fdiv float %1314, %sqrt95.i.us.us.i143.i + %sqrt95.i.us.us.i144.i = tail call float @llvm.sqrt.f32(float %1347) + %1348 = fdiv float %1314, %sqrt95.i.us.us.i144.i store float %1348, ptr %1261, align 4, !noalias !22 - %1349 = fdiv float %1329, %sqrt95.i.us.us.i143.i + %1349 = fdiv float %1329, %sqrt95.i.us.us.i144.i store float %1349, ptr %gep367.us.us.i.i, align 4, !noalias !22 - %1350 = fdiv float %1344, %sqrt95.i.us.us.i143.i + %1350 = fdiv float %1344, %sqrt95.i.us.us.i144.i store float %1350, ptr %gep369.us.us.i.i, align 4, !noalias !22 %indvars.iv.next441.i.i = add nsw i64 %indvars.iv440.i.i, 1 %1351 = add nuw nsw i32 %.0246371.us.us.i.i, 1 @@ -1879,12 +1879,12 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 br i1 %.not425.i.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit.i, label %.preheader341.us.preheader.i.i .preheader341.us.preheader.i.i: ; preds = %.preheader342.i.i - %smax.i133.i = tail call i32 @llvm.smax.i32(i32 %1354, i32 2) + %smax.i134.i = tail call i32 @llvm.smax.i32(i32 %1354, i32 2) br label %.preheader341.us.i.i .preheader341.us.i.i: ; preds = %.split.us.us.i.i, %.preheader341.us.preheader.i.i %indvars.iv465.i.i = phi i64 [ 0, %.preheader341.us.preheader.i.i ], [ %indvars.iv.next466.i.i, %.split.us.us.i.i ] - %.4256422.us.i.i = phi i32 [ %.2254.us.us.i.i, %.preheader341.us.preheader.i.i ], [ %.6.us.us.i134.i, %.split.us.us.i.i ] + %.4256422.us.i.i = phi i32 [ %.2254.us.us.i.i, %.preheader341.us.preheader.i.i ], [ %.6.us.us.i135.i, %.split.us.us.i.i ] %1355 = mul nuw nsw i64 %indvars.iv465.i.i, 3 %1356 = getelementptr inbounds float, ptr %1119, i64 %1355 %gep419.us.i.i = getelementptr inbounds float, ptr %1120, i64 %1355 @@ -1893,7 +1893,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 1357: ; preds = %.loopexit340.us.us.i.i, %.preheader341.us.i.i %indvars.iv457.i.i = phi i64 [ %indvars.iv.next458.i.i, %.loopexit340.us.us.i.i ], [ 12, %.preheader341.us.i.i ] - %.5415.us.us.i.i = phi i32 [ %.6.us.us.i134.i, %.loopexit340.us.us.i.i ], [ %.4256422.us.i.i, %.preheader341.us.i.i ] + %.5415.us.us.i.i = phi i32 [ %.6.us.us.i135.i, %.loopexit340.us.us.i.i ], [ %.4256422.us.i.i, %.preheader341.us.i.i ] %1358 = load float, ptr %1356, align 4, !noalias !22 %1359 = mul nuw nsw i64 %indvars.iv457.i.i, 3 %1360 = getelementptr inbounds float, ptr %1119, i64 %1359 @@ -1916,15 +1916,15 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1375 = fcmp ule double %1374, 1.000000e-03 br i1 %1375, label %.lr.ph408.us.us.i.i, label %.loopexit340.us.us.i.i -.loopexit340.us.us.i.i: ; preds = %..loopexit_crit_edge.us.us.us.i138.i, %1357 - %.6.us.us.i134.i = phi i32 [ %.5415.us.us.i.i, %1357 ], [ %.8.us.us.us.i139.i, %..loopexit_crit_edge.us.us.us.i138.i ] +.loopexit340.us.us.i.i: ; preds = %..loopexit_crit_edge.us.us.us.i139.i, %1357 + %.6.us.us.i135.i = phi i32 [ %.5415.us.us.i.i, %1357 ], [ %.8.us.us.us.i140.i, %..loopexit_crit_edge.us.us.us.i139.i ] %indvars.iv.next458.i.i = add nuw nsw i64 %indvars.iv457.i.i, 1 %exitcond464.not.i.i = icmp eq i64 %indvars.iv.next458.i.i, 31 br i1 %exitcond464.not.i.i, label %.split.us.us.i.i, label %1357, !llvm.loop !31 -.lr.ph408.us.us.i.i: ; preds = %1357, %..loopexit_crit_edge.us.us.us.i138.i - %indvars.iv459.i.i = phi i64 [ %indvars.iv.next460.i.i, %..loopexit_crit_edge.us.us.us.i138.i ], [ %indvars.iv457.i.i, %1357 ] - %.7406.us.us.us.i.i = phi i32 [ %.8.us.us.us.i139.i, %..loopexit_crit_edge.us.us.us.i138.i ], [ %.5415.us.us.i.i, %1357 ] +.lr.ph408.us.us.i.i: ; preds = %1357, %..loopexit_crit_edge.us.us.us.i139.i + %indvars.iv459.i.i = phi i64 [ %indvars.iv.next460.i.i, %..loopexit_crit_edge.us.us.us.i139.i ], [ %indvars.iv457.i.i, %1357 ] + %.7406.us.us.us.i.i = phi i32 [ %.8.us.us.us.i140.i, %..loopexit_crit_edge.us.us.us.i139.i ], [ %.5415.us.us.i.i, %1357 ] %indvars.iv.next460.i.i = add nuw nsw i64 %indvars.iv459.i.i, 1 %1376 = load float, ptr %1356, align 4, !noalias !22 %1377 = mul nuw nsw i64 %indvars.iv.next460.i.i, 3 @@ -1946,7 +1946,7 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1391 = tail call noundef float @llvm.fabs.f32(float %1390) %1392 = fpext float %1391 to double %1393 = fcmp ogt double %1392, 1.000000e-03 - br i1 %1393, label %..loopexit_crit_edge.us.us.us.i138.i, label %1394 + br i1 %1393, label %..loopexit_crit_edge.us.us.us.i139.i, label %1394 1394: ; preds = %.lr.ph408.us.us.i.i %1395 = load float, ptr %1360, align 4, !noalias !22 @@ -1962,12 +1962,12 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1405 = tail call noundef float @llvm.fabs.f32(float %1404) %1406 = fpext float %1405 to double %1407 = fcmp ogt double %1406, 1.000000e-03 - br i1 %1407, label %..loopexit_crit_edge.us.us.us.i138.i, label %.preheader.us.us.us.i135.i + br i1 %1407, label %..loopexit_crit_edge.us.us.us.i139.i, label %.preheader.us.us.us.i136.i -.preheader.us.us.us.i135.i: ; preds = %1394, %._crit_edge.us.us.us.i136.i - %indvars.iv453.i.i = phi i32 [ %indvars.iv.next454.i.i, %._crit_edge.us.us.us.i136.i ], [ %1354, %1394 ] - %.0239398.us.us.us.i.i = phi i32 [ %1599, %._crit_edge.us.us.us.i136.i ], [ 1, %1394 ] - %.9397.us.us.us.i.i = phi i32 [ %.10.lcssa.us.us.us.i137.i, %._crit_edge.us.us.us.i136.i ], [ %.7406.us.us.us.i.i, %1394 ] +.preheader.us.us.us.i136.i: ; preds = %1394, %._crit_edge.us.us.us.i137.i + %indvars.iv453.i.i = phi i32 [ %indvars.iv.next454.i.i, %._crit_edge.us.us.us.i137.i ], [ %1354, %1394 ] + %.0239398.us.us.us.i.i = phi i32 [ %1599, %._crit_edge.us.us.us.i137.i ], [ 1, %1394 ] + %.9397.us.us.us.i.i = phi i32 [ %.10.lcssa.us.us.us.i138.i, %._crit_edge.us.us.us.i137.i ], [ %.7406.us.us.us.i.i, %1394 ] %1408 = load float, ptr %1360, align 4, !noalias !22 %1409 = load float, ptr %gep412.us.us.i.i, align 4, !noalias !22 %1410 = load float, ptr %gep414.us.us.i.i, align 4, !noalias !22 @@ -2000,12 +2000,12 @@ _ZL6divarcffffffiiPfS_S_.exit174.us.us.us.i.i: ; preds = %372, %279 %1436 = fcmp olt float %1435, 1.000000e+00 br i1 %1436, label %1437, label %1439 -1437: ; preds = %.preheader.us.us.us.i135.i +1437: ; preds = %.preheader.us.us.us.i136.i %1438 = tail call noundef float @asinf(float noundef %1434) #18, !noalias !22 br label %1439 -1439: ; preds = %1437, %.preheader.us.us.us.i135.i - %.0.i.i264.us.us.us.i.i = phi float [ %1438, %1437 ], [ 0x3FF921FB60000000, %.preheader.us.us.us.i135.i ] +1439: ; preds = %1437, %.preheader.us.us.us.i136.i + %.0.i.i264.us.us.us.i.i = phi float [ %1438, %1437 ], [ 0x3FF921FB60000000, %.preheader.us.us.us.i136.i ] %1440 = uitofp nneg i32 %.0239398.us.us.us.i.i to float %1441 = fmul float %.0.i.i264.us.us.us.i.i, %1440 %1442 = fdiv float %1441, %1230 @@ -2173,18 +2173,18 @@ _ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i: ; preds = %1532, %1439 %1595 = fdiv float %1589, %sqrt95.i269.us.us.us.i.i %1596 = sub nsw i32 %.sroa.speculated.i.i, %.0239398.us.us.us.i.i %1597 = icmp sgt i32 %1596, 1 - br i1 %1597, label %.lr.ph395.us.us.us.i.i, label %._crit_edge.us.us.us.i136.i + br i1 %1597, label %.lr.ph395.us.us.us.i.i, label %._crit_edge.us.us.us.i137.i -._crit_edge.us.us.us.loopexit.i140.i: ; preds = %2145 +._crit_edge.us.us.us.loopexit.i141.i: ; preds = %2145 %1598 = trunc nsw i64 %indvars.iv.next451.i.i to i32 - br label %._crit_edge.us.us.us.i136.i + br label %._crit_edge.us.us.us.i137.i -._crit_edge.us.us.us.i136.i: ; preds = %._crit_edge.us.us.us.loopexit.i140.i, %_ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i - %.10.lcssa.us.us.us.i137.i = phi i32 [ %.9397.us.us.us.i.i, %_ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i ], [ %1598, %._crit_edge.us.us.us.loopexit.i140.i ] +._crit_edge.us.us.us.i137.i: ; preds = %._crit_edge.us.us.us.loopexit.i141.i, %_ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i + %.10.lcssa.us.us.us.i138.i = phi i32 [ %.9397.us.us.us.i.i, %_ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i ], [ %1598, %._crit_edge.us.us.us.loopexit.i141.i ] %1599 = add nuw nsw i32 %.0239398.us.us.us.i.i, 1 %indvars.iv.next454.i.i = add nsw i32 %indvars.iv453.i.i, -1 - %exitcond456.not.i.i = icmp eq i32 %1599, %smax.i133.i - br i1 %exitcond456.not.i.i, label %..loopexit_crit_edge.us.us.us.i138.i, label %.preheader.us.us.us.i135.i, !llvm.loop !32 + %exitcond456.not.i.i = icmp eq i32 %1599, %smax.i134.i + br i1 %exitcond456.not.i.i, label %..loopexit_crit_edge.us.us.us.i139.i, label %.preheader.us.us.us.i136.i, !llvm.loop !32 1600: ; preds = %.lr.ph395.us.us.us.i.i, %2145 %indvars.iv450.i.i = phi i64 [ %2264, %.lr.ph395.us.us.us.i.i ], [ %indvars.iv.next451.i.i, %2145 ] @@ -2868,10 +2868,10 @@ _ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i: ; preds = %1532, %1439 %indvars.iv.next451.i.i = add nsw i64 %indvars.iv450.i.i, 1 %2223 = add nuw nsw i32 %.0394.us.us.us.i.i, 1 %exitcond455.not.i.i = icmp eq i32 %2223, %indvars.iv453.i.i - br i1 %exitcond455.not.i.i, label %._crit_edge.us.us.us.loopexit.i140.i, label %1600, !llvm.loop !33 + br i1 %exitcond455.not.i.i, label %._crit_edge.us.us.us.loopexit.i141.i, label %1600, !llvm.loop !33 -..loopexit_crit_edge.us.us.us.i138.i: ; preds = %._crit_edge.us.us.us.i136.i, %1394, %.lr.ph408.us.us.i.i - %.8.us.us.us.i139.i = phi i32 [ %.7406.us.us.us.i.i, %.lr.ph408.us.us.i.i ], [ %.7406.us.us.us.i.i, %1394 ], [ %.10.lcssa.us.us.us.i137.i, %._crit_edge.us.us.us.i136.i ] +..loopexit_crit_edge.us.us.us.i139.i: ; preds = %._crit_edge.us.us.us.i137.i, %1394, %.lr.ph408.us.us.i.i + %.8.us.us.us.i140.i = phi i32 [ %.7406.us.us.us.i.i, %.lr.ph408.us.us.i.i ], [ %.7406.us.us.us.i.i, %1394 ], [ %.10.lcssa.us.us.us.i138.i, %._crit_edge.us.us.us.i137.i ] %exitcond462.not.i.i = icmp eq i64 %indvars.iv.next460.i.i, 31 br i1 %exitcond462.not.i.i, label %.loopexit340.us.us.i.i, label %.lr.ph408.us.us.i.i, !llvm.loop !34 @@ -2926,10 +2926,10 @@ _ZL6divarcffffffiiPfS_S_.exit270.us.us.us.i.i: ; preds = %1532, %1439 br i1 %exitcond468.not.i.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit.i, label %.preheader341.us.i.i, !llvm.loop !35 _ZNSt6vectorIfSaIfEED2Ev.exit.i: ; preds = %.split.us.us.i.i, %.loopexit242.us.i.i, %.preheader342.i.i, %1227, %.preheader243.i.i, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i.i - %.sink274.i = phi ptr [ %32, %.preheader243.i.i ], [ %32, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i.i ], [ %1119, %.preheader342.i.i ], [ %1119, %1227 ], [ %32, %.loopexit242.us.i.i ], [ %1119, %.split.us.us.i.i ] - %.sink272.i = phi ptr [ %33, %.preheader243.i.i ], [ %33, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i.i ], [ %1228, %.preheader342.i.i ], [ %1228, %1227 ], [ %33, %.loopexit242.us.i.i ], [ %1228, %.split.us.us.i.i ] - %2265 = ptrtoint ptr %.sink272.i to i64 - %2266 = ptrtoint ptr %.sink274.i to i64 + %.sink275.i = phi ptr [ %32, %.preheader243.i.i ], [ %32, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i.i ], [ %1119, %.preheader342.i.i ], [ %1119, %1227 ], [ %32, %.loopexit242.us.i.i ], [ %1119, %.split.us.us.i.i ] + %.sink273.i = phi ptr [ %33, %.preheader243.i.i ], [ %33, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i.i ], [ %1228, %.preheader342.i.i ], [ %1228, %1227 ], [ %33, %.loopexit242.us.i.i ], [ %1228, %.split.us.us.i.i ] + %2265 = ptrtoint ptr %.sink273.i to i64 + %2266 = ptrtoint ptr %.sink275.i to i64 %2267 = sub i64 %2265, %2266 %2268 = ashr exact i64 %2267, 2 %2269 = sdiv i64 %2268, 3 @@ -2943,19 +2943,19 @@ _ZNSt6vectorIfSaIfEED2Ev.exit.i: ; preds = %.split.us.us.i.i, % .lr.ph.i: ; preds = %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i, %.lr.ph.preheader.i %indvars.iv.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] - %.sroa.0183.0218.i = phi ptr [ null, %.lr.ph.preheader.i ], [ %.sroa.0183.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] - %.sroa.15.0217.i = phi ptr [ null, %.lr.ph.preheader.i ], [ %.sroa.15.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] - %.sroa.11.0216.i = phi ptr [ null, %.lr.ph.preheader.i ], [ %.sroa.11.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] + %.sroa.0184.0219.i = phi ptr [ null, %.lr.ph.preheader.i ], [ %.sroa.0184.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] + %.sroa.15.0218.i = phi ptr [ null, %.lr.ph.preheader.i ], [ %.sroa.15.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] + %.sroa.11.0217.i = phi ptr [ null, %.lr.ph.preheader.i ], [ %.sroa.11.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] %.idx.i = mul i64 %indvars.iv.i, 12 - %2272 = getelementptr inbounds i8, ptr %.sink274.i, i64 %.idx.i + %2272 = getelementptr inbounds i8, ptr %.sink275.i, i64 %.idx.i %2273 = load float, ptr %2272, align 4, !noalias !13 %2274 = fpext float %2273 to double %2275 = fadd double %2274, 1.000000e+00 %2276 = fmul double %2275, 2.000000e+00 %2277 = tail call double @llvm.floor.f64(double %2276) %2278 = fptosi double %2277 to i32 - %.sroa.speculated178.i = tail call i32 @llvm.smax.i32(i32 %2278, i32 0) - %spec.select.i = tail call i32 @llvm.umin.i32(i32 %.sroa.speculated178.i, i32 3) + %.sroa.speculated179.i = tail call i32 @llvm.smax.i32(i32 %2278, i32 0) + %spec.select.i = tail call i32 @llvm.umin.i32(i32 %.sroa.speculated179.i, i32 3) %2279 = getelementptr inbounds i8, ptr %2272, i64 4 %2280 = load float, ptr %2279, align 4, !noalias !13 %2281 = fpext float %2280 to double @@ -2963,8 +2963,8 @@ _ZNSt6vectorIfSaIfEED2Ev.exit.i: ; preds = %.split.us.us.i.i, % %2283 = fmul double %2282, 2.000000e+00 %2284 = tail call double @llvm.floor.f64(double %2283) %2285 = fptosi double %2284 to i32 - %.sroa.speculated173.i = tail call i32 @llvm.smax.i32(i32 %2285, i32 0) - %.0114.i = tail call i32 @llvm.umin.i32(i32 %.sroa.speculated173.i, i32 3) + %.sroa.speculated174.i = tail call i32 @llvm.smax.i32(i32 %2285, i32 0) + %.0114.i = tail call i32 @llvm.umin.i32(i32 %.sroa.speculated174.i, i32 3) %2286 = getelementptr inbounds i8, ptr %2272, i64 8 %2287 = load float, ptr %2286, align 4, !noalias !13 %2288 = fpext float %2287 to double @@ -2978,25 +2978,25 @@ _ZNSt6vectorIfSaIfEED2Ev.exit.i: ; preds = %.split.us.us.i.i, % %2294 = or disjoint i32 %2293, %spec.select.i %2295 = shl nuw nsw i32 %.0113.i, 4 %2296 = or disjoint i32 %2294, %2295 - %.not.i153.i = icmp eq ptr %.sroa.11.0216.i, %.sroa.15.0217.i - br i1 %.not.i153.i, label %2298, label %2297 + %.not.i154.i = icmp eq ptr %.sroa.11.0217.i, %.sroa.15.0218.i + br i1 %.not.i154.i, label %2298, label %2297 2297: ; preds = %.lr.ph.i - store i32 %2296, ptr %.sroa.11.0216.i, align 4, !noalias !13 + store i32 %2296, ptr %.sroa.11.0217.i, align 4, !noalias !13 br label %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i 2298: ; preds = %.lr.ph.i - %2299 = ptrtoint ptr %.sroa.15.0217.i to i64 - %2300 = ptrtoint ptr %.sroa.0183.0218.i to i64 + %2299 = ptrtoint ptr %.sroa.15.0218.i to i64 + %2300 = ptrtoint ptr %.sroa.0184.0219.i to i64 %2301 = sub i64 %2299, %2300 %2302 = icmp eq i64 %2301, 9223372036854775804 br i1 %2302, label %2303, label %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i 2303: ; preds = %2298 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.6) #19 - to label %.noexc155.i unwind label %.loopexit.split-lp.i, !noalias !13 + to label %.noexc156.i unwind label %.loopexit.split-lp.i, !noalias !13 -.noexc155.i: ; preds = %2303 +.noexc156.i: ; preds = %2303 unreachable _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %2298 @@ -3006,8 +3006,8 @@ _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i: ; preds = %2298 %2306 = icmp ult i64 %2305, %2304 %2307 = tail call i64 @llvm.umin.i64(i64 %2305, i64 2305843009213693951) %2308 = select i1 %2306, i64 2305843009213693951, i64 %2307 - %.not.i.i.i154.i = icmp eq i64 %2308, 0 - br i1 %.not.i.i.i154.i, label %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i, label %2309 + %.not.i.i.i155.i = icmp eq i64 %2308, 0 + br i1 %.not.i.i.i155.i, label %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i, label %2309 2309: ; preds = %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i %2310 = shl nuw nsw i64 %2308, 2 @@ -3022,16 +3022,16 @@ _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i: ; preds = %2309, %_ZNKSt6 br i1 %2314, label %2315, label %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i 2315: ; preds = %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i - tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %2312, ptr align 4 %.sroa.0183.0218.i, i64 %2301, i1 false), !noalias !13 + tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %2312, ptr align 4 %.sroa.0184.0219.i, i64 %2301, i1 false), !noalias !13 br label %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i _ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i: ; preds = %2315, %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i %2316 = getelementptr inbounds i8, ptr %2312, i64 %2301 - %.not.i17.i.i.i = icmp eq ptr %.sroa.0183.0218.i, null + %.not.i17.i.i.i = icmp eq ptr %.sroa.0184.0219.i, null br i1 %.not.i17.i.i.i, label %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i, label %2317 2317: ; preds = %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i - tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0183.0218.i) #17, !noalias !13 + tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0184.0219.i) #17, !noalias !13 br label %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i: ; preds = %2317, %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i @@ -3049,99 +3049,99 @@ _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPi br label %2369 _ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i: ; preds = %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i, %2297 - %.pn202.i = phi ptr [ %2316, %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i ], [ %.sroa.11.0216.i, %2297 ] - %.sroa.15.1.i = phi ptr [ %2318, %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i ], [ %.sroa.15.0217.i, %2297 ] - %.sroa.0183.1.i = phi ptr [ %2312, %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i ], [ %.sroa.0183.0218.i, %2297 ] - %.sroa.11.1.i = getelementptr inbounds i8, ptr %.pn202.i, i64 4 + %.pn203.i = phi ptr [ %2316, %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i ], [ %.sroa.11.0217.i, %2297 ] + %.sroa.15.1.i = phi ptr [ %2318, %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i ], [ %.sroa.15.0218.i, %2297 ] + %.sroa.0184.1.i = phi ptr [ %2312, %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i ], [ %.sroa.0184.0219.i, %2297 ] + %.sroa.11.1.i = getelementptr inbounds i8, ptr %.pn203.i, i64 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i br i1 %exitcond.not.i, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !36 ._crit_edge.i: ; preds = %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i, %_ZNSt6vectorIfSaIfEED2Ev.exit.i - %.sroa.0183.0.lcssa.i = phi ptr [ null, %_ZNSt6vectorIfSaIfEED2Ev.exit.i ], [ %.sroa.0183.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] + %.sroa.0184.0.lcssa.i = phi ptr [ null, %_ZNSt6vectorIfSaIfEED2Ev.exit.i ], [ %.sroa.0184.1.i, %_ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i ] %2319 = invoke noalias noundef nonnull dereferenceable(516) ptr @_Znwm(i64 noundef 516) #16 to label %2320 unwind label %2328, !noalias !13 2320: ; preds = %._crit_edge.i %2321 = getelementptr inbounds i8, ptr %2319, i64 256 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(516) %2319, i8 0, i64 516, i1 false), !noalias !13 - br i1 %2271, label %.lr.ph222.preheader.i, label %.preheader204.i + br i1 %2271, label %.lr.ph223.preheader.i, label %.preheader205.i -.lr.ph222.preheader.i: ; preds = %2320 - %wide.trip.count246.i = and i64 %2269, 2147483647 - br label %.lr.ph222.i +.lr.ph223.preheader.i: ; preds = %2320 + %wide.trip.count247.i = and i64 %2269, 2147483647 + br label %.lr.ph223.i -.preheader204.i: ; preds = %.lr.ph222.i, %2320 +.preheader205.i: ; preds = %.lr.ph223.i, %2320 %sext.i = shl i64 %2269, 32 - %wide.trip.count251.i = ashr exact i64 %sext.i, 32 - br label %.preheader203.i + %wide.trip.count252.i = ashr exact i64 %sext.i, 32 + br label %.preheader204.i -.lr.ph222.i: ; preds = %.lr.ph222.i, %.lr.ph222.preheader.i - %indvars.iv243.i = phi i64 [ 0, %.lr.ph222.preheader.i ], [ %indvars.iv.next244.i, %.lr.ph222.i ] - %2322 = getelementptr inbounds i32, ptr %.sroa.0183.0.lcssa.i, i64 %indvars.iv243.i +.lr.ph223.i: ; preds = %.lr.ph223.i, %.lr.ph223.preheader.i + %indvars.iv244.i = phi i64 [ 0, %.lr.ph223.preheader.i ], [ %indvars.iv.next245.i, %.lr.ph223.i ] + %2322 = getelementptr inbounds i32, ptr %.sroa.0184.0.lcssa.i, i64 %indvars.iv244.i %2323 = load i32, ptr %2322, align 4, !noalias !13 %2324 = sext i32 %2323 to i64 %2325 = getelementptr inbounds i32, ptr %2319, i64 %2324 %2326 = load i32, ptr %2325, align 4, !noalias !13 %2327 = add nsw i32 %2326, 1 store i32 %2327, ptr %2325, align 4, !noalias !13 - %indvars.iv.next244.i = add nuw nsw i64 %indvars.iv243.i, 1 - %exitcond247.not.i = icmp eq i64 %indvars.iv.next244.i, %wide.trip.count246.i - br i1 %exitcond247.not.i, label %.preheader204.i, label %.lr.ph222.i, !llvm.loop !37 + %indvars.iv.next245.i = add nuw nsw i64 %indvars.iv244.i, 1 + %exitcond248.not.i = icmp eq i64 %indvars.iv.next245.i, %wide.trip.count247.i + br i1 %exitcond248.not.i, label %.preheader205.i, label %.lr.ph223.i, !llvm.loop !37 2328: ; preds = %._crit_edge.i %2329 = landingpad { ptr, i32 } cleanup br label %2369 -.preheader203.i: ; preds = %2367, %.preheader204.i - %indvars.iv263.i = phi i64 [ 0, %.preheader204.i ], [ %indvars.iv.next264.i, %2367 ] - %.0109237.i = phi i32 [ 0, %.preheader204.i ], [ %.3.lcssa.i, %2367 ] +.preheader204.i: ; preds = %2367, %.preheader205.i + %indvars.iv264.i = phi i64 [ 0, %.preheader205.i ], [ %indvars.iv.next265.i, %2367 ] + %.0109238.i = phi i32 [ 0, %.preheader205.i ], [ %.3.lcssa.i, %2367 ] br label %.preheader.i -.preheader.i: ; preds = %2366, %.preheader203.i - %indvars.iv258.i = phi i64 [ 0, %.preheader203.i ], [ %indvars.iv.next259.i, %2366 ] - %.1110235.i = phi i32 [ %.0109237.i, %.preheader203.i ], [ %.3.lcssa.i, %2366 ] - %2330 = shl nuw nsw i64 %indvars.iv258.i, 2 - %2331 = add nuw nsw i64 %2330, %indvars.iv263.i +.preheader.i: ; preds = %2366, %.preheader204.i + %indvars.iv259.i = phi i64 [ 0, %.preheader204.i ], [ %indvars.iv.next260.i, %2366 ] + %.1110236.i = phi i32 [ %.0109238.i, %.preheader204.i ], [ %.3.lcssa.i, %2366 ] + %2330 = shl nuw nsw i64 %indvars.iv259.i, 2 + %2331 = add nuw nsw i64 %2330, %indvars.iv264.i br label %2332 -2332: ; preds = %._crit_edge229.i, %.preheader.i - %indvars.iv253.i = phi i64 [ 0, %.preheader.i ], [ %indvars.iv.next254.i, %._crit_edge229.i ] - %.2233.i = phi i32 [ %.1110235.i, %.preheader.i ], [ %.3.lcssa.i, %._crit_edge229.i ] - %2333 = shl nuw nsw i64 %indvars.iv253.i, 4 +2332: ; preds = %._crit_edge230.i, %.preheader.i + %indvars.iv254.i = phi i64 [ 0, %.preheader.i ], [ %indvars.iv.next255.i, %._crit_edge230.i ] + %.2234.i = phi i32 [ %.1110236.i, %.preheader.i ], [ %.3.lcssa.i, %._crit_edge230.i ] + %2333 = shl nuw nsw i64 %indvars.iv254.i, 4 %2334 = add nuw nsw i64 %2331, %2333 %2335 = getelementptr inbounds i32, ptr %2321, i64 %2334 - store i32 %.2233.i, ptr %2335, align 4, !noalias !13 - %2336 = icmp slt i32 %.2233.i, %2270 + store i32 %.2234.i, ptr %2335, align 4, !noalias !13 + %2336 = icmp slt i32 %.2234.i, %2270 %2337 = trunc nuw nsw i64 %2334 to i32 - br i1 %2336, label %.lr.ph228.preheader.i, label %._crit_edge229.i - -.lr.ph228.preheader.i: ; preds = %2332 - %2338 = sext i32 %.2233.i to i64 - br label %.lr.ph228.i - -.lr.ph228.i: ; preds = %2363, %.lr.ph228.preheader.i - %indvars.iv248.i = phi i64 [ %2338, %.lr.ph228.preheader.i ], [ %indvars.iv.next249.i, %2363 ] - %.0100225.i = phi i32 [ %2337, %.lr.ph228.preheader.i ], [ %.1101.i, %2363 ] - %.0104224.i = phi i32 [ 0, %.lr.ph228.preheader.i ], [ %.1105.i, %2363 ] - %.3223.i = phi i32 [ %.2233.i, %.lr.ph228.preheader.i ], [ %.4.i, %2363 ] - %2339 = getelementptr inbounds i32, ptr %.sroa.0183.0.lcssa.i, i64 %indvars.iv248.i + br i1 %2336, label %.lr.ph229.preheader.i, label %._crit_edge230.i + +.lr.ph229.preheader.i: ; preds = %2332 + %2338 = sext i32 %.2234.i to i64 + br label %.lr.ph229.i + +.lr.ph229.i: ; preds = %2363, %.lr.ph229.preheader.i + %indvars.iv249.i = phi i64 [ %2338, %.lr.ph229.preheader.i ], [ %indvars.iv.next250.i, %2363 ] + %.0100226.i = phi i32 [ %2337, %.lr.ph229.preheader.i ], [ %.1101.i, %2363 ] + %.0104225.i = phi i32 [ 0, %.lr.ph229.preheader.i ], [ %.1105.i, %2363 ] + %.3224.i = phi i32 [ %.2234.i, %.lr.ph229.preheader.i ], [ %.4.i, %2363 ] + %2339 = getelementptr inbounds i32, ptr %.sroa.0184.0.lcssa.i, i64 %indvars.iv249.i %2340 = load i32, ptr %2339, align 4, !noalias !13 - %2341 = icmp eq i32 %.0100225.i, %2340 + %2341 = icmp eq i32 %.0100226.i, %2340 br i1 %2341, label %2342, label %2363 -2342: ; preds = %.lr.ph228.i - %.idx267.i = mul i64 %indvars.iv248.i, 12 - %2343 = getelementptr i8, ptr %.sink274.i, i64 %.idx267.i +2342: ; preds = %.lr.ph229.i + %.idx268.i = mul i64 %indvars.iv249.i, 12 + %2343 = getelementptr i8, ptr %.sink275.i, i64 %.idx268.i %2344 = load float, ptr %2343, align 4, !noalias !13 %2345 = getelementptr i8, ptr %2343, i64 4 %2346 = load float, ptr %2345, align 4, !noalias !13 %2347 = getelementptr i8, ptr %2343, i64 8 %2348 = load float, ptr %2347, align 4, !noalias !13 - %2349 = mul nsw i32 %.3223.i, 3 + %2349 = mul nsw i32 %.3224.i, 3 %2350 = sext i32 %2349 to i64 - %2351 = getelementptr float, ptr %.sink274.i, i64 %2350 + %2351 = getelementptr float, ptr %.sink275.i, i64 %2350 %2352 = load float, ptr %2351, align 4, !noalias !13 store float %2352, ptr %2343, align 4, !noalias !13 %2353 = getelementptr i8, ptr %2351, i64 4 @@ -3154,65 +3154,65 @@ _ZNSt6vectorIiSaIiEE12emplace_backIJRiEEES3_DpOT_.exit.i: ; preds = %_ZNSt6vecto store float %2346, ptr %2353, align 4, !noalias !13 store float %2348, ptr %2355, align 4, !noalias !13 %2357 = load i32, ptr %2339, align 4, !noalias !13 - %2358 = sext i32 %.3223.i to i64 - %2359 = getelementptr inbounds i32, ptr %.sroa.0183.0.lcssa.i, i64 %2358 + %2358 = sext i32 %.3224.i to i64 + %2359 = getelementptr inbounds i32, ptr %.sroa.0184.0.lcssa.i, i64 %2358 %2360 = load i32, ptr %2359, align 4, !noalias !13 store i32 %2360, ptr %2339, align 4, !noalias !13 store i32 %2357, ptr %2359, align 4, !noalias !13 - %2361 = add nsw i32 %.3223.i, 1 - %2362 = add nsw i32 %.0104224.i, 1 + %2361 = add nsw i32 %.3224.i, 1 + %2362 = add nsw i32 %.0104225.i, 1 br label %2363 -2363: ; preds = %2342, %.lr.ph228.i - %.4.i = phi i32 [ %2361, %2342 ], [ %.3223.i, %.lr.ph228.i ] - %.1105.i = phi i32 [ %2362, %2342 ], [ %.0104224.i, %.lr.ph228.i ] - %.1101.i = phi i32 [ %2357, %2342 ], [ %.0100225.i, %.lr.ph228.i ] - %indvars.iv.next249.i = add nsw i64 %indvars.iv248.i, 1 - %exitcond252.not.i = icmp eq i64 %indvars.iv.next249.i, %wide.trip.count251.i - br i1 %exitcond252.not.i, label %._crit_edge229.i, label %.lr.ph228.i, !llvm.loop !38 +2363: ; preds = %2342, %.lr.ph229.i + %.4.i = phi i32 [ %2361, %2342 ], [ %.3224.i, %.lr.ph229.i ] + %.1105.i = phi i32 [ %2362, %2342 ], [ %.0104225.i, %.lr.ph229.i ] + %.1101.i = phi i32 [ %2357, %2342 ], [ %.0100226.i, %.lr.ph229.i ] + %indvars.iv.next250.i = add nsw i64 %indvars.iv249.i, 1 + %exitcond253.not.i = icmp eq i64 %indvars.iv.next250.i, %wide.trip.count252.i + br i1 %exitcond253.not.i, label %._crit_edge230.i, label %.lr.ph229.i, !llvm.loop !38 -._crit_edge229.i: ; preds = %2363, %2332 - %.3.lcssa.i = phi i32 [ %.2233.i, %2332 ], [ %.4.i, %2363 ] +._crit_edge230.i: ; preds = %2363, %2332 + %.3.lcssa.i = phi i32 [ %.2234.i, %2332 ], [ %.4.i, %2363 ] %.0104.lcssa.i = phi i32 [ 0, %2332 ], [ %.1105.i, %2363 ] %.0100.lcssa.i = phi i32 [ %2337, %2332 ], [ %.1101.i, %2363 ] %2364 = sext i32 %.0100.lcssa.i to i64 %2365 = getelementptr inbounds i32, ptr %2319, i64 %2364 store i32 %.0104.lcssa.i, ptr %2365, align 4, !noalias !13 - %indvars.iv.next254.i = add nuw nsw i64 %indvars.iv253.i, 1 - %exitcond257.not.i = icmp eq i64 %indvars.iv.next254.i, 4 - br i1 %exitcond257.not.i, label %2366, label %2332, !llvm.loop !39 + %indvars.iv.next255.i = add nuw nsw i64 %indvars.iv254.i, 1 + %exitcond258.not.i = icmp eq i64 %indvars.iv.next255.i, 4 + br i1 %exitcond258.not.i, label %2366, label %2332, !llvm.loop !39 -2366: ; preds = %._crit_edge229.i - %indvars.iv.next259.i = add nuw nsw i64 %indvars.iv258.i, 1 - %exitcond262.not.i = icmp eq i64 %indvars.iv.next259.i, 4 - br i1 %exitcond262.not.i, label %2367, label %.preheader.i, !llvm.loop !40 +2366: ; preds = %._crit_edge230.i + %indvars.iv.next260.i = add nuw nsw i64 %indvars.iv259.i, 1 + %exitcond263.not.i = icmp eq i64 %indvars.iv.next260.i, 4 + br i1 %exitcond263.not.i, label %2367, label %.preheader.i, !llvm.loop !40 2367: ; preds = %2366 - %indvars.iv.next264.i = add nuw nsw i64 %indvars.iv263.i, 1 - %exitcond266.not.i = icmp eq i64 %indvars.iv.next264.i, 4 - br i1 %exitcond266.not.i, label %_ZNSt6vectorIiSaIiEED2Ev.exit.i, label %.preheader203.i, !llvm.loop !41 + %indvars.iv.next265.i = add nuw nsw i64 %indvars.iv264.i, 1 + %exitcond267.not.i = icmp eq i64 %indvars.iv.next265.i, 4 + br i1 %exitcond267.not.i, label %_ZNSt6vectorIiSaIiEED2Ev.exit.i, label %.preheader204.i, !llvm.loop !41 _ZNSt6vectorIiSaIiEED2Ev.exit.i: ; preds = %2367 tail call void @_ZdlPv(ptr noundef nonnull %2319) #17, !noalias !13 - %.not.i.i.i159.i = icmp eq ptr %.sroa.0183.0.lcssa.i, null - br i1 %.not.i.i.i159.i, label %_ZL9make_unspii.exit, label %2368 + %.not.i.i.i160.i = icmp eq ptr %.sroa.0184.0.lcssa.i, null + br i1 %.not.i.i.i160.i, label %_ZL9make_unspii.exit, label %2368 2368: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit.i - tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0183.0.lcssa.i) #17, !noalias !13 + tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0184.0.lcssa.i) #17, !noalias !13 br label %_ZL9make_unspii.exit 2369: ; preds = %2328, %.loopexit.split-lp.i, %.loopexit.i - %.sroa.0183.0207.i = phi ptr [ %.sroa.0183.0.lcssa.i, %2328 ], [ %.sroa.0183.0218.i, %.loopexit.i ], [ %.sroa.0183.0218.i, %.loopexit.split-lp.i ] + %.sroa.0184.0208.i = phi ptr [ %.sroa.0184.0.lcssa.i, %2328 ], [ %.sroa.0184.0219.i, %.loopexit.i ], [ %.sroa.0184.0219.i, %.loopexit.split-lp.i ] %.pn.i = phi { ptr, i32 } [ %2329, %2328 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ] - %.not.i.i.i161.i = icmp eq ptr %.sroa.0183.0207.i, null - br i1 %.not.i.i.i161.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit164.i, label %2370 + %.not.i.i.i162.i = icmp eq ptr %.sroa.0184.0208.i, null + br i1 %.not.i.i.i162.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit165.i, label %2370 2370: ; preds = %2369 - tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0183.0207.i) #17, !noalias !13 - br label %_ZNSt6vectorIfSaIfEED2Ev.exit164.i + tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0184.0208.i) #17, !noalias !13 + br label %_ZNSt6vectorIfSaIfEED2Ev.exit165.i -_ZNSt6vectorIfSaIfEED2Ev.exit164.i: ; preds = %2369, %2370 - tail call void @_ZdlPv(ptr noundef nonnull %.sink274.i) #17, !noalias !13 +_ZNSt6vectorIfSaIfEED2Ev.exit165.i: ; preds = %2369, %2370 + tail call void @_ZdlPv(ptr noundef nonnull %.sink275.i) #17, !noalias !13 resume { ptr, i32 } %.pn.i _ZL9make_unspii.exit: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit.i, %2368 @@ -3220,9 +3220,9 @@ _ZL9make_unspii.exit: ; preds = %_ZNSt6vectorIiSaIiE %2372 = load ptr, ptr %2371, align 8 %2373 = getelementptr inbounds i8, ptr %2371, i64 8 %2374 = getelementptr inbounds i8, ptr %2371, i64 16 - store ptr %.sink274.i, ptr %2371, align 8 - store ptr %.sink272.i, ptr %2373, align 8 - store ptr %.sink272.i, ptr %2374, align 8 + store ptr %.sink275.i, ptr %2371, align 8 + store ptr %.sink273.i, ptr %2373, align 8 + store ptr %.sink273.i, ptr %2374, align 8 %.not.i.i.i.i.i = icmp eq ptr %2372, null br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit, label %2375 diff --git a/bench/harfbuzz/optimized/harfbuzz.cc.ll b/bench/harfbuzz/optimized/harfbuzz.cc.ll index e440f440384..29b087b9d37 100644 --- a/bench/harfbuzz/optimized/harfbuzz.cc.ll +++ b/bench/harfbuzz/optimized/harfbuzz.cc.ll @@ -105368,7 +105368,7 @@ if.end: ; preds = %for.body %tobool.not = icmp eq i32 %add14.i.i62, 0 %spec.select = tail call i32 @llvm.umax.i32(i32 %add14.i.i62, i32 1) %inc = zext i1 %tobool.not to i32 - %spec.select23 = add nuw nsw i32 %add14.i.i36, %inc + %spec.select23 = add i32 %add14.i.i36, %inc %cmp21.not = icmp ult i32 %spec.select, %num_glyphs br i1 %cmp21.not, label %if.end23, label %for.inc41 diff --git a/bench/hermes/optimized/BigIntSupport.cpp.ll b/bench/hermes/optimized/BigIntSupport.cpp.ll index b288b5b19cb..29d2cccefc6 100644 --- a/bench/hermes/optimized/BigIntSupport.cpp.ll +++ b/bench/hermes/optimized/BigIntSupport.cpp.ll @@ -3650,9 +3650,9 @@ if.end8: ; preds = %if.end %.sroa.speculated39 = tail call i64 @llvm.umin.i64(i64 %add, i64 %conv12) %conv19 = zext i32 %numDigits to i64 %cmp.i24 = icmp samesign ugt i64 %.sroa.speculated39, %conv19 - br i1 %cmp.i24, label %return, label %if.end32 + br i1 %cmp.i24, label %return, label %if.end.i -if.end32: ; preds = %if.end8 +if.end.i: ; preds = %if.end8 %.sroa.speculated = tail call i64 @llvm.umin.i64(i64 %add, i64 %conv19) %mul.i25 = shl nuw nsw i64 %.sroa.speculated39, 3 %conv.i26 = and i64 %mul.i25, 4294967288 @@ -3673,7 +3673,7 @@ if.end32: ; preds = %if.end8 %cmp35 = icmp samesign ult i64 %div19, %conv34 br i1 %cmp35, label %if.then36, label %if.end68 -if.then36: ; preds = %if.end32 +if.then36: ; preds = %if.end.i %cmp37 = icmp eq i32 %operation, 0 br i1 %cmp37, label %land.end, label %land.end.thread @@ -3737,8 +3737,8 @@ if.end53: ; preds = %land.end.thread, %i %.pre67 = load i32, ptr %dst.coerce1, align 4 br label %if.end68 -if.end68: ; preds = %if.end53, %if.end32 - %27 = phi i32 [ %.pre67, %if.end53 ], [ %15, %if.end32 ] +if.end68: ; preds = %if.end53, %if.end.i + %27 = phi i32 [ %.pre67, %if.end53 ], [ %15, %if.end.i ] %mul.i30 = shl i32 %27, 3 %cmp.i.i.i = icmp eq i32 %mul.i30, 0 br i1 %cmp.i.i.i, label %return.sink.split, label %if.end.i.i31 diff --git a/bench/libzmq/optimized/pipe.cpp.ll b/bench/libzmq/optimized/pipe.cpp.ll index 9a27b66b26c..203d33b25f2 100644 --- a/bench/libzmq/optimized/pipe.cpp.ll +++ b/bench/libzmq/optimized/pipe.cpp.ll @@ -1915,17 +1915,17 @@ entry: %add4.i = add nsw i32 %.sroa.speculated.i, %outhwm_ %cmp.i = icmp slt i32 %inhwm_, 1 %cmp6.i = icmp eq i32 %0, 0 - %or.cond10.i = select i1 %cmp.i, i1 true, i1 %cmp6.i - %add.i = add nuw nsw i32 %inhwm_, 1 - %2 = add nuw nsw i32 %add.i, %.sroa.speculated7.i + %or.cond9.i = select i1 %cmp.i, i1 true, i1 %cmp6.i + %add.i = add i32 %inhwm_, 1 + %2 = add i32 %add.i, %.sroa.speculated7.i %cmp7.i = icmp slt i32 %outhwm_, 1 %cmp10.i = icmp eq i32 %1, 0 %or.cond.i = select i1 %cmp7.i, i1 true, i1 %cmp10.i %out.0.i = select i1 %or.cond.i, i32 0, i32 %add4.i - %3 = lshr i32 %2, 1 - %div.i9.i = select i1 %or.cond10.i, i32 0, i32 %3 + %3 = sdiv i32 %2, 2 + %div.i.i = select i1 %or.cond9.i, i32 0, i32 %3 %_lwm.i = getelementptr inbounds i8, ptr %this, i64 96 - store i32 %div.i9.i, ptr %_lwm.i, align 8 + store i32 %div.i.i, ptr %_lwm.i, align 8 %_hwm.i = getelementptr inbounds i8, ptr %this, i64 92 store i32 %out.0.i, ptr %_hwm.i, align 4 ret void @@ -1943,17 +1943,17 @@ entry: %add4 = add nsw i32 %.sroa.speculated, %outhwm_ %cmp = icmp slt i32 %inhwm_, 1 %cmp6 = icmp eq i32 %0, 0 - %or.cond10 = select i1 %cmp, i1 true, i1 %cmp6 - %add = add nuw nsw i32 %inhwm_, 1 - %2 = add nuw nsw i32 %add, %.sroa.speculated7 + %or.cond9 = select i1 %cmp, i1 true, i1 %cmp6 + %add = add i32 %inhwm_, 1 + %2 = add i32 %add, %.sroa.speculated7 %cmp7 = icmp slt i32 %outhwm_, 1 %cmp10 = icmp eq i32 %1, 0 %or.cond = select i1 %cmp7, i1 true, i1 %cmp10 %out.0 = select i1 %or.cond, i32 0, i32 %add4 - %3 = lshr i32 %2, 1 - %div.i9 = select i1 %or.cond10, i32 0, i32 %3 + %3 = sdiv i32 %2, 2 + %div.i = select i1 %or.cond9, i32 0, i32 %3 %_lwm = getelementptr inbounds i8, ptr %this, i64 96 - store i32 %div.i9, ptr %_lwm, align 8 + store i32 %div.i, ptr %_lwm, align 8 %_hwm = getelementptr inbounds i8, ptr %this, i64 92 store i32 %out.0, ptr %_hwm, align 4 ret void diff --git a/bench/llvm/optimized/AArch64ISelLowering.cpp.ll b/bench/llvm/optimized/AArch64ISelLowering.cpp.ll index ff679bd8a0a..c7eb2544095 100644 --- a/bench/llvm/optimized/AArch64ISelLowering.cpp.ll +++ b/bench/llvm/optimized/AArch64ISelLowering.cpp.ll @@ -92601,14 +92601,13 @@ _ZN4llvm5SDLocC2ERKS0_.exit: ; preds = %79, %95 %.rhs.trunc = trunc nuw i32 %73 to i8 %104 = udiv i8 64, %.rhs.trunc %105 = call i8 @llvm.umax.i8(i8 %104, i8 8) - %.sroa.speculated = zext nneg i8 %105 to i32 - %106 = add nsw i32 %.sroa.speculated, -8 - %107 = call i32 @llvm.fshl.i32(i32 %106, i32 %106, i32 29) - %108 = icmp ult i32 %107, 8 + %106 = add nsw i8 %105, -8 + %107 = call i8 @llvm.fshl.i8(i8 %106, i8 %106, i8 5) + %108 = icmp ult i8 %107, 8 br i1 %108, label %switch.lookup331, label %_ZN4llvm3MVT12getIntegerVTEj.exit switch.lookup331: ; preds = %103 - %109 = zext nneg i32 %107 to i64 + %109 = zext nneg i8 %107 to i64 %switch.gep332 = getelementptr inbounds [8 x i16], ptr @switch.table._ZL21vectorToScalarBitmaskPN4llvm6SDNodeERNS_12SelectionDAGE, i64 0, i64 %109 %switch.load333 = load i16, ptr %switch.gep332, align 2 br label %_ZN4llvm3MVT12getIntegerVTEj.exit @@ -174465,6 +174464,9 @@ declare i32 @llvm.umax.i32(i32, i32) #29 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i8 @llvm.umax.i8(i8, i8) #29 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i8 @llvm.fshl.i8(i8, i8, i8) #29 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i16 @llvm.ctpop.i16(i16) #29 diff --git a/bench/llvm/optimized/X86ISelLowering.cpp.ll b/bench/llvm/optimized/X86ISelLowering.cpp.ll index 9f24b55780c..b96075e59e1 100644 --- a/bench/llvm/optimized/X86ISelLowering.cpp.ll +++ b/bench/llvm/optimized/X86ISelLowering.cpp.ll @@ -76997,12 +76997,13 @@ _ZNK4llvm3MVT14is512BitVectorEv.exit.thread: ; preds = %_ZNK4llvm3MVT14is25 %285 = trunc i8 %284 to i1 %286 = select i1 %285, i32 16, i32 32 %.sroa.speculated = call i32 @llvm.umin.i32(i32 %286, i32 %220) - switch i32 %.sroa.speculated, label %291 [ - i32 32, label %290 - i32 2, label %_ZN4llvm3MVT12getIntegerVTEj.exit739 - i32 4, label %287 - i32 8, label %288 - i32 16, label %289 + %trunc = trunc nuw nsw i32 %.sroa.speculated to i8 + switch i8 %trunc, label %291 [ + i8 32, label %290 + i8 2, label %_ZN4llvm3MVT12getIntegerVTEj.exit739 + i8 4, label %287 + i8 8, label %288 + i8 16, label %289 ] 287: ; preds = %282 diff --git a/bench/luau/optimized/isocline.c.ll b/bench/luau/optimized/isocline.c.ll index 1a7fd297af6..9b516230dea 100644 --- a/bench/luau/optimized/isocline.c.ll +++ b/bench/luau/optimized/isocline.c.ll @@ -9948,10 +9948,10 @@ str_limit_to_length.exit: ; preds = %.lr.ph.i, %14 %29 = getelementptr inbounds i8, ptr %0, i64 24 %30 = load ptr, ptr %29, align 8 %31 = load ptr, ptr %0, align 8 - %32 = add nuw nsw i64 %spec.select34.i, 1 - %33 = getelementptr i8, ptr %30, i64 8 - %.val.i = load ptr, ptr %33, align 8 - %34 = tail call ptr %.val.i(ptr noundef %31, i64 noundef %32) #32 + %32 = getelementptr i8, ptr %30, i64 8 + %.val.i = load ptr, ptr %32, align 8 + %33 = add nuw nsw i64 %spec.select34.i, 1 + %34 = tail call ptr %.val.i(ptr noundef %31, i64 noundef %33) #32 %35 = icmp eq ptr %34, null br i1 %35, label %sbuf_ensure_extra.exit, label %36 @@ -11665,10 +11665,10 @@ ic_strlen.exit: ; preds = %3, %6 %23 = getelementptr inbounds i8, ptr %0, i64 24 %24 = load ptr, ptr %23, align 8 %25 = load ptr, ptr %0, align 8 - %26 = add nuw nsw i64 %spec.select34.i, 1 - %27 = getelementptr i8, ptr %24, i64 8 - %.val.i = load ptr, ptr %27, align 8 - %28 = tail call ptr %.val.i(ptr noundef %25, i64 noundef %26) #32 + %26 = getelementptr i8, ptr %24, i64 8 + %.val.i = load ptr, ptr %26, align 8 + %27 = add nuw nsw i64 %spec.select34.i, 1 + %28 = tail call ptr %.val.i(ptr noundef %25, i64 noundef %27) #32 %29 = icmp eq ptr %28, null br i1 %29, label %sbuf_ensure_extra.exit, label %30 @@ -11732,10 +11732,10 @@ ic_strlen.exit: ; preds = %3, %6 %61 = getelementptr inbounds i8, ptr %0, i64 24 %62 = load ptr, ptr %61, align 8 %63 = load ptr, ptr %0, align 8 - %64 = add nuw nsw i64 %spec.select34.i43, 1 - %65 = getelementptr i8, ptr %62, i64 8 - %.val.i44 = load ptr, ptr %65, align 8 - %66 = call ptr %.val.i44(ptr noundef %63, i64 noundef %64) #32 + %64 = getelementptr i8, ptr %62, i64 8 + %.val.i44 = load ptr, ptr %64, align 8 + %65 = add nuw nsw i64 %spec.select34.i43, 1 + %66 = call ptr %.val.i44(ptr noundef %63, i64 noundef %65) #32 %67 = icmp eq ptr %66, null br i1 %67, label %sbuf_ensure_extra.exit, label %68 @@ -19385,10 +19385,10 @@ str_limit_to_length.exit.i.i: ; preds = %sbuf_append.exit.i, %443 = getelementptr inbounds i8, ptr %423, i64 24 %444 = load ptr, ptr %443, align 8 %445 = load ptr, ptr %423, align 8 - %446 = add nuw nsw i64 %spec.select34.i.i.i, 1 - %447 = getelementptr i8, ptr %444, i64 8 - %.val.i.i.i = load ptr, ptr %447, align 8 - %448 = call ptr %.val.i.i.i(ptr noundef %445, i64 noundef %446) #32 + %446 = getelementptr i8, ptr %444, i64 8 + %.val.i.i.i = load ptr, ptr %446, align 8 + %447 = add nuw nsw i64 %spec.select34.i.i.i, 1 + %448 = call ptr %.val.i.i.i(ptr noundef %445, i64 noundef %447) #32 %449 = icmp eq ptr %448, null br i1 %449, label %sbuf_insert_at_n.exit.i, label %450 @@ -19481,10 +19481,10 @@ sbuf_append.exit.i.thread.i: ; preds = %sbuf_insert_at_n.ex %491 = getelementptr inbounds i8, ptr %471, i64 24 %492 = load ptr, ptr %491, align 8 %493 = load ptr, ptr %471, align 8 - %494 = add nuw nsw i64 %spec.select34.i.i335.i, 1 - %495 = getelementptr i8, ptr %492, i64 8 - %.val.i.i336.i = load ptr, ptr %495, align 8 - %496 = call ptr %.val.i.i336.i(ptr noundef %493, i64 noundef %494) #32 + %494 = getelementptr i8, ptr %492, i64 8 + %.val.i.i336.i = load ptr, ptr %494, align 8 + %495 = add nuw nsw i64 %spec.select34.i.i335.i, 1 + %496 = call ptr %.val.i.i336.i(ptr noundef %493, i64 noundef %495) #32 %497 = icmp eq ptr %496, null br i1 %497, label %sbuf_insert_at_n.exit339.i, label %498 @@ -19575,10 +19575,10 @@ editor_append_completion3.exit.thread.i: ; preds = %sbuf_insert_at_n.ex %537 = getelementptr inbounds i8, ptr %517, i64 24 %538 = load ptr, ptr %537, align 8 %539 = load ptr, ptr %517, align 8 - %540 = add nuw nsw i64 %spec.select34.i.i317.i, 1 - %541 = getelementptr i8, ptr %538, i64 8 - %.val.i.i318.i = load ptr, ptr %541, align 8 - %542 = call ptr %.val.i.i318.i(ptr noundef %539, i64 noundef %540) #32 + %540 = getelementptr i8, ptr %538, i64 8 + %.val.i.i318.i = load ptr, ptr %540, align 8 + %541 = add nuw nsw i64 %spec.select34.i.i317.i, 1 + %542 = call ptr %.val.i.i318.i(ptr noundef %539, i64 noundef %541) #32 %543 = icmp eq ptr %542, null br i1 %543, label %sbuf_insert_at_n.exit321.i, label %544 @@ -20293,10 +20293,10 @@ str_limit_to_length.exit.i415.i: ; preds = %sbuf_append.exit215 %830 = getelementptr inbounds i8, ptr %810, i64 24 %831 = load ptr, ptr %830, align 8 %832 = load ptr, ptr %810, align 8 - %833 = add nuw nsw i64 %spec.select34.i.i422.i, 1 - %834 = getelementptr i8, ptr %831, i64 8 - %.val.i.i423.i = load ptr, ptr %834, align 8 - %835 = call ptr %.val.i.i423.i(ptr noundef %832, i64 noundef %833) #32 + %833 = getelementptr i8, ptr %831, i64 8 + %.val.i.i423.i = load ptr, ptr %833, align 8 + %834 = add nuw nsw i64 %spec.select34.i.i422.i, 1 + %835 = call ptr %.val.i.i423.i(ptr noundef %832, i64 noundef %834) #32 %836 = icmp eq ptr %835, null br i1 %836, label %sbuf_insert_at_n.exit426.i, label %837 @@ -20388,10 +20388,10 @@ editor_append_completion2.exit.thread.i: ; preds = %sbuf_insert_at_n.ex %877 = getelementptr inbounds i8, ptr %857, i64 24 %878 = load ptr, ptr %877, align 8 %879 = load ptr, ptr %857, align 8 - %880 = add nuw nsw i64 %spec.select34.i.i440.i, 1 - %881 = getelementptr i8, ptr %878, i64 8 - %.val.i.i441.i = load ptr, ptr %881, align 8 - %882 = call ptr %.val.i.i441.i(ptr noundef %879, i64 noundef %880) #32 + %880 = getelementptr i8, ptr %878, i64 8 + %.val.i.i441.i = load ptr, ptr %880, align 8 + %881 = add nuw nsw i64 %spec.select34.i.i440.i, 1 + %882 = call ptr %.val.i.i441.i(ptr noundef %879, i64 noundef %881) #32 %883 = icmp eq ptr %882, null br i1 %883, label %sbuf_insert_at_n.exit444.i, label %884 @@ -20498,10 +20498,10 @@ str_limit_to_length.exit.i451.i: ; preds = %sbuf_append.exit221 %925 = getelementptr inbounds i8, ptr %905, i64 24 %926 = load ptr, ptr %925, align 8 %927 = load ptr, ptr %905, align 8 - %928 = add nuw nsw i64 %spec.select34.i.i458.i, 1 - %929 = getelementptr i8, ptr %926, i64 8 - %.val.i.i459.i = load ptr, ptr %929, align 8 - %930 = call ptr %.val.i.i459.i(ptr noundef %927, i64 noundef %928) #32 + %928 = getelementptr i8, ptr %926, i64 8 + %.val.i.i459.i = load ptr, ptr %928, align 8 + %929 = add nuw nsw i64 %spec.select34.i.i458.i, 1 + %930 = call ptr %.val.i.i459.i(ptr noundef %927, i64 noundef %929) #32 %931 = icmp eq ptr %930, null br i1 %931, label %sbuf_insert_at_n.exit462.i, label %932 diff --git a/bench/ncnn/optimized/convolution_x86.cpp.ll b/bench/ncnn/optimized/convolution_x86.cpp.ll index 245c9df0020..a1eac8cf041 100644 --- a/bench/ncnn/optimized/convolution_x86.cpp.ll +++ b/bench/ncnn/optimized/convolution_x86.cpp.ll @@ -40488,7 +40488,7 @@ define internal fastcc void @_ZN4ncnnL20get_optimal_tile_mnkEiiiRiS0_S0_i(i32 no %.sroa.speculated58 = tail call i32 @llvm.smin.i32(i32 %51, i32 %.sroa.speculated62) store i32 %.sroa.speculated58, ptr %5, align 4 %52 = icmp sgt i32 %1, 0 - br i1 %52, label %53, label %71 + br i1 %52, label %53, label %72 53: ; preds = %37 %54 = load i32, ptr %3, align 4 @@ -40504,16 +40504,17 @@ define internal fastcc void @_ZN4ncnnL20get_optimal_tile_mnkEiiiRiS0_S0_i(i32 no %.sroa.speculated52 = tail call i32 @llvm.smax.i32(i32 %63, i32 4) %64 = add nsw i32 %1, -1 %65 = add nuw i32 %64, %.sroa.speculated52 - %66 = udiv i32 %65, %.sroa.speculated52 - %67 = add nuw i32 %64, %66 - %68 = udiv i32 %67, %66 - %69 = add nuw nsw i32 %68, 3 - %70 = and i32 %69, -4 - %.sroa.speculated = tail call i32 @llvm.umin.i32(i32 %70, i32 %.sroa.speculated52) + %66 = sdiv i32 %65, %.sroa.speculated52 + %67 = add i32 %64, %66 + %68 = sdiv i32 %67, %66 + %69 = add nsw i32 %68, 3 + %70 = sdiv i32 %69, 4 + %71 = shl nsw i32 %70, 2 + %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %71, i32 %.sroa.speculated52) store i32 %.sroa.speculated, ptr %4, align 4 - br label %71 + br label %72 -71: ; preds = %53, %37 +72: ; preds = %53, %37 ret void } @@ -40592,7 +40593,7 @@ define internal fastcc void @_ZN4ncnnL44convolution_im2col_gemm_get_optimal_tile %49 = phi i32 [ %.sroa.speculated83, %44 ], [ %.sroa.speculated88, %13 ] store i32 %49, ptr %3, align 4 %50 = icmp sgt i32 %1, 0 - br i1 %50, label %51, label %66 + br i1 %50, label %51, label %67 51: ; preds = %48 %52 = load i32, ptr %5, align 4 @@ -40607,17 +40608,18 @@ define internal fastcc void @_ZN4ncnnL44convolution_im2col_gemm_get_optimal_tile %.sroa.speculated69 = tail call i32 @llvm.smax.i32(i32 %58, i32 4) %59 = add nsw i32 %1, -1 %60 = add nuw i32 %59, %.sroa.speculated69 - %61 = udiv i32 %60, %.sroa.speculated69 - %62 = add nuw i32 %59, %61 - %63 = udiv i32 %62, %61 - %64 = add nuw nsw i32 %63, 3 - %65 = and i32 %64, -4 - %.sroa.speculated64 = tail call i32 @llvm.umin.i32(i32 %65, i32 %.sroa.speculated69) - %.sroa.speculated = tail call i32 @llvm.umax.i32(i32 %.sroa.speculated64, i32 4) + %61 = sdiv i32 %60, %.sroa.speculated69 + %62 = add i32 %59, %61 + %63 = sdiv i32 %62, %61 + %64 = add nsw i32 %63, 3 + %65 = sdiv i32 %64, 4 + %66 = shl nsw i32 %65, 2 + %.sroa.speculated64 = tail call i32 @llvm.smin.i32(i32 %66, i32 %.sroa.speculated69) + %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %.sroa.speculated64, i32 4) store i32 %.sroa.speculated, ptr %4, align 4 - br label %66 + br label %67 -66: ; preds = %51, %48 +67: ; preds = %51, %48 ret void } @@ -45899,7 +45901,7 @@ define internal fastcc void @_ZN4ncnnL25get_optimal_tile_mnk_int8EiiiRiS0_S0_i(i %.sroa.speculated58 = tail call i32 @llvm.smin.i32(i32 %51, i32 %.sroa.speculated62) store i32 %.sroa.speculated58, ptr %5, align 4 %52 = icmp sgt i32 %1, 0 - br i1 %52, label %53, label %72 + br i1 %52, label %53, label %73 53: ; preds = %37 %54 = load i32, ptr %3, align 4 @@ -45916,16 +45918,17 @@ define internal fastcc void @_ZN4ncnnL25get_optimal_tile_mnk_int8EiiiRiS0_S0_i(i %.sroa.speculated52 = tail call i32 @llvm.smax.i32(i32 %64, i32 4) %65 = add nsw i32 %1, -1 %66 = add nuw i32 %65, %.sroa.speculated52 - %67 = udiv i32 %66, %.sroa.speculated52 - %68 = add nuw i32 %65, %67 - %69 = udiv i32 %68, %67 - %70 = add nuw nsw i32 %69, 3 - %71 = and i32 %70, -4 - %.sroa.speculated = tail call i32 @llvm.umin.i32(i32 %71, i32 %.sroa.speculated52) + %67 = sdiv i32 %66, %.sroa.speculated52 + %68 = add i32 %65, %67 + %69 = sdiv i32 %68, %67 + %70 = add nsw i32 %69, 3 + %71 = sdiv i32 %70, 4 + %72 = shl nsw i32 %71, 2 + %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %72, i32 %.sroa.speculated52) store i32 %.sroa.speculated, ptr %4, align 4 - br label %72 + br label %73 -72: ; preds = %53, %37 +73: ; preds = %53, %37 ret void } @@ -45995,7 +45998,7 @@ define internal fastcc void @_ZN4ncnnL49convolution_im2col_gemm_get_optimal_tile %51 = phi i32 [ %.sroa.speculated73, %46 ], [ %.sroa.speculated77, %13 ] store i32 %51, ptr %3, align 4 %52 = icmp sgt i32 %1, 0 - br i1 %52, label %53, label %71 + br i1 %52, label %53, label %72 53: ; preds = %50 %54 = load i32, ptr %5, align 4 @@ -46014,16 +46017,17 @@ define internal fastcc void @_ZN4ncnnL49convolution_im2col_gemm_get_optimal_tile %.sroa.speculated61 = tail call i32 @llvm.smax.i32(i32 %63, i32 4) %64 = add nsw i32 %1, -1 %65 = add nuw i32 %64, %.sroa.speculated61 - %66 = udiv i32 %65, %.sroa.speculated61 - %67 = add nuw i32 %64, %66 - %68 = udiv i32 %67, %66 - %69 = add nuw nsw i32 %68, 3 - %70 = and i32 %69, -4 - %.sroa.speculated = tail call i32 @llvm.umin.i32(i32 %70, i32 %.sroa.speculated61) + %66 = sdiv i32 %65, %.sroa.speculated61 + %67 = add i32 %64, %66 + %68 = sdiv i32 %67, %66 + %69 = add nsw i32 %68, 3 + %70 = sdiv i32 %69, 4 + %71 = shl nsw i32 %70, 2 + %.sroa.speculated = tail call i32 @llvm.smin.i32(i32 %71, i32 %.sroa.speculated61) store i32 %.sroa.speculated, ptr %4, align 4 - br label %71 + br label %72 -71: ; preds = %53, %50 +72: ; preds = %53, %50 ret void } @@ -50257,9 +50261,6 @@ declare i32 @llvm.smax.i32(i32, i32) #18 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #18 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #18 - ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #19 @@ -50269,9 +50270,6 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #20 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #20 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #18 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.smin.i64(i64, i64) #18 diff --git a/bench/ncnn/optimized/gemm_x86.cpp.ll b/bench/ncnn/optimized/gemm_x86.cpp.ll index 45188aa658c..ae316f17f53 100644 --- a/bench/ncnn/optimized/gemm_x86.cpp.ll +++ b/bench/ncnn/optimized/gemm_x86.cpp.ll @@ -921,118 +921,119 @@ define internal fastcc void @_ZN4ncnnL20get_optimal_tile_mnkEiiiiiiRiS0_S0_i(i32 store i32 %.sroa.speculated115, ptr %7, align 4 store i32 %.sroa.speculated115, ptr %8, align 4 %23 = icmp sgt i32 %2, 0 - br i1 %23, label %24, label %40 + br i1 %23, label %24, label %41 24: ; preds = %16 %25 = add nsw i32 %2, -1 %26 = add nuw i32 %25, %.sroa.speculated115 - %27 = udiv i32 %26, %.sroa.speculated115 - %28 = add nuw i32 %25, %27 - %29 = udiv i32 %28, %27 - %30 = add nuw nsw i32 %29, 3 - %31 = and i32 %30, -4 - %.sroa.speculated99 = tail call i32 @llvm.umin.i32(i32 %31, i32 %.sroa.speculated115) + %27 = sdiv i32 %26, %.sroa.speculated115 + %28 = add i32 %25, %27 + %29 = sdiv i32 %28, %27 + %30 = add nsw i32 %29, 3 + %31 = sdiv i32 %30, 4 + %32 = shl nsw i32 %31, 2 + %.sroa.speculated99 = tail call i32 @llvm.smin.i32(i32 %32, i32 %.sroa.speculated115) store i32 %.sroa.speculated99, ptr %8, align 4 - %32 = icmp eq i32 %27, 1 - br i1 %32, label %33, label %40 - -33: ; preds = %24 - %34 = fmul fast float %17, 1.250000e-01 - %35 = uitofp nneg i32 %.sroa.speculated99 to float - %36 = fdiv fast float %34, %35 - %37 = fptosi float %36 to i32 - %38 = sdiv i32 %37, 4 - %39 = shl nsw i32 %38, 2 - %.sroa.speculated93 = tail call i32 @llvm.smax.i32(i32 %39, i32 4) + %33 = icmp eq i32 %27, 1 + br i1 %33, label %34, label %41 + +34: ; preds = %24 + %35 = fmul fast float %17, 1.250000e-01 + %36 = sitofp i32 %.sroa.speculated99 to float + %37 = fdiv fast float %35, %36 + %38 = fptosi float %37 to i32 + %39 = sdiv i32 %38, 4 + %40 = shl nsw i32 %39, 2 + %.sroa.speculated93 = tail call i32 @llvm.smax.i32(i32 %40, i32 4) store i32 %.sroa.speculated93, ptr %6, align 4 store i32 %.sroa.speculated93, ptr %7, align 4 - br label %40 - -40: ; preds = %24, %33, %16 - %41 = tail call noundef i32 @_ZN4ncnn22get_physical_cpu_countEv() - %.sroa.speculated83 = tail call i32 @llvm.smin.i32(i32 %41, i32 %.0) - %42 = load i32, ptr %6, align 4 - %43 = mul nsw i32 %42, %.sroa.speculated83 - %44 = icmp sgt i32 %0, 0 - br i1 %44, label %45, label %54 - -45: ; preds = %40 - %46 = add nsw i32 %0, -1 - %47 = add i32 %46, %43 - %48 = sdiv i32 %47, %43 - %49 = add i32 %46, %48 - %50 = sdiv i32 %49, %48 - %51 = add nsw i32 %50, 3 - %52 = sdiv i32 %51, 4 - %53 = shl nsw i32 %52, 2 - %.sroa.speculated79 = tail call i32 @llvm.smin.i32(i32 %53, i32 %43) - br label %54 - -54: ; preds = %45, %40 - %storemerge = phi i32 [ %.sroa.speculated79, %45 ], [ %43, %40 ] + br label %41 + +41: ; preds = %24, %34, %16 + %42 = tail call noundef i32 @_ZN4ncnn22get_physical_cpu_countEv() + %.sroa.speculated83 = tail call i32 @llvm.smin.i32(i32 %42, i32 %.0) + %43 = load i32, ptr %6, align 4 + %44 = mul nsw i32 %43, %.sroa.speculated83 + %45 = icmp sgt i32 %0, 0 + br i1 %45, label %46, label %55 + +46: ; preds = %41 + %47 = add nsw i32 %0, -1 + %48 = add i32 %47, %44 + %49 = sdiv i32 %48, %44 + %50 = add i32 %47, %49 + %51 = sdiv i32 %50, %49 + %52 = add nsw i32 %51, 3 + %53 = sdiv i32 %52, 4 + %54 = shl nsw i32 %53, 2 + %.sroa.speculated79 = tail call i32 @llvm.smin.i32(i32 %54, i32 %44) + br label %55 + +55: ; preds = %46, %41 + %storemerge = phi i32 [ %.sroa.speculated79, %46 ], [ %44, %41 ] store i32 %storemerge, ptr %6, align 4 - %55 = icmp sgt i32 %1, 0 - br i1 %55, label %56, label %66 - -56: ; preds = %54 - %57 = load i32, ptr %7, align 4 - %58 = add nsw i32 %1, -1 - %59 = add i32 %58, %57 - %60 = sdiv i32 %59, %57 - %61 = add i32 %58, %60 - %62 = sdiv i32 %61, %60 - %63 = add nsw i32 %62, 3 - %64 = sdiv i32 %63, 4 - %65 = shl nsw i32 %64, 2 - %.sroa.speculated75 = tail call i32 @llvm.smin.i32(i32 %65, i32 %57) + %56 = icmp sgt i32 %1, 0 + br i1 %56, label %57, label %67 + +57: ; preds = %55 + %58 = load i32, ptr %7, align 4 + %59 = add nsw i32 %1, -1 + %60 = add i32 %59, %58 + %61 = sdiv i32 %60, %58 + %62 = add i32 %59, %61 + %63 = sdiv i32 %62, %61 + %64 = add nsw i32 %63, 3 + %65 = sdiv i32 %64, 4 + %66 = shl nsw i32 %65, 2 + %.sroa.speculated75 = tail call i32 @llvm.smin.i32(i32 %66, i32 %58) store i32 %.sroa.speculated75, ptr %7, align 4 - br label %66 - -66: ; preds = %56, %54 - %67 = icmp sgt i32 %.0, 1 - br i1 %67, label %68, label %73 - -68: ; preds = %66 - %69 = load i32, ptr %6, align 4 - %70 = sdiv i32 %69, %.0 - %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %70, i32 1) - %71 = add nuw nsw i32 %.sroa.speculated, 3 - %72 = and i32 %71, 2147483644 - %.sroa.speculated71 = tail call i32 @llvm.smin.i32(i32 %72, i32 %69) + br label %67 + +67: ; preds = %57, %55 + %68 = icmp sgt i32 %.0, 1 + br i1 %68, label %69, label %74 + +69: ; preds = %67 + %70 = load i32, ptr %6, align 4 + %71 = sdiv i32 %70, %.0 + %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %71, i32 1) + %72 = add nuw nsw i32 %.sroa.speculated, 3 + %73 = and i32 %72, 2147483644 + %.sroa.speculated71 = tail call i32 @llvm.smin.i32(i32 %73, i32 %70) store i32 %.sroa.speculated71, ptr %6, align 4 - br label %73 + br label %74 -73: ; preds = %68, %66 - %74 = icmp sgt i32 %3, 0 - br i1 %74, label %75, label %78 - -75: ; preds = %73 - %76 = add nuw nsw i32 %3, 3 - %77 = and i32 %76, 2147483644 - store i32 %77, ptr %6, align 4 - br label %78 - -78: ; preds = %75, %73 - %79 = icmp sgt i32 %4, 0 - br i1 %79, label %80, label %83 - -80: ; preds = %78 - %81 = add nuw nsw i32 %4, 3 - %82 = and i32 %81, 2147483644 - store i32 %82, ptr %7, align 4 - br label %83 - -83: ; preds = %80, %78 - %84 = icmp sgt i32 %5, 0 - br i1 %84, label %85, label %88 - -85: ; preds = %83 - %86 = add nuw nsw i32 %5, 3 - %87 = and i32 %86, 2147483644 - store i32 %87, ptr %8, align 4 - br label %88 - -88: ; preds = %85, %83 +74: ; preds = %69, %67 + %75 = icmp sgt i32 %3, 0 + br i1 %75, label %76, label %79 + +76: ; preds = %74 + %77 = add nuw nsw i32 %3, 3 + %78 = and i32 %77, 2147483644 + store i32 %78, ptr %6, align 4 + br label %79 + +79: ; preds = %76, %74 + %80 = icmp sgt i32 %4, 0 + br i1 %80, label %81, label %84 + +81: ; preds = %79 + %82 = add nuw nsw i32 %4, 3 + %83 = and i32 %82, 2147483644 + store i32 %83, ptr %7, align 4 + br label %84 + +84: ; preds = %81, %79 + %85 = icmp sgt i32 %5, 0 + br i1 %85, label %86, label %89 + +86: ; preds = %84 + %87 = add nuw nsw i32 %5, 3 + %88 = and i32 %87, 2147483644 + store i32 %88, ptr %8, align 4 + br label %89 + +89: ; preds = %86, %84 ret void } @@ -10427,9 +10428,6 @@ declare noundef i32 @fputc(i32 noundef, ptr nocapture noundef) local_unnamed_add ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #12 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #12 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #12 diff --git a/bench/ncnn/optimized/gemm_x86_avx.cpp.ll b/bench/ncnn/optimized/gemm_x86_avx.cpp.ll index 61c59727b64..51fec8bef73 100644 --- a/bench/ncnn/optimized/gemm_x86_avx.cpp.ll +++ b/bench/ncnn/optimized/gemm_x86_avx.cpp.ll @@ -927,121 +927,122 @@ define internal fastcc void @_ZN4ncnnL20get_optimal_tile_mnkEiiiiiiRiS0_S0_i(i32 store i32 %.sroa.speculated109, ptr %7, align 4 store i32 %.sroa.speculated115, ptr %8, align 4 %25 = icmp sgt i32 %2, 0 - br i1 %25, label %26, label %44 + br i1 %25, label %26, label %45 26: ; preds = %16 %27 = add nsw i32 %2, -1 %28 = add nuw i32 %27, %.sroa.speculated115 - %29 = udiv i32 %28, %.sroa.speculated115 - %30 = add nuw i32 %27, %29 - %31 = udiv i32 %30, %29 - %32 = add nuw nsw i32 %31, 7 - %33 = and i32 %32, -8 - %.sroa.speculated99 = tail call i32 @llvm.umin.i32(i32 %33, i32 %.sroa.speculated115) + %29 = sdiv i32 %28, %.sroa.speculated115 + %30 = add i32 %27, %29 + %31 = sdiv i32 %30, %29 + %32 = add nsw i32 %31, 7 + %33 = sdiv i32 %32, 8 + %34 = shl nsw i32 %33, 3 + %.sroa.speculated99 = tail call i32 @llvm.smin.i32(i32 %34, i32 %.sroa.speculated115) store i32 %.sroa.speculated99, ptr %8, align 4 - %34 = icmp eq i32 %29, 1 - br i1 %34, label %35, label %44 - -35: ; preds = %26 - %36 = fmul fast float %17, 1.250000e-01 - %37 = uitofp nneg i32 %.sroa.speculated99 to float - %38 = fdiv fast float %36, %37 - %39 = fptosi float %38 to i32 - %40 = sdiv i32 %39, 8 - %41 = shl nsw i32 %40, 3 - %.sroa.speculated93 = tail call i32 @llvm.smax.i32(i32 %41, i32 8) + %35 = icmp eq i32 %29, 1 + br i1 %35, label %36, label %45 + +36: ; preds = %26 + %37 = fmul fast float %17, 1.250000e-01 + %38 = sitofp i32 %.sroa.speculated99 to float + %39 = fdiv fast float %37, %38 + %40 = fptosi float %39 to i32 + %41 = sdiv i32 %40, 8 + %42 = shl nsw i32 %41, 3 + %.sroa.speculated93 = tail call i32 @llvm.smax.i32(i32 %42, i32 8) store i32 %.sroa.speculated93, ptr %6, align 4 - %42 = sdiv i32 %39, 4 - %43 = shl nsw i32 %42, 2 - %.sroa.speculated87 = tail call i32 @llvm.smax.i32(i32 %43, i32 4) + %43 = sdiv i32 %40, 4 + %44 = shl nsw i32 %43, 2 + %.sroa.speculated87 = tail call i32 @llvm.smax.i32(i32 %44, i32 4) store i32 %.sroa.speculated87, ptr %7, align 4 - br label %44 - -44: ; preds = %26, %35, %16 - %45 = tail call noundef i32 @_ZN4ncnn22get_physical_cpu_countEv() - %.sroa.speculated83 = tail call i32 @llvm.smin.i32(i32 %45, i32 %.0) - %46 = load i32, ptr %6, align 4 - %47 = mul nsw i32 %46, %.sroa.speculated83 - %48 = icmp sgt i32 %0, 0 - br i1 %48, label %49, label %58 - -49: ; preds = %44 - %50 = add nsw i32 %0, -1 - %51 = add i32 %50, %47 - %52 = sdiv i32 %51, %47 - %53 = add i32 %50, %52 - %54 = sdiv i32 %53, %52 - %55 = add nsw i32 %54, 7 - %56 = sdiv i32 %55, 8 - %57 = shl nsw i32 %56, 3 - %.sroa.speculated79 = tail call i32 @llvm.smin.i32(i32 %57, i32 %47) - br label %58 - -58: ; preds = %49, %44 - %storemerge = phi i32 [ %.sroa.speculated79, %49 ], [ %47, %44 ] + br label %45 + +45: ; preds = %26, %36, %16 + %46 = tail call noundef i32 @_ZN4ncnn22get_physical_cpu_countEv() + %.sroa.speculated83 = tail call i32 @llvm.smin.i32(i32 %46, i32 %.0) + %47 = load i32, ptr %6, align 4 + %48 = mul nsw i32 %47, %.sroa.speculated83 + %49 = icmp sgt i32 %0, 0 + br i1 %49, label %50, label %59 + +50: ; preds = %45 + %51 = add nsw i32 %0, -1 + %52 = add i32 %51, %48 + %53 = sdiv i32 %52, %48 + %54 = add i32 %51, %53 + %55 = sdiv i32 %54, %53 + %56 = add nsw i32 %55, 7 + %57 = sdiv i32 %56, 8 + %58 = shl nsw i32 %57, 3 + %.sroa.speculated79 = tail call i32 @llvm.smin.i32(i32 %58, i32 %48) + br label %59 + +59: ; preds = %50, %45 + %storemerge = phi i32 [ %.sroa.speculated79, %50 ], [ %48, %45 ] store i32 %storemerge, ptr %6, align 4 - %59 = icmp sgt i32 %1, 0 - br i1 %59, label %60, label %70 - -60: ; preds = %58 - %61 = load i32, ptr %7, align 4 - %62 = add nsw i32 %1, -1 - %63 = add i32 %62, %61 - %64 = sdiv i32 %63, %61 - %65 = add i32 %62, %64 - %66 = sdiv i32 %65, %64 - %67 = add nsw i32 %66, 3 - %68 = sdiv i32 %67, 4 - %69 = shl nsw i32 %68, 2 - %.sroa.speculated75 = tail call i32 @llvm.smin.i32(i32 %69, i32 %61) + %60 = icmp sgt i32 %1, 0 + br i1 %60, label %61, label %71 + +61: ; preds = %59 + %62 = load i32, ptr %7, align 4 + %63 = add nsw i32 %1, -1 + %64 = add i32 %63, %62 + %65 = sdiv i32 %64, %62 + %66 = add i32 %63, %65 + %67 = sdiv i32 %66, %65 + %68 = add nsw i32 %67, 3 + %69 = sdiv i32 %68, 4 + %70 = shl nsw i32 %69, 2 + %.sroa.speculated75 = tail call i32 @llvm.smin.i32(i32 %70, i32 %62) store i32 %.sroa.speculated75, ptr %7, align 4 - br label %70 - -70: ; preds = %60, %58 - %71 = icmp sgt i32 %.0, 1 - br i1 %71, label %72, label %77 - -72: ; preds = %70 - %73 = load i32, ptr %6, align 4 - %74 = sdiv i32 %73, %.0 - %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %74, i32 1) - %75 = add nuw nsw i32 %.sroa.speculated, 7 - %76 = and i32 %75, 2147483640 - %.sroa.speculated71 = tail call i32 @llvm.smin.i32(i32 %76, i32 %73) + br label %71 + +71: ; preds = %61, %59 + %72 = icmp sgt i32 %.0, 1 + br i1 %72, label %73, label %78 + +73: ; preds = %71 + %74 = load i32, ptr %6, align 4 + %75 = sdiv i32 %74, %.0 + %.sroa.speculated = tail call i32 @llvm.smax.i32(i32 %75, i32 1) + %76 = add nuw nsw i32 %.sroa.speculated, 7 + %77 = and i32 %76, 2147483640 + %.sroa.speculated71 = tail call i32 @llvm.smin.i32(i32 %77, i32 %74) store i32 %.sroa.speculated71, ptr %6, align 4 - br label %77 - -77: ; preds = %72, %70 - %78 = icmp sgt i32 %3, 0 - br i1 %78, label %79, label %82 - -79: ; preds = %77 - %80 = add nuw nsw i32 %3, 7 - %81 = and i32 %80, 2147483640 - store i32 %81, ptr %6, align 4 - br label %82 - -82: ; preds = %79, %77 - %83 = icmp sgt i32 %4, 0 - br i1 %83, label %84, label %87 - -84: ; preds = %82 - %85 = add nuw nsw i32 %4, 3 - %86 = and i32 %85, 2147483644 - store i32 %86, ptr %7, align 4 - br label %87 - -87: ; preds = %84, %82 - %88 = icmp sgt i32 %5, 0 - br i1 %88, label %89, label %92 - -89: ; preds = %87 - %90 = add nuw nsw i32 %5, 7 - %91 = and i32 %90, 2147483640 - store i32 %91, ptr %8, align 4 - br label %92 - -92: ; preds = %89, %87 + br label %78 + +78: ; preds = %73, %71 + %79 = icmp sgt i32 %3, 0 + br i1 %79, label %80, label %83 + +80: ; preds = %78 + %81 = add nuw nsw i32 %3, 7 + %82 = and i32 %81, 2147483640 + store i32 %82, ptr %6, align 4 + br label %83 + +83: ; preds = %80, %78 + %84 = icmp sgt i32 %4, 0 + br i1 %84, label %85, label %88 + +85: ; preds = %83 + %86 = add nuw nsw i32 %4, 3 + %87 = and i32 %86, 2147483644 + store i32 %87, ptr %7, align 4 + br label %88 + +88: ; preds = %85, %83 + %89 = icmp sgt i32 %5, 0 + br i1 %89, label %90, label %93 + +90: ; preds = %88 + %91 = add nuw nsw i32 %5, 7 + %92 = and i32 %91, 2147483640 + store i32 %92, ptr %8, align 4 + br label %93 + +93: ; preds = %90, %88 ret void } @@ -13954,9 +13955,6 @@ declare noundef i32 @fputc(i32 noundef, ptr nocapture noundef) local_unnamed_add ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #12 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #12 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #12 diff --git a/bench/oiio/optimized/imagebufalgo.cpp.ll b/bench/oiio/optimized/imagebufalgo.cpp.ll index e4ea1d50a6c..eb66a0bf46f 100644 --- a/bench/oiio/optimized/imagebufalgo.cpp.ll +++ b/bench/oiio/optimized/imagebufalgo.cpp.ll @@ -6212,23 +6212,23 @@ entry: call void @_ZN18OpenImageIO_v2_6_09ImageSpecC1EiiiNS_8TypeDescE(ptr noundef nonnull align 8 dereferenceable(160) %spec, i32 noundef %or, i32 noundef %or10, i32 noundef 1, ptr noundef nonnull %agg.tmp) #25 %depth12 = getelementptr inbounds i8, ptr %spec, i64 20 store i32 %or11, ptr %depth12, align 4 - %div345350 = lshr i32 %.sroa.speculated336, 1 - %div345.neg = sub nsw i32 0, %div345350 - store i32 %div345.neg, ptr %spec, align 8 - %div14347351 = lshr i32 %.sroa.speculated333, 1 - %div14347.neg = sub nsw i32 0, %div14347351 + %div345 = lshr i32 %.sroa.speculated336, 1 + %div = sub nsw i32 0, %div345 + store i32 %div, ptr %spec, align 8 + %div14346 = lshr i32 %.sroa.speculated333, 1 + %div14 = sub nsw i32 0, %div14346 %y = getelementptr inbounds i8, ptr %spec, i64 4 - store i32 %div14347.neg, ptr %y, align 4 - %div16349352 = lshr i32 %.sroa.speculated, 1 - %div16349.neg = sub nsw i32 0, %div16349352 + store i32 %div14, ptr %y, align 4 + %div16347 = lshr i32 %.sroa.speculated, 1 + %div16 = sub nsw i32 0, %div16347 %z = getelementptr inbounds i8, ptr %spec, i64 8 - store i32 %div16349.neg, ptr %z, align 8 + store i32 %div16, ptr %z, align 8 %full_x = getelementptr inbounds i8, ptr %spec, i64 24 - store i32 %div345.neg, ptr %full_x, align 8 + store i32 %div, ptr %full_x, align 8 %full_y = getelementptr inbounds i8, ptr %spec, i64 28 - store i32 %div14347.neg, ptr %full_y, align 4 + store i32 %div14, ptr %full_y, align 4 %full_z = getelementptr inbounds i8, ptr %spec, i64 32 - store i32 %div16349.neg, ptr %full_z, align 8 + store i32 %div16, ptr %full_z, align 8 %width20 = getelementptr inbounds i8, ptr %spec, i64 12 %3 = load i32, ptr %width20, align 4 %full_width = getelementptr inbounds i8, ptr %spec, i64 36 @@ -6282,17 +6282,17 @@ for.cond: ; preds = %for.cond.backedge, br i1 %cmp.i49, label %land.lhs.true.i, label %for.cond.for.body_crit_edge for.cond.for.body_crit_edge: ; preds = %for.cond - %.pre369 = load i32, ptr %m_y.i, align 8 + %.pre364 = load i32, ptr %m_y.i, align 8 br label %for.body land.lhs.true.i: ; preds = %for.cond %9 = load i32, ptr %m_rng_xbegin.i, align 4 %cmp2.i = icmp eq i32 %.pre, %9 - %.pre370 = load i32, ptr %m_y.i, align 8 + %.pre365 = load i32, ptr %m_y.i, align 8 %10 = load i32, ptr %m_rng_ybegin.i, align 4 - %cmp4.i = icmp eq i32 %.pre370, %10 - %or.cond386 = select i1 %cmp2.i, i1 %cmp4.i, i1 false - br i1 %or.cond386, label %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit, label %for.body + %cmp4.i = icmp eq i32 %.pre365, %10 + %or.cond381 = select i1 %cmp2.i, i1 %cmp4.i, i1 false + br i1 %or.cond381, label %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit, label %for.body _ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit: ; preds = %land.lhs.true.i %11 = load i32, ptr %m_z.i, align 4 @@ -6339,7 +6339,7 @@ ehcleanup.thread: ; preds = %for.body, %if.then2 br label %_ZNKSt14default_deleteIN18OpenImageIO_v2_6_08Filter2DEEclEPS1_.exit.i324 for.body: ; preds = %for.cond.for.body_crit_edge, %land.lhs.true.i, %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit - %20 = phi i32 [ %.pre369, %for.cond.for.body_crit_edge ], [ %.pre370, %land.lhs.true.i ], [ %.pre370, %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit ] + %20 = phi i32 [ %.pre364, %for.cond.for.body_crit_edge ], [ %.pre365, %land.lhs.true.i ], [ %.pre365, %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit ] %conv37 = sitofp i32 %.pre to float %conv40 = sitofp i32 %20 to float %vtable = load ptr, ptr %call27, align 8 @@ -6365,7 +6365,7 @@ if.then.i: ; preds = %invoke.cont44 if.then.if.end13_crit_edge.i: ; preds = %if.then.i %.pre.i = load i32, ptr %m_y.i, align 8 - %.pre371 = load i32, ptr %m_z.i, align 4 + %.pre366 = load i32, ptr %m_z.i, align 4 br label %if.end13.i if.then2.i: ; preds = %if.then.i @@ -6380,13 +6380,13 @@ if.else.i: ; preds = %invoke.cont44 store i32 %inc4.i, ptr %m_y.i, align 8 %28 = load i32, ptr %m_rng_yend.i, align 8 %cmp5.not.i = icmp slt i32 %inc4.i, %28 - %.pre372 = load i32, ptr %m_z.i, align 4 + %.pre367 = load i32, ptr %m_z.i, align 4 br i1 %cmp5.not.i, label %if.end13.i, label %if.then6.i if.then6.i: ; preds = %if.else.i %29 = load i32, ptr %m_rng_ybegin.i, align 4 store i32 %29, ptr %m_y.i, align 8 - %inc8.i = add nsw i32 %.pre372, 1 + %inc8.i = add nsw i32 %.pre367, 1 store i32 %inc8.i, ptr %m_z.i, align 4 %30 = load i32, ptr %m_rng_zend.i, align 8 %cmp9.not.i = icmp slt i32 %inc8.i, %30 @@ -6397,7 +6397,7 @@ if.then10.i: ; preds = %if.then6.i br label %for.cond.backedge if.end13.i: ; preds = %if.then6.i, %if.else.i, %if.then.if.end13_crit_edge.i - %31 = phi i32 [ %.pre372, %if.else.i ], [ %inc8.i, %if.then6.i ], [ %.pre371, %if.then.if.end13_crit_edge.i ] + %31 = phi i32 [ %.pre367, %if.else.i ], [ %inc8.i, %if.then6.i ], [ %.pre366, %if.then.if.end13_crit_edge.i ] %32 = phi i32 [ %inc4.i, %if.else.i ], [ %29, %if.then6.i ], [ %.pre.i, %if.then.if.end13_crit_edge.i ] %33 = phi i32 [ %26, %if.else.i ], [ %26, %if.then6.i ], [ %inc.i, %if.then.if.end13_crit_edge.i ] invoke void @_ZN18OpenImageIO_v2_6_08ImageBuf12IteratorBase3posEiii(ptr noundef nonnull align 8 dereferenceable(125) %p, i32 noundef %33, i32 noundef %32, i32 noundef %31) @@ -6429,8 +6429,8 @@ cond.true: ; preds = %if.then53 cond.end: ; preds = %if.then53, %cond.true %cond = phi ptr [ %36, %cond.true ], [ null, %if.then53 ] - %cmp57354 = fcmp ogt float %width, 0.000000e+00 - br i1 %cmp57354, label %for.body58.lr.ph, label %for.end64 + %cmp57349 = fcmp ogt float %width, 0.000000e+00 + br i1 %cmp57349, label %for.body58.lr.ph, label %for.end64 for.body58.lr.ph: ; preds = %cond.end %sub59 = fadd float %width, -1.000000e+00 @@ -6487,20 +6487,20 @@ cond.true69: ; preds = %cond.false67 cond.end75: ; preds = %for.end64, %cond.true69, %cond.false67 %cond76 = phi ptr [ %40, %cond.true69 ], [ null, %cond.false67 ], [ %cond, %for.end64 ] %cmp77 = fcmp une float %height, %width - %cmp82356 = fcmp ogt float %height, 0.000000e+00 - %or.cond360 = and i1 %cmp77, %cmp82356 - br i1 %or.cond360, label %for.body83, label %if.end + %cmp82351 = fcmp ogt float %height, 0.000000e+00 + %or.cond355 = and i1 %cmp77, %cmp82351 + br i1 %or.cond355, label %for.body83, label %if.end for.body83: ; preds = %cond.end75, %_ZN18OpenImageIO_v2_6_08binomialEii.exit81 - %indvars.iv363 = phi i64 [ %indvars.iv.next364, %_ZN18OpenImageIO_v2_6_08binomialEii.exit81 ], [ 0, %cond.end75 ] + %indvars.iv358 = phi i64 [ %indvars.iv.next359, %_ZN18OpenImageIO_v2_6_08binomialEii.exit81 ], [ 0, %cond.end75 ] %41 = phi float [ %45, %_ZN18OpenImageIO_v2_6_08binomialEii.exit81 ], [ %height, %cond.end75 ] - %cmp.not6.i67 = icmp eq i64 %indvars.iv363, 0 + %cmp.not6.i67 = icmp eq i64 %indvars.iv358, 0 br i1 %cmp.not6.i67, label %_ZN18OpenImageIO_v2_6_08binomialEii.exit81, label %for.body.lr.ph.i68 for.body.lr.ph.i68: ; preds = %for.body83 %sub84 = fadd float %41, -1.000000e+00 %conv85 = fptosi float %sub84 to i32 - %42 = trunc nuw nsw i64 %indvars.iv363 to i32 + %42 = trunc nuw nsw i64 %indvars.iv358 to i32 %sub.neg.i69 = sub i32 %conv85, %42 br label %for.body.i70 @@ -6514,15 +6514,15 @@ for.body.i70: ; preds = %for.body.i70, %for. %mul.i77 = fmul float %p.07.i72, %div.i76 %inc.i78 = add nuw i32 %i.08.i71, 1 %43 = zext i32 %i.08.i71 to i64 - %exitcond.not.i79 = icmp eq i64 %indvars.iv363, %43 + %exitcond.not.i79 = icmp eq i64 %indvars.iv358, %43 br i1 %exitcond.not.i79, label %_ZN18OpenImageIO_v2_6_08binomialEii.exit81, label %for.body.i70, !llvm.loop !72 _ZN18OpenImageIO_v2_6_08binomialEii.exit81: ; preds = %for.body.i70, %for.body83 %p.0.lcssa.i80 = phi float [ 1.000000e+00, %for.body83 ], [ %mul.i77, %for.body.i70 ] - %arrayidx89 = getelementptr inbounds float, ptr %cond76, i64 %indvars.iv363 + %arrayidx89 = getelementptr inbounds float, ptr %cond76, i64 %indvars.iv358 store float %p.0.lcssa.i80, ptr %arrayidx89, align 4 - %indvars.iv.next364 = add nuw nsw i64 %indvars.iv363, 1 - %44 = trunc nuw nsw i64 %indvars.iv.next364 to i32 + %indvars.iv.next359 = add nuw nsw i64 %indvars.iv358, 1 + %44 = trunc nuw nsw i64 %indvars.iv.next359 to i32 %conv81 = uitofp nneg i32 %44 to float %45 = load float, ptr %height.addr, align 4 %cmp82 = fcmp ogt float %45, %conv81 @@ -6544,8 +6544,8 @@ cond.end98: ; preds = %if.end, %cond.true9 br i1 %cmp100, label %if.then101, label %for.cond105.preheader for.cond105.preheader: ; preds = %cond.end98 - %cmp107358 = fcmp ogt float %depth, 0.000000e+00 - br i1 %cmp107358, label %for.body108.lr.ph, label %if.end118 + %cmp107353 = fcmp ogt float %depth, 0.000000e+00 + br i1 %cmp107353, label %for.body108.lr.ph, label %if.end118 for.body108.lr.ph: ; preds = %for.cond105.preheader %sub109 = fadd float %depth, -1.000000e+00 @@ -6557,12 +6557,12 @@ if.then101: ; preds = %cond.end98 br label %if.end118 for.body108: ; preds = %for.body108.lr.ph, %_ZN18OpenImageIO_v2_6_08binomialEii.exit96 - %indvars.iv366 = phi i64 [ 0, %for.body108.lr.ph ], [ %indvars.iv.next367, %_ZN18OpenImageIO_v2_6_08binomialEii.exit96 ] - %cmp.not6.i82 = icmp eq i64 %indvars.iv366, 0 + %indvars.iv361 = phi i64 [ 0, %for.body108.lr.ph ], [ %indvars.iv.next362, %_ZN18OpenImageIO_v2_6_08binomialEii.exit96 ] + %cmp.not6.i82 = icmp eq i64 %indvars.iv361, 0 br i1 %cmp.not6.i82, label %_ZN18OpenImageIO_v2_6_08binomialEii.exit96, label %for.body.lr.ph.i83 for.body.lr.ph.i83: ; preds = %for.body108 - %47 = trunc nuw nsw i64 %indvars.iv366 to i32 + %47 = trunc nuw nsw i64 %indvars.iv361 to i32 %sub.neg.i84 = sub i32 %conv110, %47 br label %for.body.i85 @@ -6576,15 +6576,15 @@ for.body.i85: ; preds = %for.body.i85, %for. %mul.i92 = fmul float %p.07.i87, %div.i91 %inc.i93 = add nuw i32 %i.08.i86, 1 %48 = zext i32 %i.08.i86 to i64 - %exitcond.not.i94 = icmp eq i64 %indvars.iv366, %48 + %exitcond.not.i94 = icmp eq i64 %indvars.iv361, %48 br i1 %exitcond.not.i94, label %_ZN18OpenImageIO_v2_6_08binomialEii.exit96, label %for.body.i85, !llvm.loop !72 _ZN18OpenImageIO_v2_6_08binomialEii.exit96: ; preds = %for.body.i85, %for.body108 %p.0.lcssa.i95 = phi float [ 1.000000e+00, %for.body108 ], [ %mul.i92, %for.body.i85 ] - %arrayidx114 = getelementptr inbounds float, ptr %cond99, i64 %indvars.iv366 + %arrayidx114 = getelementptr inbounds float, ptr %cond99, i64 %indvars.iv361 store float %p.0.lcssa.i95, ptr %arrayidx114, align 4 - %indvars.iv.next367 = add nuw nsw i64 %indvars.iv366, 1 - %49 = trunc nuw nsw i64 %indvars.iv.next367 to i32 + %indvars.iv.next362 = add nuw nsw i64 %indvars.iv361, 1 + %49 = trunc nuw nsw i64 %indvars.iv.next362 to i32 %conv106 = uitofp nneg i32 %49 to float %cmp107 = fcmp ogt float %depth, %conv106 br i1 %cmp107, label %for.body108, label %if.end118, !llvm.loop !75 @@ -6611,21 +6611,21 @@ for.cond121: ; preds = %for.cond121.backedg %50 = load i8, ptr %m_valid.i99, align 8 %51 = and i8 %50, 1 %cmp.i100 = icmp eq i8 %51, 0 - %.pre375 = load i32, ptr %m_x.i102, align 4 + %.pre370 = load i32, ptr %m_x.i102, align 4 br i1 %cmp.i100, label %land.lhs.true.i101, label %for.cond121.invoke.cont149_crit_edge for.cond121.invoke.cont149_crit_edge: ; preds = %for.cond121 - %.pre376 = load i32, ptr %m_y.i106, align 8 + %.pre371 = load i32, ptr %m_y.i106, align 8 br label %invoke.cont149 land.lhs.true.i101: ; preds = %for.cond121 %52 = load i32, ptr %m_rng_xbegin.i103, align 4 - %cmp2.i104 = icmp eq i32 %.pre375, %52 - %.pre377 = load i32, ptr %m_y.i106, align 8 + %cmp2.i104 = icmp eq i32 %.pre370, %52 + %.pre372 = load i32, ptr %m_y.i106, align 8 %53 = load i32, ptr %m_rng_ybegin.i107, align 4 - %cmp4.i108 = icmp eq i32 %.pre377, %53 - %or.cond387 = select i1 %cmp2.i104, i1 %cmp4.i108, i1 false - br i1 %or.cond387, label %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit113, label %invoke.cont149 + %cmp4.i108 = icmp eq i32 %.pre372, %53 + %or.cond382 = select i1 %cmp2.i104, i1 %cmp4.i108, i1 false + br i1 %or.cond382, label %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit113, label %invoke.cont149 _ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit113: ; preds = %land.lhs.true.i101 %54 = load i32, ptr %m_z.i110, align 4 @@ -6657,9 +6657,9 @@ lpad122: ; preds = %if.end13.i141, %if. br label %ehcleanup invoke.cont149: ; preds = %for.cond121.invoke.cont149_crit_edge, %land.lhs.true.i101, %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit113 - %60 = phi i32 [ %.pre376, %for.cond121.invoke.cont149_crit_edge ], [ %.pre377, %land.lhs.true.i101 ], [ %.pre377, %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit113 ] + %60 = phi i32 [ %.pre371, %for.cond121.invoke.cont149_crit_edge ], [ %.pre372, %land.lhs.true.i101 ], [ %.pre372, %_ZNK18OpenImageIO_v2_6_08ImageBuf12IteratorBase4doneEv.exit113 ] %61 = load i32, ptr %spec, align 8 - %sub131 = sub nsw i32 %.pre375, %61 + %sub131 = sub nsw i32 %.pre370, %61 %idxprom132 = sext i32 %sub131 to i64 %arrayidx133 = getelementptr inbounds float, ptr %cond, i64 %idxprom132 %62 = load float, ptr %arrayidx133, align 4 @@ -6692,7 +6692,7 @@ if.then.i143: ; preds = %invoke.cont149 if.then.if.end13_crit_edge.i146: ; preds = %if.then.i143 %.pre.i148 = load i32, ptr %m_y.i106, align 8 - %.pre378 = load i32, ptr %m_z.i110, align 4 + %.pre373 = load i32, ptr %m_z.i110, align 4 br label %if.end13.i141 if.then2.i149: ; preds = %if.then.i143 @@ -6707,13 +6707,13 @@ if.else.i127: ; preds = %invoke.cont149 store i32 %inc4.i130, ptr %m_y.i106, align 8 %74 = load i32, ptr %m_rng_yend.i131, align 8 %cmp5.not.i132 = icmp slt i32 %inc4.i130, %74 - %.pre379 = load i32, ptr %m_z.i110, align 4 + %.pre374 = load i32, ptr %m_z.i110, align 4 br i1 %cmp5.not.i132, label %if.end13.i141, label %if.then6.i133 if.then6.i133: ; preds = %if.else.i127 %75 = load i32, ptr %m_rng_ybegin.i107, align 4 store i32 %75, ptr %m_y.i106, align 8 - %inc8.i136 = add nsw i32 %.pre379, 1 + %inc8.i136 = add nsw i32 %.pre374, 1 store i32 %inc8.i136, ptr %m_z.i110, align 4 %76 = load i32, ptr %m_rng_zend.i111, align 8 %cmp9.not.i138 = icmp slt i32 %inc8.i136, %76 @@ -6724,7 +6724,7 @@ if.then10.i139: ; preds = %if.then6.i133 br label %for.cond121.backedge if.end13.i141: ; preds = %if.then6.i133, %if.else.i127, %if.then.if.end13_crit_edge.i146 - %77 = phi i32 [ %.pre379, %if.else.i127 ], [ %inc8.i136, %if.then6.i133 ], [ %.pre378, %if.then.if.end13_crit_edge.i146 ] + %77 = phi i32 [ %.pre374, %if.else.i127 ], [ %inc8.i136, %if.then6.i133 ], [ %.pre373, %if.then.if.end13_crit_edge.i146 ] %78 = phi i32 [ %inc4.i130, %if.else.i127 ], [ %75, %if.then6.i133 ], [ %.pre.i148, %if.then.if.end13_crit_edge.i146 ] %79 = phi i32 [ %72, %if.else.i127 ], [ %72, %if.then6.i133 ], [ %inc.i124, %if.then.if.end13_crit_edge.i146 ] invoke void @_ZN18OpenImageIO_v2_6_08ImageBuf12IteratorBase3posEiii(ptr noundef nonnull align 8 dereferenceable(125) %p119, i32 noundef %79, i32 noundef %78, i32 noundef %77) @@ -6871,7 +6871,7 @@ if.then.i206: ; preds = %invoke.cont195 if.then.if.end13_crit_edge.i209: ; preds = %if.then.i206 %.pre.i211 = load i32, ptr %m_y.i172, align 8 - %.pre373 = load i32, ptr %m_z.i176, align 4 + %.pre368 = load i32, ptr %m_z.i176, align 4 br label %if.end13.i204 if.then2.i212: ; preds = %if.then.i206 @@ -6886,13 +6886,13 @@ if.else.i190: ; preds = %invoke.cont195 store i32 %inc4.i193, ptr %m_y.i172, align 8 %103 = load i32, ptr %m_rng_yend.i194, align 8 %cmp5.not.i195 = icmp slt i32 %inc4.i193, %103 - %.pre374 = load i32, ptr %m_z.i176, align 4 + %.pre369 = load i32, ptr %m_z.i176, align 4 br i1 %cmp5.not.i195, label %if.end13.i204, label %if.then6.i196 if.then6.i196: ; preds = %if.else.i190 %104 = load i32, ptr %m_rng_ybegin.i173, align 4 store i32 %104, ptr %m_y.i172, align 8 - %inc8.i199 = add nsw i32 %.pre374, 1 + %inc8.i199 = add nsw i32 %.pre369, 1 store i32 %inc8.i199, ptr %m_z.i176, align 4 %105 = load i32, ptr %m_rng_zend.i177, align 8 %cmp9.not.i201 = icmp slt i32 %inc8.i199, %105 @@ -6903,7 +6903,7 @@ if.then10.i202: ; preds = %if.then6.i196 br label %for.cond187.backedge if.end13.i204: ; preds = %if.then6.i196, %if.else.i190, %if.then.if.end13_crit_edge.i209 - %106 = phi i32 [ %.pre374, %if.else.i190 ], [ %inc8.i199, %if.then6.i196 ], [ %.pre373, %if.then.if.end13_crit_edge.i209 ] + %106 = phi i32 [ %.pre369, %if.else.i190 ], [ %inc8.i199, %if.then6.i196 ], [ %.pre368, %if.then.if.end13_crit_edge.i209 ] %107 = phi i32 [ %inc4.i193, %if.else.i190 ], [ %104, %if.then6.i196 ], [ %.pre.i211, %if.then.if.end13_crit_edge.i209 ] %108 = phi i32 [ %101, %if.else.i190 ], [ %101, %if.then6.i196 ], [ %inc.i187, %if.then.if.end13_crit_edge.i209 ] invoke void @_ZN18OpenImageIO_v2_6_08ImageBuf12IteratorBase3posEiii(ptr noundef nonnull align 8 dereferenceable(125) %p185, i32 noundef %108, i32 noundef %107, i32 noundef %106) @@ -6938,11 +6938,11 @@ for.cond211: ; preds = %for.cond211.backedg %109 = load i8, ptr %m_valid.i218, align 8 %110 = and i8 %109, 1 %cmp.i219 = icmp eq i8 %110, 0 - %.pre380 = load i32, ptr %m_x.i221, align 4 + %.pre375 = load i32, ptr %m_x.i221, align 4 %111 = load i32, ptr %m_rng_xbegin.i222, align 4 - %cmp2.i223 = icmp eq i32 %.pre380, %111 - %or.cond388 = select i1 %cmp.i219, i1 %cmp2.i223, i1 false - br i1 %or.cond388, label %land.lhs.true3.i224, label %invoke.cont219 + %cmp2.i223 = icmp eq i32 %.pre375, %111 + %or.cond383 = select i1 %cmp.i219, i1 %cmp2.i223, i1 false + br i1 %or.cond383, label %land.lhs.true3.i224, label %invoke.cont219 land.lhs.true3.i224: ; preds = %for.cond211 %112 = load i32, ptr %m_y.i225, align 8 @@ -6987,7 +6987,7 @@ invoke.cont219: ; preds = %for.cond211, %land. %120 = load ptr, ptr %m_proxydata.i238, align 8 %121 = load float, ptr %120, align 4 %add = fadd float %sum.0, %121 - %inc.i240 = add nsw i32 %.pre380, 1 + %inc.i240 = add nsw i32 %.pre375, 1 store i32 %inc.i240, ptr %m_x.i221, align 4 %122 = load i32, ptr %m_rng_xend.i241, align 8 %cmp.i242 = icmp slt i32 %inc.i240, %122 @@ -7000,7 +7000,7 @@ if.then.i259: ; preds = %invoke.cont219 if.then.if.end13_crit_edge.i262: ; preds = %if.then.i259 %.pre.i264 = load i32, ptr %m_y.i225, align 8 - %.pre381 = load i32, ptr %m_z.i229, align 4 + %.pre376 = load i32, ptr %m_z.i229, align 4 br label %if.end13.i257 if.then2.i265: ; preds = %if.then.i259 @@ -7015,13 +7015,13 @@ if.else.i243: ; preds = %invoke.cont219 store i32 %inc4.i246, ptr %m_y.i225, align 8 %126 = load i32, ptr %m_rng_yend.i247, align 8 %cmp5.not.i248 = icmp slt i32 %inc4.i246, %126 - %.pre382 = load i32, ptr %m_z.i229, align 4 + %.pre377 = load i32, ptr %m_z.i229, align 4 br i1 %cmp5.not.i248, label %if.end13.i257, label %if.then6.i249 if.then6.i249: ; preds = %if.else.i243 %127 = load i32, ptr %m_rng_ybegin.i226, align 4 store i32 %127, ptr %m_y.i225, align 8 - %inc8.i252 = add nsw i32 %.pre382, 1 + %inc8.i252 = add nsw i32 %.pre377, 1 store i32 %inc8.i252, ptr %m_z.i229, align 4 %128 = load i32, ptr %m_rng_zend.i230, align 8 %cmp9.not.i254 = icmp slt i32 %inc8.i252, %128 @@ -7032,7 +7032,7 @@ if.then10.i255: ; preds = %if.then6.i249 br label %for.cond211.backedge if.end13.i257: ; preds = %if.then6.i249, %if.else.i243, %if.then.if.end13_crit_edge.i262 - %129 = phi i32 [ %.pre382, %if.else.i243 ], [ %inc8.i252, %if.then6.i249 ], [ %.pre381, %if.then.if.end13_crit_edge.i262 ] + %129 = phi i32 [ %.pre377, %if.else.i243 ], [ %inc8.i252, %if.then6.i249 ], [ %.pre376, %if.then.if.end13_crit_edge.i262 ] %130 = phi i32 [ %inc4.i246, %if.else.i243 ], [ %127, %if.then6.i249 ], [ %.pre.i264, %if.then.if.end13_crit_edge.i262 ] %131 = phi i32 [ %124, %if.else.i243 ], [ %124, %if.then6.i249 ], [ %inc.i240, %if.then.if.end13_crit_edge.i262 ] invoke void @_ZN18OpenImageIO_v2_6_08ImageBuf12IteratorBase3posEiii(ptr noundef nonnull align 8 dereferenceable(125) %p209, i32 noundef %131, i32 noundef %130, i32 noundef %129) @@ -7125,7 +7125,7 @@ if.then.i313: ; preds = %invoke.cont246 if.then.if.end13_crit_edge.i316: ; preds = %if.then.i313 %.pre.i318 = load i32, ptr %m_y.i278, align 8 - %.pre383 = load i32, ptr %m_z.i282, align 4 + %.pre378 = load i32, ptr %m_z.i282, align 4 br label %if.end13.i311 if.then2.i319: ; preds = %if.then.i313 @@ -7140,13 +7140,13 @@ if.else.i297: ; preds = %invoke.cont246 store i32 %inc4.i300, ptr %m_y.i278, align 8 %151 = load i32, ptr %m_rng_yend.i301, align 8 %cmp5.not.i302 = icmp slt i32 %inc4.i300, %151 - %.pre384 = load i32, ptr %m_z.i282, align 4 + %.pre379 = load i32, ptr %m_z.i282, align 4 br i1 %cmp5.not.i302, label %if.end13.i311, label %if.then6.i303 if.then6.i303: ; preds = %if.else.i297 %152 = load i32, ptr %m_rng_ybegin.i279, align 4 store i32 %152, ptr %m_y.i278, align 8 - %inc8.i306 = add nsw i32 %.pre384, 1 + %inc8.i306 = add nsw i32 %.pre379, 1 store i32 %inc8.i306, ptr %m_z.i282, align 4 %153 = load i32, ptr %m_rng_zend.i283, align 8 %cmp9.not.i308 = icmp slt i32 %inc8.i306, %153 @@ -7157,7 +7157,7 @@ if.then10.i309: ; preds = %if.then6.i303 br label %for.cond231.backedge if.end13.i311: ; preds = %if.then6.i303, %if.else.i297, %if.then.if.end13_crit_edge.i316 - %154 = phi i32 [ %.pre384, %if.else.i297 ], [ %inc8.i306, %if.then6.i303 ], [ %.pre383, %if.then.if.end13_crit_edge.i316 ] + %154 = phi i32 [ %.pre379, %if.else.i297 ], [ %inc8.i306, %if.then6.i303 ], [ %.pre378, %if.then.if.end13_crit_edge.i316 ] %155 = phi i32 [ %inc4.i300, %if.else.i297 ], [ %152, %if.then6.i303 ], [ %.pre.i318, %if.then.if.end13_crit_edge.i316 ] %156 = phi i32 [ %149, %if.else.i297 ], [ %149, %if.then6.i303 ], [ %inc.i294, %if.then.if.end13_crit_edge.i316 ] invoke void @_ZN18OpenImageIO_v2_6_08ImageBuf12IteratorBase3posEiii(ptr noundef nonnull align 8 dereferenceable(125) %p229, i32 noundef %156, i32 noundef %155, i32 noundef %154) diff --git a/bench/oiio/optimized/imagecache.cpp.ll b/bench/oiio/optimized/imagecache.cpp.ll index 7742847f22f..3fedc920988 100644 --- a/bench/oiio/optimized/imagecache.cpp.ll +++ b/bench/oiio/optimized/imagecache.cpp.ll @@ -6279,17 +6279,17 @@ if.end77: ; preds = %if.end67 %m_broken_message.i164 = getelementptr inbounds i8, ptr %this, i64 32 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %m_broken_message.i164) #35 %80 = load ptr, ptr %m_imagecache.i, align 8 - %m_failure_retries.i592 = getelementptr inbounds i8, ptr %80, i64 160 - %81 = load i32, ptr %m_failure_retries.i592, align 32 - %cmp86.not593 = icmp slt i32 %81, 0 - br i1 %cmp86.not593, label %if.end127, label %for.body.lr.ph + %m_failure_retries.i591 = getelementptr inbounds i8, ptr %80, i64 160 + %81 = load i32, ptr %m_failure_retries.i591, align 32 + %cmp86.not592 = icmp slt i32 %81, 0 + br i1 %cmp86.not592, label %if.end127, label %for.body.lr.ph for.body.lr.ph: ; preds = %if.end77 %m_filename89 = getelementptr inbounds i8, ptr %this, i64 16 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc - %tries.0594 = phi i32 [ 0, %for.body.lr.ph ], [ %inc117, %for.inc ] + %tries.0593 = phi i32 [ 0, %for.body.lr.ph ], [ %inc117, %for.inc ] %82 = load ptr, ptr %inp, align 8 %83 = load ptr, ptr %m_filename89, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp91) #35 @@ -6312,17 +6312,17 @@ invoke.cont.i: ; preds = %if.then.i169 unreachable lpad.i.loopexit: ; preds = %if.end.i168 - %lpad.loopexit561 = landingpad { ptr, i32 } + %lpad.loopexit560 = landingpad { ptr, i32 } cleanup br label %lpad.i lpad.i.loopexit.split-lp: ; preds = %if.then.i169 - %lpad.loopexit.split-lp562 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp561 = landingpad { ptr, i32 } cleanup br label %lpad.i lpad.i: ; preds = %lpad.i.loopexit.split-lp, %lpad.i.loopexit - %lpad.phi563 = phi { ptr, i32 } [ %lpad.loopexit561, %lpad.i.loopexit ], [ %lpad.loopexit.split-lp562, %lpad.i.loopexit.split-lp ] + %lpad.phi562 = phi { ptr, i32 } [ %lpad.loopexit560, %lpad.i.loopexit ], [ %lpad.loopexit.split-lp561, %lpad.i.loopexit.split-lp ] call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp88) #35 br label %ehcleanup98 @@ -6349,7 +6349,7 @@ if.then100: ; preds = %invoke.cont95 to label %invoke.cont101 unwind label %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont101: ; preds = %if.then100 - %tobool103.not = icmp eq i32 %tries.0594, 0 + %tobool103.not = icmp eq i32 %tries.0593, 0 br i1 %tobool103.not, label %if.end105, label %if.then104 if.then104: ; preds = %invoke.cont101 @@ -6365,22 +6365,22 @@ lpad80.loopexit: ; preds = %while.body br label %ehcleanup454 lpad80.loopexit.split-lp.loopexit: ; preds = %call5.i.i.noexc, %call.i.i242.noexc, %call4.i.noexc, %if.then.i241, %invoke.cont252, %invoke.cont178, %call5.i.noexc201, %call.i192.noexc, %do.body158, %_ZNSt6vectorIN18OpenImageIO_v2_6_08TypeDescESaIS1_EE5clearEv.exit, %if.then162 - %lpad.loopexit556 = landingpad { ptr, i32 } + %lpad.loopexit555 = landingpad { ptr, i32 } cleanup br label %ehcleanup454 lpad80.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %do.body, %land.lhs.true279, %land.lhs.true383, %if.end395, %for.end422 - %lpad.loopexit559 = landingpad { ptr, i32 } + %lpad.loopexit558 = landingpad { ptr, i32 } cleanup br label %ehcleanup454 lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then114 - %lpad.loopexit564 = landingpad { ptr, i32 } + %lpad.loopexit563 = landingpad { ptr, i32 } cleanup br label %ehcleanup454 lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %_ZNK18OpenImageIO_v2_6_07ustringcvNS_17basic_string_viewIcSt11char_traitsIcEEEEv.exit, %if.then391, %if.then371, %if.then245, %invoke.cont132, %if.end127, %if.then119, %if.end105, %if.then100 - %lpad.loopexit.split-lp565 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp564 = landingpad { ptr, i32 } cleanup br label %ehcleanup454 @@ -6396,7 +6396,7 @@ lpad94: ; preds = %invoke.cont93 br label %ehcleanup98 ehcleanup98: ; preds = %lpad92, %lpad.i, %lpad94 - %.pn60 = phi { ptr, i32 } [ %87, %lpad94 ], [ %86, %lpad92 ], [ %lpad.phi563, %lpad.i ] + %.pn60 = phi { ptr, i32 } [ %87, %lpad94 ], [ %86, %lpad92 ], [ %lpad.phi562, %lpad.i ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp91) #35 br label %ehcleanup454 @@ -6413,7 +6413,7 @@ if.end108: ; preds = %invoke.cont95 %89 = load ptr, ptr %m_imagecache.i, align 8 %m_failure_retries.i173 = getelementptr inbounds i8, ptr %89, i64 160 %90 = load i32, ptr %m_failure_retries.i173, align 32 - %cmp113 = icmp slt i32 %tries.0594, %90 + %cmp113 = icmp slt i32 %tries.0593, %90 br i1 %cmp113, label %if.then114, label %for.inc if.then114: ; preds = %if.end108 @@ -6423,13 +6423,13 @@ if.then114: ; preds = %if.end108 if.then114.for.inc_crit_edge: ; preds = %if.then114 %.pre = load ptr, ptr %m_imagecache.i, align 8 %m_failure_retries.i.phi.trans.insert = getelementptr inbounds i8, ptr %.pre, i64 160 - %.pre621 = load i32, ptr %m_failure_retries.i.phi.trans.insert, align 32 + %.pre620 = load i32, ptr %m_failure_retries.i.phi.trans.insert, align 32 br label %for.inc for.inc: ; preds = %if.then114.for.inc_crit_edge, %if.end108 - %91 = phi i32 [ %.pre621, %if.then114.for.inc_crit_edge ], [ %90, %if.end108 ] - %inc117 = add nuw nsw i32 %tries.0594, 1 - %cmp86.not.not = icmp slt i32 %tries.0594, %91 + %91 = phi i32 [ %.pre620, %if.then114.for.inc_crit_edge ], [ %90, %if.end108 ] + %inc117 = add nuw nsw i32 %tries.0593, 1 + %cmp86.not.not = icmp slt i32 %tries.0593, %91 br i1 %cmp86.not.not, label %for.body, label %if.then119, !llvm.loop !83 if.then119: ; preds = %for.inc @@ -6585,14 +6585,14 @@ if.end148: ; preds = %invoke.cont136 br label %do.body do.body: ; preds = %invoke.cont430, %if.end148 - %indvars.iv618 = phi i64 [ %indvars.iv.next619, %invoke.cont430 ], [ 0, %if.end148 ] - %indvars.iv.next619 = add nuw nsw i64 %indvars.iv618, 1 - invoke void @_ZNSt6vectorIN18OpenImageIO_v2_6_03pvt14ImageCacheFile12SubimageInfoESaIS3_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %m_subimages, i64 noundef %indvars.iv.next619) + %indvars.iv617 = phi i64 [ %indvars.iv.next618, %invoke.cont430 ], [ 0, %if.end148 ] + %indvars.iv.next618 = add nuw nsw i64 %indvars.iv617, 1 + invoke void @_ZNSt6vectorIN18OpenImageIO_v2_6_03pvt14ImageCacheFile12SubimageInfoESaIS3_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %m_subimages, i64 noundef %indvars.iv.next618) to label %invoke.cont152 unwind label %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit invoke.cont152: ; preds = %do.body %109 = load ptr, ptr %m_subimages, align 8 - %add.ptr.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::pvt::ImageCacheFile::SubimageInfo", ptr %109, i64 %indvars.iv618 + %add.ptr.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::pvt::ImageCacheFile::SubimageInfo", ptr %109, i64 %indvars.iv617 %110 = load ptr, ptr %m_imagecache.i, align 8 %m_max_mip_res.i = getelementptr inbounds i8, ptr %110, i64 164 %111 = load i32, ptr %m_max_mip_res.i, align 4 @@ -6601,7 +6601,7 @@ invoke.cont152: ; preds = %do.body %min_mip_level = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 108 %_M_finish.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 8 %_M_end_of_storage.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 16 - %112 = trunc nuw nsw i64 %indvars.iv618 to i32 + %112 = trunc nuw nsw i64 %indvars.iv617 to i32 br label %do.body158 do.body158: ; preds = %call5.i.i.noexc, %invoke.cont152 @@ -6640,9 +6640,9 @@ if.end168: ; preds = %if.then162, %invoke br i1 %or.cond, label %invoke.cont178, label %if.end168.if.end224_crit_edge if.end168.if.end224_crit_edge: ; preds = %if.end168 - %.pre622 = load i32, ptr %width203, align 4 - %.pre623 = load i32, ptr %height, align 8 - %.pre624 = load i32, ptr %depth, align 4 + %.pre621 = load i32, ptr %width203, align 4 + %.pre622 = load i32, ptr %height, align 8 + %.pre623 = load i32, ptr %depth, align 4 br label %if.end224 invoke.cont178: ; preds = %if.end168 @@ -6668,16 +6668,16 @@ invoke.cont180: ; preds = %invoke.cont178 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %result.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %agg.tmp.i211) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %agg.tmp2.i212) - %cmp182554 = icmp sgt i32 %result.val.i, 1 - %cmp182 = select i1 %call.i215217, i1 %cmp182554, i1 false + %cmp182553 = icmp sgt i32 %result.val.i, 1 + %cmp182 = select i1 %call.i215217, i1 %cmp182553, i1 false br i1 %cmp182, label %if.then183, label %if.end189 if.then183: ; preds = %invoke.cont180 %.sroa.speculated527 = call i32 @llvm.smax.i32(i32 %118, i32 64) %sub.i = add nsw i32 %.sroa.speculated527, -1 %value.addr.0.i = add nuw i32 %sub.i, %result.val.i - %rem.i553 = urem i32 %value.addr.0.i, %result.val.i - %sub1.i = sub nsw i32 %value.addr.0.i, %rem.i553 + %rem.i = srem i32 %value.addr.0.i, %result.val.i + %sub1.i = sub nsw i32 %value.addr.0.i, %rem.i br label %if.end189 if.end189: ; preds = %if.then183, %invoke.cont180 @@ -6717,9 +6717,9 @@ if.else216: ; preds = %if.end189 br label %if.end224 if.end224: ; preds = %if.end168.if.end224_crit_edge, %if.then193, %if.else216 - %128 = phi i32 [ %.pre624, %if.end168.if.end224_crit_edge ], [ %123, %if.then193 ], [ %127, %if.else216 ] - %129 = phi i32 [ %.pre623, %if.end168.if.end224_crit_edge ], [ %122, %if.then193 ], [ %126, %if.else216 ] - %130 = phi i32 [ %.pre622, %if.end168.if.end224_crit_edge ], [ %121, %if.then193 ], [ %125, %if.else216 ] + %128 = phi i32 [ %.pre623, %if.end168.if.end224_crit_edge ], [ %123, %if.then193 ], [ %127, %if.else216 ] + %129 = phi i32 [ %.pre622, %if.end168.if.end224_crit_edge ], [ %122, %if.then193 ], [ %126, %if.else216 ] + %130 = phi i32 [ %.pre621, %if.end168.if.end224_crit_edge ], [ %121, %if.then193 ], [ %125, %if.else216 ] %cmp226 = icmp sgt i32 %130, %111 %cmp229 = icmp sgt i32 %129, %111 %or.cond70 = select i1 %cmp226, i1 true, i1 %cmp229 @@ -6742,7 +6742,7 @@ if.end235: ; preds = %if.end224, %if.then invoke.cont241: ; preds = %if.end235 %132 = load i32, ptr %nchannels, align 4 %133 = load ptr, ptr %m_subimages, align 8 - %add.ptr.i.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::pvt::ImageCacheFile::SubimageInfo", ptr %133, i64 %indvars.iv618 + %add.ptr.i.i.i = getelementptr inbounds %"struct.OpenImageIO_v2_6_0::pvt::ImageCacheFile::SubimageInfo", ptr %133, i64 %indvars.iv617 %134 = load ptr, ptr %add.ptr.i.i.i, align 8 %nchannels243 = getelementptr inbounds i8, ptr %134, i64 60 %135 = load i32, ptr %nchannels243, align 4 @@ -6897,23 +6897,23 @@ if.then285: ; preds = %invoke.cont282 %152 = load i32, ptr %full_width, align 4 %153 = load i32, ptr %full_height, align 8 %154 = load i32, ptr %full_depth, align 4 - %cmp286595 = icmp sgt i32 %152, 1 - %cmp288596 = icmp sgt i32 %153, 1 - %or.cond4597 = select i1 %cmp286595, i1 true, i1 %cmp288596 - %cmp289598 = icmp sgt i32 %154, 1 - %or.cond5599 = select i1 %or.cond4597, i1 true, i1 %cmp289598 - br i1 %or.cond5599, label %while.body, label %if.end363 + %cmp286594 = icmp sgt i32 %152, 1 + %cmp288595 = icmp sgt i32 %153, 1 + %or.cond4596 = select i1 %cmp286594, i1 true, i1 %cmp288595 + %cmp289597 = icmp sgt i32 %154, 1 + %or.cond5598 = select i1 %or.cond4596, i1 true, i1 %cmp289597 + br i1 %or.cond5598, label %while.body, label %if.end363 while.body: ; preds = %if.then285, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit - %nmip.2603 = phi i32 [ %inc355, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %inc253, %if.then285 ] - %w.0602 = phi i32 [ %.sroa.speculated504, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %152, %if.then285 ] - %h.0601 = phi i32 [ %.sroa.speculated499, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %153, %if.then285 ] - %d.0600 = phi i32 [ %.sroa.speculated494, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %154, %if.then285 ] - %div = sdiv i32 %w.0602, 2 + %nmip.2602 = phi i32 [ %inc355, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %inc253, %if.then285 ] + %w.0601 = phi i32 [ %.sroa.speculated504, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %152, %if.then285 ] + %h.0600 = phi i32 [ %.sroa.speculated499, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %153, %if.then285 ] + %d.0599 = phi i32 [ %.sroa.speculated494, %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit ], [ %154, %if.then285 ] + %div = sdiv i32 %w.0601, 2 %.sroa.speculated504 = call i32 @llvm.smax.i32(i32 %div, i32 1) - %div296 = sdiv i32 %h.0601, 2 + %div296 = sdiv i32 %h.0600, 2 %.sroa.speculated499 = call i32 @llvm.smax.i32(i32 %div296, i32 1) - %div301 = sdiv i32 %d.0600, 2 + %div301 = sdiv i32 %d.0599, 2 %.sroa.speculated494 = call i32 @llvm.smax.i32(i32 %div301, i32 1) invoke void @_ZN18OpenImageIO_v2_6_09ImageSpecC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(160) %s, ptr noundef nonnull align 8 dereferenceable(160) %tempspec) to label %invoke.cont304 unwind label %lpad80.loopexit @@ -6936,8 +6936,8 @@ if.then317: ; preds = %invoke.cont304 %157 = load i8, ptr %m_autoscanline.i265, align 4 %tobool.i266 = trunc i8 %157 to i1 %.sroa.speculated490 = call i32 @llvm.smin.i32(i32 %.sroa.speculated504, i32 %156) - %storemerge625 = select i1 %tobool.i266, i32 %.sroa.speculated504, i32 %.sroa.speculated490 - store i32 %storemerge625, ptr %tile_width332, align 8 + %storemerge624 = select i1 %tobool.i266, i32 %.sroa.speculated504, i32 %.sroa.speculated490 + store i32 %storemerge624, ptr %tile_width332, align 8 %.sroa.speculated486 = call i32 @llvm.smin.i32(i32 %.sroa.speculated499, i32 %156) store i32 %.sroa.speculated486, ptr %tile_height341, align 4 %.sroa.speculated482 = call i32 @llvm.smin.i32(i32 %.sroa.speculated494, i32 %156) @@ -6954,9 +6954,9 @@ if.else350: ; preds = %invoke.cont304 br label %if.end354 if.end354: ; preds = %if.else350, %if.then317 - %storemerge626 = phi i32 [ %.sroa.speculated482, %if.then317 ], [ %.sroa.speculated494, %if.else350 ] - store i32 %storemerge626, ptr %tile_depth349, align 8 - %inc355 = add nuw nsw i32 %nmip.2603, 1 + %storemerge625 = phi i32 [ %.sroa.speculated482, %if.then317 ], [ %.sroa.speculated494, %if.else350 ] + store i32 %storemerge625, ptr %tile_depth349, align 8 + %inc355 = add nuw nsw i32 %nmip.2602, 1 invoke void @_ZN18OpenImageIO_v2_6_03pvt14ImageCacheFile9LevelInfoC1ERKNS_9ImageSpecES5_(ptr noundef nonnull align 8 dereferenceable(376) %levelinfo356, ptr noundef nonnull align 8 dereferenceable(160) %s, ptr noundef nonnull align 8 dereferenceable(160) %s) to label %invoke.cont357 unwind label %lpad311 @@ -7043,10 +7043,10 @@ if.then.i.i.i3.i: ; preds = %_ZNSt6vectorINSt7__ br label %_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit _ZN18OpenImageIO_v2_6_09ImageSpecD2Ev.exit: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, %if.then.i.i.i3.i - %cmp286 = icmp sgt i32 %w.0602, 3 - %cmp288 = icmp sgt i32 %h.0601, 3 + %cmp286 = icmp sgt i32 %w.0601, 3 + %cmp288 = icmp sgt i32 %h.0600, 3 %or.cond4 = select i1 %cmp286, i1 true, i1 %cmp288 - %cmp289 = icmp sgt i32 %d.0600, 3 + %cmp289 = icmp sgt i32 %d.0599, 3 %or.cond5 = select i1 %or.cond4, i1 true, i1 %cmp289 br i1 %or.cond5, label %while.body, label %if.end363, !llvm.loop !87 @@ -7177,7 +7177,7 @@ for.end422: ; preds = %for.body407 %arrayidx.i317 = getelementptr inbounds i32, ptr %188, i64 %conv424 store i32 0, ptr %arrayidx.i317, align 4 %189 = load ptr, ptr %inp, align 8 - %190 = trunc nuw nsw i64 %indvars.iv.next619 to i32 + %190 = trunc nuw nsw i64 %indvars.iv.next618 to i32 %call431 = invoke noundef zeroext i1 @_ZN18OpenImageIO_v2_6_010ImageInput13seek_subimageEiiRNS_9ImageSpecE(ptr noundef nonnull align 8 dereferenceable(184) %189, i32 noundef %190, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(160) %nativespec) to label %invoke.cont430 unwind label %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit @@ -7399,7 +7399,7 @@ if.then.i.i.i3.i391: ; preds = %_ZNSt6vectorINSt7__ br label %cleanup457 ehcleanup454: ; preds = %lpad80.loopexit, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad80.loopexit.split-lp.loopexit, %lpad451, %ehcleanup362, %lpad251, %lpad145, %lpad124, %ehcleanup98 - %.pn64 = phi { ptr, i32 } [ %106, %lpad145 ], [ %204, %lpad451 ], [ %.pn62, %ehcleanup362 ], [ %148, %lpad251 ], [ %93, %lpad124 ], [ %.pn60, %ehcleanup98 ], [ %lpad.loopexit, %lpad80.loopexit ], [ %lpad.loopexit556, %lpad80.loopexit.split-lp.loopexit ], [ %lpad.loopexit559, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit564, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp565, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %.pn64 = phi { ptr, i32 } [ %106, %lpad145 ], [ %204, %lpad451 ], [ %.pn62, %ehcleanup362 ], [ %148, %lpad251 ], [ %93, %lpad124 ], [ %.pn60, %ehcleanup98 ], [ %lpad.loopexit, %lpad80.loopexit ], [ %lpad.loopexit555, %lpad80.loopexit.split-lp.loopexit ], [ %lpad.loopexit558, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit563, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp564, %lpad80.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %tempspec) #35 call void @_ZN18OpenImageIO_v2_6_09ImageSpecD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %nativespec) #35 br label %ehcleanup458 diff --git a/bench/opencv/optimized/stereobm.cpp.ll b/bench/opencv/optimized/stereobm.cpp.ll index 84137008dd7..dd769215f6b 100644 --- a/bench/opencv/optimized/stereobm.cpp.ll +++ b/bench/opencv/optimized/stereobm.cpp.ll @@ -1721,9 +1721,10 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %187, %190 312: ; preds = %304 call void @_ZN2cv16ParallelLoopBodyD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %37) #16 + %.sroa.6.8.insert.ext = zext nneg i32 %234 to i64 %.sroa.6.12.insert.ext = zext i32 %236 to i64 %.sroa.6.12.insert.shift = shl nuw i64 %.sroa.6.12.insert.ext, 32 - %.sroa.6.12.insert.insert = or disjoint i64 %.sroa.6.12.insert.shift, %302 + %.sroa.6.12.insert.insert = or disjoint i64 %.sroa.6.12.insert.shift, %.sroa.6.8.insert.ext %313 = getelementptr inbounds i8, ptr %0, i64 48 %.sroa.0180.0.copyload = load i64, ptr %313, align 8 %.sroa.2181.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 56 diff --git a/bench/openjdk/optimized/DrawGlyphList.ll b/bench/openjdk/optimized/DrawGlyphList.ll index d5c26f41c94..e64fb501df5 100644 --- a/bench/openjdk/optimized/DrawGlyphList.ll +++ b/bench/openjdk/optimized/DrawGlyphList.ll @@ -657,12 +657,12 @@ define void @Java_sun_java2d_loops_DrawGlyphListLCD_DrawGlyphListLCD(ptr noundef %10 = alloca %struct._CompositeInfo, align 4 %11 = tail call ptr @GetNativePrim(ptr noundef %0, ptr noundef %1) #10 %12 = icmp eq ptr %11, null - br i1 %12, label %182, label %13 + br i1 %12, label %187, label %13 13: ; preds = %7 %14 = tail call ptr @setupLCDBlitVector(ptr noundef %0, ptr noundef %4, i32 noundef %5, i32 noundef %6) %15 = icmp eq ptr %14, null - br i1 %15, label %182, label %16 + br i1 %15, label %187, label %16 16: ; preds = %13 %17 = tail call i32 @GrPrim_Sg2dGetPixel(ptr noundef %0, ptr noundef %2) #10 @@ -842,7 +842,7 @@ RefineBounds.exit.i: ; preds = %._crit_edge.i.i %100 = icmp sgt i32 %97, %96 %101 = icmp sgt i32 %99, %98 %or.cond.i = select i1 %100, i1 %101, i1 false - br i1 %or.cond.i, label %102, label %179 + br i1 %or.cond.i, label %102, label %184 102: ; preds = %95 %103 = getelementptr inbounds i8, ptr %14, i64 8 @@ -861,150 +861,155 @@ RefineBounds.exit.i: ; preds = %._crit_edge.i.i 113: ; preds = %102 %114 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 - store ptr %114, ptr %111, align 8 - %115 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 - %116 = getelementptr inbounds [151 x ptr], ptr @lcdInvGammaLUT, i64 0, i64 %110 - store ptr %115, ptr %116, align 8 - %117 = icmp eq i32 %.0.i.i, 100 - br i1 %117, label %.preheader.i.i.i, label %123 + %115 = sext i32 %109 to i64 + %116 = getelementptr inbounds [151 x ptr], ptr @lcdGammaLUT, i64 0, i64 %115 + store ptr %114, ptr %116, align 8 + %117 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 + %118 = getelementptr inbounds [151 x ptr], ptr @lcdInvGammaLUT, i64 0, i64 %115 + store ptr %117, ptr %118, align 8 + %119 = icmp eq i32 %.0.i.i, 100 + br i1 %119, label %.preheader.i.i.i, label %125 .preheader.i.i.i: ; preds = %113, %.preheader.i.i.i %indvars.iv36.i.i.i = phi i64 [ %indvars.iv.next37.i.i.i, %.preheader.i.i.i ], [ 0, %113 ] - %118 = trunc i64 %indvars.iv36.i.i.i to i8 - %119 = load ptr, ptr %111, align 8 - %120 = getelementptr inbounds i8, ptr %119, i64 %indvars.iv36.i.i.i - store i8 %118, ptr %120, align 1 + %120 = trunc i64 %indvars.iv36.i.i.i to i8 %121 = load ptr, ptr %116, align 8 %122 = getelementptr inbounds i8, ptr %121, i64 %indvars.iv36.i.i.i - store i8 %118, ptr %122, align 1 + store i8 %120, ptr %122, align 1 + %123 = load ptr, ptr %118, align 8 + %124 = getelementptr inbounds i8, ptr %123, i64 %indvars.iv36.i.i.i + store i8 %120, ptr %124, align 1 %indvars.iv.next37.i.i.i = add nuw nsw i64 %indvars.iv36.i.i.i, 1 %exitcond39.not.i.i.i = icmp eq i64 %indvars.iv.next37.i.i.i, 256 br i1 %exitcond39.not.i.i.i, label %getLCDGammaLUT.exit.i, label %.preheader.i.i.i, !llvm.loop !10 -123: ; preds = %113 - %124 = uitofp nneg i32 %.0.i.i to double - %125 = fdiv double %124, 1.000000e+02 - %126 = fdiv double 1.000000e+00, %125 +125: ; preds = %113 + %126 = uitofp nneg i32 %.0.i.i to double + %127 = fdiv double %126, 1.000000e+02 + %128 = fdiv double 1.000000e+00, %127 store i8 0, ptr %114, align 1 - store i8 0, ptr %115, align 1 - %127 = getelementptr inbounds i8, ptr %114, i64 255 - store i8 -1, ptr %127, align 1 - %128 = getelementptr inbounds i8, ptr %115, i64 255 - store i8 -1, ptr %128, align 1 - br label %129 - -129: ; preds = %129, %123 - %indvars.iv.i.i.i = phi i64 [ 1, %123 ], [ %indvars.iv.next.i.i.i, %129 ] - %130 = trunc nuw nsw i64 %indvars.iv.i.i.i to i32 - %131 = uitofp nneg i32 %130 to double - %132 = fdiv double %131, 2.550000e+02 - %133 = call double @pow(double noundef %132, double noundef %126) #10 - %134 = call double @pow(double noundef %132, double noundef %125) #10 - %135 = fmul double %133, 2.550000e+02 - %136 = fptoui double %135 to i8 - %137 = load ptr, ptr %111, align 8 - %138 = getelementptr inbounds i8, ptr %137, i64 %indvars.iv.i.i.i - store i8 %136, ptr %138, align 1 - %139 = fmul double %134, 2.550000e+02 - %140 = fptoui double %139 to i8 - %141 = load ptr, ptr %116, align 8 - %142 = getelementptr inbounds i8, ptr %141, i64 %indvars.iv.i.i.i - store i8 %140, ptr %142, align 1 + store i8 0, ptr %117, align 1 + %129 = getelementptr inbounds i8, ptr %114, i64 255 + store i8 -1, ptr %129, align 1 + %130 = getelementptr inbounds i8, ptr %117, i64 255 + store i8 -1, ptr %130, align 1 + br label %131 + +131: ; preds = %131, %125 + %indvars.iv.i.i.i = phi i64 [ 1, %125 ], [ %indvars.iv.next.i.i.i, %131 ] + %132 = trunc nuw nsw i64 %indvars.iv.i.i.i to i32 + %133 = uitofp nneg i32 %132 to double + %134 = fdiv double %133, 2.550000e+02 + %135 = call double @pow(double noundef %134, double noundef %128) #10 + %136 = call double @pow(double noundef %134, double noundef %127) #10 + %137 = fmul double %135, 2.550000e+02 + %138 = fptoui double %137 to i8 + %139 = load ptr, ptr %116, align 8 + %140 = getelementptr inbounds i8, ptr %139, i64 %indvars.iv.i.i.i + store i8 %138, ptr %140, align 1 + %141 = fmul double %136, 2.550000e+02 + %142 = fptoui double %141 to i8 + %143 = load ptr, ptr %118, align 8 + %144 = getelementptr inbounds i8, ptr %143, i64 %indvars.iv.i.i.i + store i8 %142, ptr %144, align 1 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, 255 - br i1 %exitcond.not.i.i.i, label %getLCDGammaLUT.exit.i, label %129, !llvm.loop !11 - -getLCDGammaLUT.exit.i: ; preds = %129, %.preheader.i.i.i, %102 - %143 = load ptr, ptr %111, align 8 - %144 = getelementptr inbounds [151 x ptr], ptr @lcdInvGammaLUT, i64 0, i64 %110 - %145 = load ptr, ptr %144, align 8 - %.not.i70.i = icmp eq ptr %145, null - br i1 %.not.i70.i, label %146, label %getInvLCDGammaLUT.exit.i - -146: ; preds = %getLCDGammaLUT.exit.i - %147 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 - store ptr %147, ptr %111, align 8 - %148 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 - store ptr %148, ptr %144, align 8 - %149 = icmp eq i32 %.0.i.i, 100 - br i1 %149, label %.preheader.i.i74.i, label %155 - -.preheader.i.i74.i: ; preds = %146, %.preheader.i.i74.i - %indvars.iv36.i.i75.i = phi i64 [ %indvars.iv.next37.i.i76.i, %.preheader.i.i74.i ], [ 0, %146 ] - %150 = trunc i64 %indvars.iv36.i.i75.i to i8 - %151 = load ptr, ptr %111, align 8 - %152 = getelementptr inbounds i8, ptr %151, i64 %indvars.iv36.i.i75.i - store i8 %150, ptr %152, align 1 - %153 = load ptr, ptr %144, align 8 - %154 = getelementptr inbounds i8, ptr %153, i64 %indvars.iv36.i.i75.i - store i8 %150, ptr %154, align 1 + br i1 %exitcond.not.i.i.i, label %getLCDGammaLUT.exit.i, label %131, !llvm.loop !11 + +getLCDGammaLUT.exit.i: ; preds = %131, %.preheader.i.i.i, %102 + %145 = load ptr, ptr %111, align 8 + %146 = getelementptr inbounds [151 x ptr], ptr @lcdInvGammaLUT, i64 0, i64 %110 + %147 = load ptr, ptr %146, align 8 + %.not.i70.i = icmp eq ptr %147, null + br i1 %.not.i70.i, label %148, label %getInvLCDGammaLUT.exit.i + +148: ; preds = %getLCDGammaLUT.exit.i + %149 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 + %150 = sext i32 %109 to i64 + %151 = getelementptr inbounds [151 x ptr], ptr @lcdGammaLUT, i64 0, i64 %150 + store ptr %149, ptr %151, align 8 + %152 = call noalias dereferenceable_or_null(256) ptr @malloc(i64 noundef 256) #11 + %153 = getelementptr inbounds [151 x ptr], ptr @lcdInvGammaLUT, i64 0, i64 %150 + store ptr %152, ptr %153, align 8 + %154 = icmp eq i32 %.0.i.i, 100 + br i1 %154, label %.preheader.i.i74.i, label %160 + +.preheader.i.i74.i: ; preds = %148, %.preheader.i.i74.i + %indvars.iv36.i.i75.i = phi i64 [ %indvars.iv.next37.i.i76.i, %.preheader.i.i74.i ], [ 0, %148 ] + %155 = trunc i64 %indvars.iv36.i.i75.i to i8 + %156 = load ptr, ptr %151, align 8 + %157 = getelementptr inbounds i8, ptr %156, i64 %indvars.iv36.i.i75.i + store i8 %155, ptr %157, align 1 + %158 = load ptr, ptr %153, align 8 + %159 = getelementptr inbounds i8, ptr %158, i64 %indvars.iv36.i.i75.i + store i8 %155, ptr %159, align 1 %indvars.iv.next37.i.i76.i = add nuw nsw i64 %indvars.iv36.i.i75.i, 1 %exitcond39.not.i.i77.i = icmp eq i64 %indvars.iv.next37.i.i76.i, 256 br i1 %exitcond39.not.i.i77.i, label %getInvLCDGammaLUT.exit.i, label %.preheader.i.i74.i, !llvm.loop !10 -155: ; preds = %146 - %156 = uitofp nneg i32 %.0.i.i to double - %157 = fdiv double %156, 1.000000e+02 - %158 = fdiv double 1.000000e+00, %157 - store i8 0, ptr %147, align 1 - store i8 0, ptr %148, align 1 - %159 = getelementptr inbounds i8, ptr %147, i64 255 - store i8 -1, ptr %159, align 1 - %160 = getelementptr inbounds i8, ptr %148, i64 255 - store i8 -1, ptr %160, align 1 - br label %161 - -161: ; preds = %161, %155 - %indvars.iv.i.i71.i = phi i64 [ 1, %155 ], [ %indvars.iv.next.i.i72.i, %161 ] - %162 = trunc nuw nsw i64 %indvars.iv.i.i71.i to i32 - %163 = uitofp nneg i32 %162 to double - %164 = fdiv double %163, 2.550000e+02 - %165 = call double @pow(double noundef %164, double noundef %158) #10 - %166 = call double @pow(double noundef %164, double noundef %157) #10 - %167 = fmul double %165, 2.550000e+02 - %168 = fptoui double %167 to i8 - %169 = load ptr, ptr %111, align 8 - %170 = getelementptr inbounds i8, ptr %169, i64 %indvars.iv.i.i71.i - store i8 %168, ptr %170, align 1 - %171 = fmul double %166, 2.550000e+02 - %172 = fptoui double %171 to i8 - %173 = load ptr, ptr %144, align 8 - %174 = getelementptr inbounds i8, ptr %173, i64 %indvars.iv.i.i71.i - store i8 %172, ptr %174, align 1 +160: ; preds = %148 + %161 = uitofp nneg i32 %.0.i.i to double + %162 = fdiv double %161, 1.000000e+02 + %163 = fdiv double 1.000000e+00, %162 + store i8 0, ptr %149, align 1 + store i8 0, ptr %152, align 1 + %164 = getelementptr inbounds i8, ptr %149, i64 255 + store i8 -1, ptr %164, align 1 + %165 = getelementptr inbounds i8, ptr %152, i64 255 + store i8 -1, ptr %165, align 1 + br label %166 + +166: ; preds = %166, %160 + %indvars.iv.i.i71.i = phi i64 [ 1, %160 ], [ %indvars.iv.next.i.i72.i, %166 ] + %167 = trunc nuw nsw i64 %indvars.iv.i.i71.i to i32 + %168 = uitofp nneg i32 %167 to double + %169 = fdiv double %168, 2.550000e+02 + %170 = call double @pow(double noundef %169, double noundef %163) #10 + %171 = call double @pow(double noundef %169, double noundef %162) #10 + %172 = fmul double %170, 2.550000e+02 + %173 = fptoui double %172 to i8 + %174 = load ptr, ptr %151, align 8 + %175 = getelementptr inbounds i8, ptr %174, i64 %indvars.iv.i.i71.i + store i8 %173, ptr %175, align 1 + %176 = fmul double %171, 2.550000e+02 + %177 = fptoui double %176 to i8 + %178 = load ptr, ptr %153, align 8 + %179 = getelementptr inbounds i8, ptr %178, i64 %indvars.iv.i.i71.i + store i8 %177, ptr %179, align 1 %indvars.iv.next.i.i72.i = add nuw nsw i64 %indvars.iv.i.i71.i, 1 %exitcond.not.i.i73.i = icmp eq i64 %indvars.iv.next.i.i72.i, 255 - br i1 %exitcond.not.i.i73.i, label %getInvLCDGammaLUT.exit.i, label %161, !llvm.loop !11 - -getInvLCDGammaLUT.exit.i: ; preds = %161, %.preheader.i.i74.i, %getLCDGammaLUT.exit.i - %175 = load ptr, ptr %144, align 8 - call void %26(ptr noundef nonnull %9, ptr noundef %104, i32 noundef %105, i32 noundef %17, i32 noundef %18, i32 noundef %96, i32 noundef %98, i32 noundef %97, i32 noundef %99, i32 noundef %106, ptr noundef %143, ptr noundef %175, ptr noundef nonnull %11, ptr noundef nonnull %10) #10 - %176 = getelementptr inbounds i8, ptr %27, i64 16 - %177 = load ptr, ptr %176, align 8 - %.not67.i = icmp eq ptr %177, null - br i1 %.not67.i, label %179, label %178 - -178: ; preds = %getInvLCDGammaLUT.exit.i - call void %177(ptr noundef nonnull %0, ptr noundef nonnull %27, ptr noundef nonnull %9) #10 - br label %179 - -179: ; preds = %178, %getInvLCDGammaLUT.exit.i, %95 - %180 = getelementptr inbounds i8, ptr %27, i64 24 - %181 = load ptr, ptr %180, align 8 - %.not68.i = icmp eq ptr %181, null + br i1 %exitcond.not.i.i73.i, label %getInvLCDGammaLUT.exit.i, label %166, !llvm.loop !11 + +getInvLCDGammaLUT.exit.i: ; preds = %166, %.preheader.i.i74.i, %getLCDGammaLUT.exit.i + %180 = load ptr, ptr %146, align 8 + call void %26(ptr noundef nonnull %9, ptr noundef %104, i32 noundef %105, i32 noundef %17, i32 noundef %18, i32 noundef %96, i32 noundef %98, i32 noundef %97, i32 noundef %99, i32 noundef %106, ptr noundef %145, ptr noundef %180, ptr noundef nonnull %11, ptr noundef nonnull %10) #10 + %181 = getelementptr inbounds i8, ptr %27, i64 16 + %182 = load ptr, ptr %181, align 8 + %.not67.i = icmp eq ptr %182, null + br i1 %.not67.i, label %184, label %183 + +183: ; preds = %getInvLCDGammaLUT.exit.i + call void %182(ptr noundef nonnull %0, ptr noundef nonnull %27, ptr noundef nonnull %9) #10 + br label %184 + +184: ; preds = %183, %getInvLCDGammaLUT.exit.i, %95 + %185 = getelementptr inbounds i8, ptr %27, i64 24 + %186 = load ptr, ptr %185, align 8 + %.not68.i = icmp eq ptr %186, null br i1 %.not68.i, label %drawGlyphListLCD.exit, label %.sink.split.i -.sink.split.i: ; preds = %179, %92, %84 - %.sink.i = phi ptr [ %86, %84 ], [ %94, %92 ], [ %181, %179 ] +.sink.split.i: ; preds = %184, %92, %84 + %.sink.i = phi ptr [ %86, %84 ], [ %94, %92 ], [ %186, %184 ] call void %.sink.i(ptr noundef nonnull %0, ptr noundef nonnull %27, ptr noundef nonnull %9) #10 br label %drawGlyphListLCD.exit -drawGlyphListLCD.exit: ; preds = %16, %35, %40, %44, %84, %92, %179, %.sink.split.i +drawGlyphListLCD.exit: ; preds = %16, %35, %40, %44, %84, %92, %184, %.sink.split.i call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %10) call void @free(ptr noundef %14) #10 - br label %182 + br label %187 -182: ; preds = %13, %7, %drawGlyphListLCD.exit +187: ; preds = %13, %7, %drawGlyphListLCD.exit ret void } diff --git a/bench/openusd/optimized/json.cpp.ll b/bench/openusd/optimized/json.cpp.ll index 1fd8a6836c9..072db75dda4 100644 --- a/bench/openusd/optimized/json.cpp.ll +++ b/bench/openusd/optimized/json.cpp.ll @@ -12503,7 +12503,7 @@ define linkonce_odr noundef double @_ZN3pxr9rapidjson8internal19StrtodFullPrecis %22 = getelementptr inbounds [309 x double], ptr @_ZZN3pxr9rapidjson8internal5Pow10EiE1e, i64 0, i64 %21 %23 = load double, ptr %22, align 8 %24 = fmul double %.0162233.i, %23 - br label %.critedge2.thread66 + br label %.critedge2.thread71 25: ; preds = %19 %26 = sub nsw i32 0, %1 @@ -12511,7 +12511,7 @@ define linkonce_odr noundef double @_ZN3pxr9rapidjson8internal19StrtodFullPrecis %28 = getelementptr inbounds [309 x double], ptr @_ZZN3pxr9rapidjson8internal5Pow10EiE1e, i64 0, i64 %27 %29 = load double, ptr %28, align 8 %30 = fdiv double %0, %29 - br label %.critedge2.thread66 + br label %.critedge2.thread71 31: ; preds = %.thread.i, %10 %32 = trunc i64 %3 to i32 @@ -12522,76 +12522,76 @@ define linkonce_odr noundef double @_ZN3pxr9rapidjson8internal19StrtodFullPrecis br i1 %34, label %.lr.ph, label %.critedge2 .lr.ph: ; preds = %31, %37 - %.03345 = phi ptr [ %39, %37 ], [ %2, %31 ] - %.03444 = phi i32 [ %38, %37 ], [ %32, %31 ] - %35 = load i8, ptr %.03345, align 1 + %.03350 = phi ptr [ %39, %37 ], [ %2, %31 ] + %.03449 = phi i32 [ %38, %37 ], [ %32, %31 ] + %35 = load i8, ptr %.03350, align 1 %36 = icmp eq i8 %35, 48 - br i1 %36, label %37, label %.lr.ph52.preheader + br i1 %36, label %37, label %.lr.ph57.preheader 37: ; preds = %.lr.ph - %38 = add nsw i32 %.03444, -1 - %39 = getelementptr inbounds i8, ptr %.03345, i64 1 - %40 = icmp sgt i32 %.03444, 1 - br i1 %40, label %.lr.ph, label %.critedge2.thread66, !llvm.loop !107 - -.lr.ph52.preheader: ; preds = %.lr.ph - %41 = zext nneg i32 %.03444 to i64 - %42 = add i32 %.03444, %5 + %38 = add nsw i32 %.03449, -1 + %39 = getelementptr inbounds i8, ptr %.03350, i64 1 + %40 = icmp sgt i32 %.03449, 1 + br i1 %40, label %.lr.ph, label %.critedge2.thread71, !llvm.loop !107 + +.lr.ph57.preheader: ; preds = %.lr.ph + %41 = zext nneg i32 %.03449 to i64 + %42 = add i32 %.03449, %5 %43 = trunc i64 %4 to i32 %44 = add i32 %42, %43 %45 = sub i32 %44, %32 - br label %.lr.ph52 + br label %.lr.ph57 -.lr.ph52: ; preds = %.lr.ph52.preheader, %49 - %indvars.iv = phi i64 [ %41, %.lr.ph52.preheader ], [ %indvars.iv.next, %49 ] - %.03251 = phi i32 [ %33, %.lr.ph52.preheader ], [ %50, %49 ] +.lr.ph57: ; preds = %.lr.ph57.preheader, %49 + %indvars.iv = phi i64 [ %41, %.lr.ph57.preheader ], [ %indvars.iv.next, %49 ] + %.03256 = phi i32 [ %33, %.lr.ph57.preheader ], [ %50, %49 ] %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %46 = getelementptr inbounds i8, ptr %.03345, i64 %indvars.iv.next + %46 = getelementptr inbounds i8, ptr %.03350, i64 %indvars.iv.next %47 = load i8, ptr %46, align 1 %48 = icmp eq i8 %47, 48 br i1 %48, label %49, label %.critedge2.thread.loopexit -49: ; preds = %.lr.ph52 - %50 = add nsw i32 %.03251, 1 +49: ; preds = %.lr.ph57 + %50 = add nsw i32 %.03256, 1 %51 = icmp ugt i64 %indvars.iv, 1 - br i1 %51, label %.lr.ph52, label %.critedge2.loopexit, !llvm.loop !108 + br i1 %51, label %.lr.ph57, label %.critedge2.loopexit, !llvm.loop !108 .critedge2.loopexit: ; preds = %49 %52 = trunc nuw nsw i64 %indvars.iv.next to i32 br label %.critedge2 .critedge2: ; preds = %31, %.critedge2.loopexit - %.033.lcssa65 = phi ptr [ %.03345, %.critedge2.loopexit ], [ %2, %31 ] + %.033.lcssa70 = phi ptr [ %.03350, %.critedge2.loopexit ], [ %2, %31 ] %.135.lcssa = phi i32 [ %52, %.critedge2.loopexit ], [ %32, %31 ] %.032.lcssa = phi i32 [ %45, %.critedge2.loopexit ], [ %33, %31 ] %53 = icmp eq i32 %.135.lcssa, 0 - br i1 %53, label %.critedge2.thread66, label %.critedge2.thread + br i1 %53, label %.critedge2.thread71, label %.critedge2.thread -.critedge2.thread.loopexit: ; preds = %.lr.ph52 +.critedge2.thread.loopexit: ; preds = %.lr.ph57 %54 = trunc nuw nsw i64 %indvars.iv to i32 br label %.critedge2.thread .critedge2.thread: ; preds = %.critedge2.thread.loopexit, %.critedge2 - %.033.lcssa64 = phi ptr [ %.033.lcssa65, %.critedge2 ], [ %.03345, %.critedge2.thread.loopexit ] - %.13543 = phi i32 [ %.135.lcssa, %.critedge2 ], [ %54, %.critedge2.thread.loopexit ] - %.03241 = phi i32 [ %.032.lcssa, %.critedge2 ], [ %.03251, %.critedge2.thread.loopexit ] - %55 = icmp sgt i32 %.13543, 768 - %56 = add nsw i32 %.13543, -768 - %.2 = tail call i32 @llvm.smin.i32(i32 %.13543, i32 768) + %.033.lcssa69 = phi ptr [ %.033.lcssa70, %.critedge2 ], [ %.03350, %.critedge2.thread.loopexit ] + %.13548 = phi i32 [ %.135.lcssa, %.critedge2 ], [ %54, %.critedge2.thread.loopexit ] + %.03246 = phi i32 [ %.032.lcssa, %.critedge2 ], [ %.03256, %.critedge2.thread.loopexit ] + %55 = icmp sgt i32 %.13548, 768 + %56 = add nsw i32 %.13548, -768 + %.2 = tail call i32 @llvm.smin.i32(i32 %.13548, i32 768) %57 = select i1 %55, i32 %56, i32 0 - %.1 = add nsw i32 %57, %.03241 + %.1 = add nsw i32 %57, %.03246 %58 = add nsw i32 %.1, %.2 %59 = icmp slt i32 %58, -323 - br i1 %59, label %.critedge2.thread66, label %60 + br i1 %59, label %.critedge2.thread71, label %60 60: ; preds = %.critedge2.thread %61 = icmp sgt i32 %58, 309 - br i1 %61, label %.critedge2.thread66, label %62 + br i1 %61, label %.critedge2.thread71, label %62 62: ; preds = %60 - %63 = call noundef zeroext i1 @_ZN3pxr9rapidjson8internal11StrtodDiyFpIcEEbPKT_iiPd(ptr noundef %.033.lcssa64, i32 noundef %.2, i32 noundef %.1, ptr noundef nonnull %8) + %63 = call noundef zeroext i1 @_ZN3pxr9rapidjson8internal11StrtodDiyFpIcEEbPKT_iiPd(ptr noundef %.033.lcssa69, i32 noundef %.2, i32 noundef %.1, ptr noundef nonnull %8) %64 = load double, ptr %8, align 8 - br i1 %63, label %.critedge2.thread66, label %65 + br i1 %63, label %.critedge2.thread71, label %65 65: ; preds = %62 call void @llvm.lifetime.start.p0(i64 3336, ptr nonnull %7) @@ -12600,12 +12600,12 @@ define linkonce_odr noundef double @_ZN3pxr9rapidjson8internal19StrtodFullPrecis store i64 1, ptr %67, align 8 store i64 0, ptr %7, align 8 %68 = icmp ugt i32 %.2, 18 - br i1 %68, label %.lr.ph.i.i, label %._crit_edge.i.i + br i1 %68, label %.lr.ph.i.i, label %._crit_edge.i.i.thread .lr.ph.i.i: ; preds = %65, %.lr.ph.i.i %.015.i.i = phi i64 [ %71, %.lr.ph.i.i ], [ %66, %65 ] %.01314.i.i = phi i64 [ %72, %.lr.ph.i.i ], [ 0, %65 ] - %69 = getelementptr inbounds i8, ptr %.033.lcssa64, i64 %.01314.i.i + %69 = getelementptr inbounds i8, ptr %.033.lcssa69, i64 %.01314.i.i %70 = getelementptr inbounds i8, ptr %69, i64 19 call void @_ZN3pxr9rapidjson8internal10BigInteger15AppendDecimal64IcEEvPKT_S6_(ptr noundef nonnull align 8 dereferenceable(3336) %7, ptr noundef %69, ptr noundef nonnull %70) %71 = add i64 %.015.i.i, -19 @@ -12613,49 +12613,49 @@ define linkonce_odr noundef double @_ZN3pxr9rapidjson8internal19StrtodFullPrecis %73 = icmp ugt i64 %71, 18 br i1 %73, label %.lr.ph.i.i, label %._crit_edge.i.i, !llvm.loop !109 -._crit_edge.i.i: ; preds = %.lr.ph.i.i, %65 - %.013.lcssa.i.i = phi i64 [ 0, %65 ], [ %72, %.lr.ph.i.i ] - %.0.lcssa.i.i = phi i64 [ %66, %65 ], [ %71, %.lr.ph.i.i ] - %.not.i.i = icmp eq i64 %.0.lcssa.i.i, 0 - br i1 %.not.i.i, label %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i, label %74 +._crit_edge.i.i: ; preds = %.lr.ph.i.i + %.not.i.i = icmp eq i64 %71, 0 + br i1 %.not.i.i, label %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i, label %._crit_edge.i.i.thread -74: ; preds = %._crit_edge.i.i - %75 = getelementptr inbounds i8, ptr %.033.lcssa64, i64 %.013.lcssa.i.i - %76 = getelementptr inbounds i8, ptr %75, i64 %.0.lcssa.i.i - call void @_ZN3pxr9rapidjson8internal10BigInteger15AppendDecimal64IcEEvPKT_S6_(ptr noundef nonnull align 8 dereferenceable(3336) %7, ptr noundef %75, ptr noundef nonnull %76) +._crit_edge.i.i.thread: ; preds = %65, %._crit_edge.i.i + %.0.lcssa.i.i43 = phi i64 [ %71, %._crit_edge.i.i ], [ %66, %65 ] + %.013.lcssa.i.i42 = phi i64 [ %72, %._crit_edge.i.i ], [ 0, %65 ] + %74 = getelementptr inbounds i8, ptr %.033.lcssa69, i64 %.013.lcssa.i.i42 + %75 = getelementptr inbounds i8, ptr %74, i64 %.0.lcssa.i.i43 + call void @_ZN3pxr9rapidjson8internal10BigInteger15AppendDecimal64IcEEvPKT_S6_(ptr noundef nonnull align 8 dereferenceable(3336) %7, ptr noundef %74, ptr noundef nonnull %75) br label %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i -_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i: ; preds = %74, %._crit_edge.i.i - %77 = call noundef i32 @_ZN3pxr9rapidjson8internal18CheckWithinHalfULPEdRKNS1_10BigIntegerEi(double noundef %64, ptr noundef nonnull align 8 dereferenceable(3336) %7, i32 noundef %.1) - %78 = icmp slt i32 %77, 0 - br i1 %78, label %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit, label %79 +_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i: ; preds = %._crit_edge.i.i.thread, %._crit_edge.i.i + %76 = call noundef i32 @_ZN3pxr9rapidjson8internal18CheckWithinHalfULPEdRKNS1_10BigIntegerEi(double noundef %64, ptr noundef nonnull align 8 dereferenceable(3336) %7, i32 noundef %.1) + %77 = icmp slt i32 %76, 0 + br i1 %77, label %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit, label %78 -79: ; preds = %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i - %80 = icmp eq i32 %77, 0 - %81 = bitcast double %64 to i64 - br i1 %80, label %82, label %87 +78: ; preds = %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i + %79 = icmp eq i32 %76, 0 + %80 = bitcast double %64 to i64 + br i1 %79, label %81, label %86 -82: ; preds = %79 - %83 = and i64 %81, 1 - %.not.i = icmp eq i64 %83, 0 - br i1 %.not.i, label %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit, label %84 +81: ; preds = %78 + %82 = and i64 %80, 1 + %.not.i = icmp eq i64 %82, 0 + br i1 %.not.i, label %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit, label %83 -84: ; preds = %82 - %85 = add i64 %81, 1 - %86 = bitcast i64 %85 to double +83: ; preds = %81 + %84 = add i64 %80, 1 + %85 = bitcast i64 %84 to double br label %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit -87: ; preds = %79 - %88 = add i64 %81, 1 - %89 = bitcast i64 %88 to double +86: ; preds = %78 + %87 = add i64 %80, 1 + %88 = bitcast i64 %87 to double br label %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit -_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit: ; preds = %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i, %82, %84, %87 - %.0.i = phi double [ %86, %84 ], [ %89, %87 ], [ %64, %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i ], [ %64, %82 ] +_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit: ; preds = %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i, %81, %83, %86 + %.0.i = phi double [ %85, %83 ], [ %88, %86 ], [ %64, %_ZN3pxr9rapidjson8internal10BigIntegerC2IcEEPKT_m.exit.i ], [ %64, %81 ] call void @llvm.lifetime.end.p0(i64 3336, ptr nonnull %7) - br label %.critedge2.thread66 + br label %.critedge2.thread71 -.critedge2.thread66: ; preds = %37, %62, %.thread26.i, %25, %60, %.critedge2.thread, %.critedge2, %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit +.critedge2.thread71: ; preds = %37, %62, %.thread26.i, %25, %60, %.critedge2.thread, %.critedge2, %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit %.0 = phi double [ %.0.i, %_ZN3pxr9rapidjson8internal16StrtodBigIntegerIcEEddPKT_ii.exit ], [ 0.000000e+00, %.critedge2 ], [ 0.000000e+00, %.critedge2.thread ], [ 0x7FF0000000000000, %60 ], [ %24, %.thread26.i ], [ %30, %25 ], [ %64, %62 ], [ 0.000000e+00, %37 ] ret double %.0 } diff --git a/bench/openusd/optimized/warped_motion.c.ll b/bench/openusd/optimized/warped_motion.c.ll index 9299da0e2ae..f89010e1659 100644 --- a/bench/openusd/optimized/warped_motion.c.ll +++ b/bench/openusd/optimized/warped_motion.c.ll @@ -1811,23 +1811,23 @@ resolve_divisor_64.exit.i: ; preds = %133, %123 %158 = mul nsw i64 %.sroa.064.0.lcssa.i, %151 %159 = mul nsw i64 %.sroa.079.0.lcssa.i, %.sroa.5.0.lcssa.i %160 = add nsw i64 %159, %158 - %161 = sext i16 %.0127.i to i64 - %162 = mul nsw i64 %150, %161 - %163 = icmp slt i64 %162, 0 - %164 = zext nneg i16 %storemerge.i to i64 - %165 = shl nuw nsw i64 1, %164 + %161 = zext nneg i16 %storemerge.i to i64 + %162 = sext i16 %.0127.i to i64 + %163 = mul nsw i64 %150, %162 + %164 = icmp slt i64 %163, 0 + %165 = shl nuw nsw i64 1, %161 %166 = lshr i64 %165, 1 - br i1 %163, label %167, label %171 + br i1 %164, label %167, label %171 167: ; preds = %resolve_divisor_64.exit.i - %168 = sub nsw i64 %166, %162 - %169 = lshr i64 %168, %164 + %168 = sub nsw i64 %166, %163 + %169 = lshr i64 %168, %161 %170 = sub nsw i64 0, %169 br label %get_mult_shift_diag.exit.i 171: ; preds = %resolve_divisor_64.exit.i - %172 = add nuw nsw i64 %162, %166 - %173 = lshr i64 %172, %164 + %172 = add nuw nsw i64 %163, %166 + %173 = lshr i64 %172, %161 br label %get_mult_shift_diag.exit.i get_mult_shift_diag.exit.i: ; preds = %171, %167 @@ -1837,19 +1837,19 @@ get_mult_shift_diag.exit.i: ; preds = %171, %167 %177 = trunc nuw nsw i64 %176 to i32 %178 = getelementptr inbounds i8, ptr %6, i64 8 store i32 %177, ptr %178, align 4 - %179 = mul nsw i64 %154, %161 + %179 = mul nsw i64 %154, %162 %180 = icmp slt i64 %179, 0 br i1 %180, label %181, label %185 181: ; preds = %get_mult_shift_diag.exit.i %182 = sub nsw i64 %166, %179 - %183 = lshr i64 %182, %164 + %183 = lshr i64 %182, %161 %184 = sub nsw i64 0, %183 br label %get_mult_shift_ndiag.exit.i 185: ; preds = %get_mult_shift_diag.exit.i %186 = add nuw nsw i64 %179, %166 - %187 = lshr i64 %186, %164 + %187 = lshr i64 %186, %161 br label %get_mult_shift_ndiag.exit.i get_mult_shift_ndiag.exit.i: ; preds = %185, %181 @@ -1859,19 +1859,19 @@ get_mult_shift_ndiag.exit.i: ; preds = %185, %181 %191 = trunc nsw i64 %190 to i32 %192 = getelementptr inbounds i8, ptr %6, i64 12 store i32 %191, ptr %192, align 4 - %193 = mul nsw i64 %157, %161 + %193 = mul nsw i64 %157, %162 %194 = icmp slt i64 %193, 0 br i1 %194, label %195, label %199 195: ; preds = %get_mult_shift_ndiag.exit.i %196 = sub nsw i64 %166, %193 - %197 = lshr i64 %196, %164 + %197 = lshr i64 %196, %161 %198 = sub nsw i64 0, %197 br label %get_mult_shift_ndiag.exit131.i 199: ; preds = %get_mult_shift_ndiag.exit.i %200 = add nuw nsw i64 %193, %166 - %201 = lshr i64 %200, %164 + %201 = lshr i64 %200, %161 br label %get_mult_shift_ndiag.exit131.i get_mult_shift_ndiag.exit131.i: ; preds = %199, %195 @@ -1881,19 +1881,19 @@ get_mult_shift_ndiag.exit131.i: ; preds = %199, %195 %205 = trunc nsw i64 %204 to i32 %206 = getelementptr inbounds i8, ptr %6, i64 16 store i32 %205, ptr %206, align 4 - %207 = mul nsw i64 %160, %161 + %207 = mul nsw i64 %160, %162 %208 = icmp slt i64 %207, 0 br i1 %208, label %209, label %213 209: ; preds = %get_mult_shift_ndiag.exit131.i %210 = sub nsw i64 %166, %207 - %211 = lshr i64 %210, %164 + %211 = lshr i64 %210, %161 %212 = sub nsw i64 0, %211 br label %216 213: ; preds = %get_mult_shift_ndiag.exit131.i %214 = add nuw nsw i64 %207, %166 - %215 = lshr i64 %214, %164 + %215 = lshr i64 %214, %161 br label %216 216: ; preds = %209, %213 diff --git a/bench/postgres/optimized/selfuncs.ll b/bench/postgres/optimized/selfuncs.ll index 9d4177928ee..24a944ceaee 100644 --- a/bench/postgres/optimized/selfuncs.ll +++ b/bench/postgres/optimized/selfuncs.ll @@ -1855,7 +1855,7 @@ define internal fastcc zeroext i1 @convert_to_scalar(i64 noundef %0, i32 noundef %.266.lcssa.i = phi i32 [ %.064.lcssa.i, %.preheader.i ], [ %spec.select87.i, %.lr.ph119.i ] %.2.lcssa.i = phi i32 [ %.062.lcssa.i, %.preheader.i ], [ %.3.i, %.lr.ph119.i ] %36 = icmp slt i32 %.266.lcssa.i, 91 - %37 = icmp ugt i32 %.2.lcssa.i, 64 + %37 = icmp sgt i32 %.2.lcssa.i, 64 %or.cond.i = select i1 %36, i1 %37, i1 false br i1 %or.cond.i, label %38, label %40 @@ -1868,7 +1868,7 @@ define internal fastcc zeroext i1 @convert_to_scalar(i64 noundef %0, i32 noundef %.468.i = phi i32 [ %spec.store.select.i, %38 ], [ %.266.lcssa.i, %._crit_edge.i ] %.4.i = phi i32 [ %39, %38 ], [ %.2.lcssa.i, %._crit_edge.i ] %41 = icmp slt i32 %.468.i, 123 - %42 = icmp ugt i32 %.4.i, 96 + %42 = icmp sgt i32 %.4.i, 96 %or.cond3.i = select i1 %41, i1 %42, i1 false br i1 %or.cond3.i, label %43, label %45 @@ -1881,7 +1881,7 @@ define internal fastcc zeroext i1 @convert_to_scalar(i64 noundef %0, i32 noundef %.569.i = phi i32 [ %spec.store.select4.i, %43 ], [ %.468.i, %40 ] %.5.i = phi i32 [ %44, %43 ], [ %.4.i, %40 ] %46 = icmp slt i32 %.569.i, 58 - %47 = icmp ugt i32 %.5.i, 47 + %47 = icmp sgt i32 %.5.i, 47 %or.cond6.i = select i1 %46, i1 %47, i1 false br i1 %or.cond6.i, label %48, label %50 diff --git a/bench/postgres/optimized/varlena.ll b/bench/postgres/optimized/varlena.ll index 554539a9d8b..8ece9562f86 100644 --- a/bench/postgres/optimized/varlena.ll +++ b/bench/postgres/optimized/varlena.ll @@ -3767,7 +3767,7 @@ define internal i64 @varstr_abbrev_convert(i64 noundef %0, ptr nocapture noundef %44 = tail call i32 @llvm.umin.i32(i32 %.0, i32 8) %45 = zext nneg i32 %44 to i64 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %3, ptr nonnull align 1 %12, i64 %45, i1 false) - br label %132 + br label %133 46: ; preds = %39 %47 = getelementptr inbounds i8, ptr %5, i64 16 @@ -3801,12 +3801,12 @@ define internal i64 @varstr_abbrev_convert(i64 noundef %0, ptr nocapture noundef %60 = getelementptr inbounds i8, ptr %5, i64 36 %61 = load i8, ptr %60, align 4 %62 = trunc i8 %61 to i1 - %.pre133 = load ptr, ptr %5, align 8 + %.pre132 = load ptr, ptr %5, align 8 br i1 %62, label %63, label %71 63: ; preds = %59 %64 = sext i32 %.0 to i64 - %bcmp = tail call i32 @bcmp(ptr %.pre133, ptr nonnull %12, i64 %64) + %bcmp = tail call i32 @bcmp(ptr %.pre132, ptr nonnull %12, i64 %64) %65 = icmp eq i32 %bcmp, 0 br i1 %65, label %66, label %71 @@ -3815,14 +3815,14 @@ define internal i64 @varstr_abbrev_convert(i64 noundef %0, ptr nocapture noundef %68 = load ptr, ptr %67, align 8 %69 = getelementptr inbounds i8, ptr %5, i64 28 %70 = load i32, ptr %69, align 4 - %narrow132 = tail call i32 @llvm.umin.i32(i32 %70, i32 8) - %spec.select125 = zext nneg i32 %narrow132 to i64 + %narrow131 = tail call i32 @llvm.umin.i32(i32 %70, i32 8) + %spec.select125 = zext nneg i32 %narrow131 to i64 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %3, ptr align 1 %68, i64 %spec.select125, i1 false) %.0..0..0..0.105.pre = load i64, ptr %3, align 8 - br label %147 + br label %148 71: ; preds = %._crit_edge, %63, %59 - %72 = phi ptr [ %.pre, %._crit_edge ], [ %.pre133, %63 ], [ %.pre133, %59 ] + %72 = phi ptr [ %.pre, %._crit_edge ], [ %.pre132, %63 ], [ %.pre132, %59 ] %73 = sext i32 %.0 to i64 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %72, ptr nonnull align 1 %12, i64 %73, i1 false) %74 = load ptr, ptr %5, align 8 @@ -3855,109 +3855,109 @@ define internal i64 @varstr_abbrev_convert(i64 noundef %0, ptr nocapture noundef %93 = getelementptr inbounds i8, ptr %5, i64 20 %94 = load i32, ptr %93, align 4 %95 = icmp ult i32 %94, 8 - br i1 %95, label %96, label %._crit_edge134 + br i1 %95, label %96, label %._crit_edge133 -._crit_edge134: ; preds = %92 +._crit_edge133: ; preds = %92 %.phi.trans.insert = getelementptr inbounds i8, ptr %5, i64 8 - %.pre135 = load ptr, ptr %.phi.trans.insert, align 8 - br label %103 + %.pre134 = load ptr, ptr %.phi.trans.insert, align 8 + br label %104 96: ; preds = %92 %97 = icmp ult i32 %94, 4 %98 = shl nuw nsw i32 %94, 1 - %spec.select130 = select i1 %97, i32 8, i32 %98 - store i32 %spec.select130, ptr %93, align 4 - %99 = getelementptr inbounds i8, ptr %5, i64 8 - %100 = load ptr, ptr %99, align 8 - %101 = zext nneg i32 %spec.select130 to i64 - %102 = tail call ptr @repalloc(ptr noundef %100, i64 noundef %101) #19 - store ptr %102, ptr %99, align 8 - br label %103 - -103: ; preds = %._crit_edge134, %96 - %104 = phi ptr [ %.pre135, %._crit_edge134 ], [ %102, %96 ] - %105 = load ptr, ptr %5, align 8 - %106 = load ptr, ptr %76, align 8 - %107 = tail call i64 @pg_strxfrm_prefix(ptr noundef %104, ptr noundef %105, i64 noundef 8, ptr noundef %106) #19 - %108 = trunc i64 %107 to i32 - %109 = getelementptr inbounds i8, ptr %5, i64 28 - store i32 %108, ptr %109, align 4 + %99 = select i1 %97, i32 8, i32 %98 + store i32 %99, ptr %93, align 4 + %100 = getelementptr inbounds i8, ptr %5, i64 8 + %101 = load ptr, ptr %100, align 8 + %102 = zext nneg i32 %99 to i64 + %103 = tail call ptr @repalloc(ptr noundef %101, i64 noundef %102) #19 + store ptr %103, ptr %100, align 8 + br label %104 + +104: ; preds = %._crit_edge133, %96 + %105 = phi ptr [ %.pre134, %._crit_edge133 ], [ %103, %96 ] + %106 = load ptr, ptr %5, align 8 + %107 = load ptr, ptr %76, align 8 + %108 = tail call i64 @pg_strxfrm_prefix(ptr noundef %105, ptr noundef %106, i64 noundef 8, ptr noundef %107) #19 + %109 = trunc i64 %108 to i32 + %110 = getelementptr inbounds i8, ptr %5, i64 28 + store i32 %109, ptr %110, align 4 br label %.loopexit .lr.ph: ; preds = %.preheader, %.lr.ph - %110 = phi i32 [ %126, %.lr.ph ], [ %89, %.preheader ] - %111 = phi i64 [ %124, %.lr.ph ], [ %86, %.preheader ] - %112 = add i64 %111, 1 - %113 = shl i32 %110, 1 - %narrow131 = tail call i32 @llvm.umin.i32(i32 %113, i32 1073741823) - %spec.select127 = zext nneg i32 %narrow131 to i64 - %114 = icmp ugt i64 %112, %spec.select127 - %115 = trunc i64 %112 to i32 - %116 = select i1 %114, i32 %115, i32 %narrow131 - store i32 %116, ptr %80, align 4 - %117 = load ptr, ptr %79, align 8 - %118 = sext i32 %116 to i64 - %119 = tail call ptr @repalloc(ptr noundef %117, i64 noundef %118) #19 - store ptr %119, ptr %79, align 8 - %120 = load ptr, ptr %5, align 8 - %121 = load i32, ptr %80, align 4 - %122 = sext i32 %121 to i64 - %123 = load ptr, ptr %76, align 8 - %124 = tail call i64 @pg_strxfrm(ptr noundef %119, ptr noundef %120, i64 noundef %122, ptr noundef %123) #19 - %125 = trunc i64 %124 to i32 - store i32 %125, ptr %88, align 4 - %126 = load i32, ptr %80, align 4 - %127 = sext i32 %126 to i64 - %128 = icmp ult i64 %124, %127 - br i1 %128, label %.loopexit, label %.lr.ph - -.loopexit: ; preds = %.lr.ph, %.preheader, %103 - %.0103 = phi i64 [ %107, %103 ], [ %86, %.preheader ], [ %124, %.lr.ph ] - %129 = getelementptr inbounds i8, ptr %5, i64 8 - %130 = load ptr, ptr %129, align 8 - %131 = tail call i64 @llvm.umin.i64(i64 %.0103, i64 8) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %3, ptr align 1 %130, i64 %131, i1 false) - br label %132 - -132: ; preds = %.loopexit, %43 - %133 = tail call i32 @llvm.smin.i32(i32 %.0, i32 128) - %134 = tail call i32 @hash_bytes(ptr noundef nonnull %12, i32 noundef %133) #19 - %135 = icmp sgt i32 %.0, 128 - br i1 %135, label %136, label %139 - -136: ; preds = %132 - %137 = tail call i32 @hash_bytes_uint32(i32 noundef %.0) #19 - %138 = xor i32 %137, %134 - br label %139 - -139: ; preds = %136, %132 - %.0102 = phi i32 [ %138, %136 ], [ %134, %132 ] - %140 = getelementptr inbounds i8, ptr %5, i64 88 - tail call void @addHyperLogLog(ptr noundef nonnull %140, i32 noundef %.0102) #19 + %111 = phi i32 [ %127, %.lr.ph ], [ %89, %.preheader ] + %112 = phi i64 [ %125, %.lr.ph ], [ %86, %.preheader ] + %113 = add i64 %112, 1 + %114 = shl i32 %111, 1 + %narrow130 = tail call i32 @llvm.umin.i32(i32 %114, i32 1073741823) + %spec.select127 = zext nneg i32 %narrow130 to i64 + %115 = icmp ugt i64 %113, %spec.select127 + %116 = trunc i64 %113 to i32 + %117 = select i1 %115, i32 %116, i32 %narrow130 + store i32 %117, ptr %80, align 4 + %118 = load ptr, ptr %79, align 8 + %119 = sext i32 %117 to i64 + %120 = tail call ptr @repalloc(ptr noundef %118, i64 noundef %119) #19 + store ptr %120, ptr %79, align 8 + %121 = load ptr, ptr %5, align 8 + %122 = load i32, ptr %80, align 4 + %123 = sext i32 %122 to i64 + %124 = load ptr, ptr %76, align 8 + %125 = tail call i64 @pg_strxfrm(ptr noundef %120, ptr noundef %121, i64 noundef %123, ptr noundef %124) #19 + %126 = trunc i64 %125 to i32 + store i32 %126, ptr %88, align 4 + %127 = load i32, ptr %80, align 4 + %128 = sext i32 %127 to i64 + %129 = icmp ult i64 %125, %128 + br i1 %129, label %.loopexit, label %.lr.ph + +.loopexit: ; preds = %.lr.ph, %.preheader, %104 + %.0103 = phi i64 [ %108, %104 ], [ %86, %.preheader ], [ %125, %.lr.ph ] + %130 = getelementptr inbounds i8, ptr %5, i64 8 + %131 = load ptr, ptr %130, align 8 + %132 = tail call i64 @llvm.umin.i64(i64 %.0103, i64 8) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %3, ptr align 1 %131, i64 %132, i1 false) + br label %133 + +133: ; preds = %.loopexit, %43 + %134 = tail call i32 @llvm.smin.i32(i32 %.0, i32 128) + %135 = tail call i32 @hash_bytes(ptr noundef nonnull %12, i32 noundef %134) #19 + %136 = icmp sgt i32 %.0, 128 + br i1 %136, label %137, label %140 + +137: ; preds = %133 + %138 = tail call i32 @hash_bytes_uint32(i32 noundef %.0) #19 + %139 = xor i32 %138, %135 + br label %140 + +140: ; preds = %137, %133 + %.0102 = phi i32 [ %139, %137 ], [ %135, %133 ] + %141 = getelementptr inbounds i8, ptr %5, i64 88 + tail call void @addHyperLogLog(ptr noundef nonnull %141, i32 noundef %.0102) #19 %.0..0..0..0. = load i64, ptr %3, align 8 - %141 = lshr i64 %.0..0..0..0., 32 - %142 = xor i64 %141, %.0..0..0..0. - %143 = trunc i64 %142 to i32 - %144 = tail call i32 @hash_bytes_uint32(i32 noundef %143) #19 - %145 = getelementptr inbounds i8, ptr %5, i64 48 - tail call void @addHyperLogLog(ptr noundef nonnull %145, i32 noundef %144) #19 - %146 = getelementptr inbounds i8, ptr %5, i64 36 - store i8 1, ptr %146, align 4 - br label %147 + %142 = lshr i64 %.0..0..0..0., 32 + %143 = xor i64 %142, %.0..0..0..0. + %144 = trunc i64 %143 to i32 + %145 = tail call i32 @hash_bytes_uint32(i32 noundef %144) #19 + %146 = getelementptr inbounds i8, ptr %5, i64 48 + tail call void @addHyperLogLog(ptr noundef nonnull %146, i32 noundef %145) #19 + %147 = getelementptr inbounds i8, ptr %5, i64 36 + store i8 1, ptr %147, align 4 + br label %148 -147: ; preds = %139, %66 - %.0..0..0.105 = phi i64 [ %.0..0..0..0., %139 ], [ %.0..0..0..0.105.pre, %66 ] - %148 = ptrtoint ptr %7 to i64 - %.not122 = icmp eq i64 %0, %148 - br i1 %.not122, label %150, label %149 +148: ; preds = %140, %66 + %.0..0..0.105 = phi i64 [ %.0..0..0..0., %140 ], [ %.0..0..0..0.105.pre, %66 ] + %149 = ptrtoint ptr %7 to i64 + %.not122 = icmp eq i64 %0, %149 + br i1 %.not122, label %151, label %150 -149: ; preds = %147 +150: ; preds = %148 tail call void @pfree(ptr noundef nonnull %7) #19 - br label %150 + br label %151 -150: ; preds = %149, %147 - %151 = tail call i64 @llvm.bswap.i64(i64 %.0..0..0.105) - ret i64 %151 +151: ; preds = %150, %148 + %152 = tail call i64 @llvm.bswap.i64(i64 %.0..0..0.105) + ret i64 %152 } ; Function Attrs: nounwind uwtable diff --git a/bench/qemu/optimized/util_readline.c.ll b/bench/qemu/optimized/util_readline.c.ll index 47a223f5d48..91ecc202965 100644 --- a/bench/qemu/optimized/util_readline.c.ll +++ b/bench/qemu/optimized/util_readline.c.ll @@ -746,8 +746,8 @@ if.then6: ; preds = %if.end %conv8 = trunc i64 %call7 to i32 %completion_index = getelementptr inbounds i8, ptr %rs, i64 10796 %5 = load i32, ptr %completion_index, align 4 - %cmp9117 = icmp slt i32 %5, %conv8 - br i1 %cmp9117, label %for.body.lr.ph, label %for.end + %cmp9116 = icmp slt i32 %5, %conv8 + br i1 %cmp9116, label %for.body.lr.ph, label %for.end for.body.lr.ph: ; preds = %if.then6 %cmd_buf_size.i = getelementptr inbounds i8, ptr %rs, i64 4100 @@ -758,18 +758,18 @@ for.body.lr.ph: ; preds = %if.then6 for.body.preheader: ; preds = %for.body.lr.ph %8 = sext i32 %5 to i64 %sext = shl i64 %call7, 32 - %wide.trip.count138 = ashr exact i64 %sext, 32 + %wide.trip.count137 = ashr exact i64 %sext, 32 br label %for.body for.body: ; preds = %for.body.preheader, %readline_insert_char.exit %9 = phi i32 [ %6, %for.body.preheader ], [ %16, %readline_insert_char.exit ] - %indvars.iv135 = phi i64 [ %8, %for.body.preheader ], [ %indvars.iv.next136, %readline_insert_char.exit ] + %indvars.iv134 = phi i64 [ %8, %for.body.preheader ], [ %indvars.iv.next135, %readline_insert_char.exit ] %cmp.i = icmp slt i32 %9, 4095 br i1 %cmp.i, label %if.then.i, label %readline_insert_char.exit if.then.i: ; preds = %for.body %10 = load ptr, ptr %completions, align 8 - %arrayidx13 = getelementptr i8, ptr %10, i64 %indvars.iv135 + %arrayidx13 = getelementptr i8, ptr %10, i64 %indvars.iv134 %11 = load i8, ptr %arrayidx13, align 1 %idx.ext.i = sext i32 %9 to i64 %add.ptr.i = getelementptr i8, ptr %rs, i64 %idx.ext.i @@ -792,9 +792,9 @@ if.then.i: ; preds = %for.body readline_insert_char.exit: ; preds = %for.body, %if.then.i %16 = phi i32 [ %9, %for.body ], [ %inc14.i, %if.then.i ] - %indvars.iv.next136 = add nsw i64 %indvars.iv135, 1 - %exitcond139.not = icmp eq i64 %indvars.iv.next136, %wide.trip.count138 - br i1 %exitcond139.not, label %for.end, label %for.body, !llvm.loop !12 + %indvars.iv.next135 = add nsw i64 %indvars.iv134, 1 + %exitcond138.not = icmp eq i64 %indvars.iv.next135, %wide.trip.count137 + br i1 %exitcond138.not, label %for.end, label %for.body, !llvm.loop !12 for.end: ; preds = %readline_insert_char.exit, %for.body.lr.ph, %if.then6 %cmp15 = icmp sgt i32 %conv8, 0 @@ -843,28 +843,28 @@ if.else: ; preds = %if.end %25 = load ptr, ptr %opaque, align 8 tail call void (ptr, ptr, ...) %24(ptr noundef %25, ptr noundef nonnull @.str.1) #13 %26 = load i32, ptr %nb_completions, align 8 - %cmp33106 = icmp sgt i32 %26, 0 - br i1 %cmp33106, label %for.body35.preheader, label %if.end95 + %cmp33105 = icmp sgt i32 %26, 0 + br i1 %cmp33105, label %for.body35.preheader, label %for.end128 for.body35.preheader: ; preds = %if.else %wide.trip.count = zext nneg i32 %26 to i64 br label %for.body35 for.body35: ; preds = %for.body35.preheader, %if.end71 - %indvars.iv124 = phi i64 [ 0, %for.body35.preheader ], [ %indvars.iv.next125, %if.end71 ] - %max_prefix.0109 = phi i32 [ 0, %for.body35.preheader ], [ %max_prefix.1, %if.end71 ] - %max_width.0107 = phi i32 [ 0, %for.body35.preheader ], [ %spec.select73, %if.end71 ] - %arrayidx38 = getelementptr [256 x ptr], ptr %completions, i64 0, i64 %indvars.iv124 + %indvars.iv123 = phi i64 [ 0, %for.body35.preheader ], [ %indvars.iv.next124, %if.end71 ] + %max_prefix.0108 = phi i32 [ 0, %for.body35.preheader ], [ %max_prefix.1, %if.end71 ] + %max_width.0106 = phi i32 [ 0, %for.body35.preheader ], [ %spec.select73, %if.end71 ] + %arrayidx38 = getelementptr [256 x ptr], ptr %completions, i64 0, i64 %indvars.iv123 %27 = load ptr, ptr %arrayidx38, align 8 %call39 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %27) #14 %conv40 = trunc i64 %call39 to i32 - %cmp41 = icmp eq i64 %indvars.iv124, 0 + %cmp41 = icmp eq i64 %indvars.iv123, 0 br i1 %cmp41, label %if.end71, label %if.else44 if.else44: ; preds = %for.body35 - %spec.select = tail call i32 @llvm.smin.i32(i32 %max_prefix.0109, i32 %conv40) - %cmp50103 = icmp sgt i32 %spec.select, 0 - br i1 %cmp50103, label %for.body52.lr.ph, label %if.end71 + %spec.select = tail call i32 @llvm.smin.i32(i32 %max_prefix.0108, i32 %conv40) + %cmp50102 = icmp sgt i32 %spec.select, 0 + br i1 %cmp50102, label %for.body52.lr.ph, label %if.end71 for.body52.lr.ph: ; preds = %if.else44 %28 = load ptr, ptr %completions, align 8 @@ -872,14 +872,14 @@ for.body52.lr.ph: ; preds = %if.else44 for.body52: ; preds = %for.body52.lr.ph, %for.body52 %indvars.iv = phi i64 [ 0, %for.body52.lr.ph ], [ %indvars.iv.next, %for.body52 ] - %max_prefix.3105 = phi i32 [ %spec.select, %for.body52.lr.ph ], [ %spec.select72, %for.body52 ] + %max_prefix.3104 = phi i32 [ %spec.select, %for.body52.lr.ph ], [ %spec.select72, %for.body52 ] %arrayidx57 = getelementptr i8, ptr %27, i64 %indvars.iv %29 = load i8, ptr %arrayidx57, align 1 %arrayidx62 = getelementptr i8, ptr %28, i64 %indvars.iv %30 = load i8, ptr %arrayidx62, align 1 %cmp64.not = icmp eq i8 %29, %30 %31 = trunc nuw nsw i64 %indvars.iv to i32 - %spec.select72 = select i1 %cmp64.not, i32 %max_prefix.3105, i32 %31 + %spec.select72 = select i1 %cmp64.not, i32 %max_prefix.3104, i32 %31 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %32 = sext i32 %spec.select72 to i64 %cmp50 = icmp slt i64 %indvars.iv.next, %32 @@ -887,9 +887,9 @@ for.body52: ; preds = %for.body52.lr.ph, % if.end71: ; preds = %for.body52, %if.else44, %for.body35 %max_prefix.1 = phi i32 [ %conv40, %for.body35 ], [ %spec.select, %if.else44 ], [ %spec.select72, %for.body52 ] - %spec.select73 = tail call i32 @llvm.smax.i32(i32 %max_width.0107, i32 %conv40) - %indvars.iv.next125 = add nuw nsw i64 %indvars.iv124, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next125, %wide.trip.count + %spec.select73 = tail call i32 @llvm.smax.i32(i32 %max_width.0106, i32 %conv40) + %indvars.iv.next124 = add nuw nsw i64 %indvars.iv123, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next124, %wide.trip.count br i1 %exitcond.not, label %for.end78, label %for.body35, !llvm.loop !15 for.end78: ; preds = %if.end71 @@ -900,8 +900,8 @@ for.end78: ; preds = %if.end71 if.then81: ; preds = %for.end78 %completion_index82 = getelementptr inbounds i8, ptr %rs, i64 10796 %34 = load i32, ptr %completion_index82, align 4 - %cmp84112 = icmp slt i32 %34, %max_prefix.1 - br i1 %cmp84112, label %for.body86.lr.ph, label %if.end95 + %cmp84111 = icmp slt i32 %34, %max_prefix.1 + br i1 %cmp84111, label %for.body86.lr.ph, label %if.end95 for.body86.lr.ph: ; preds = %if.then81 %cmd_buf_size.i94 = getelementptr inbounds i8, ptr %rs, i64 4100 @@ -911,18 +911,18 @@ for.body86.lr.ph: ; preds = %if.then81 for.body86.preheader: ; preds = %for.body86.lr.ph %37 = sext i32 %34 to i64 - %wide.trip.count130 = zext nneg i32 %max_prefix.1 to i64 + %wide.trip.count129 = zext nneg i32 %max_prefix.1 to i64 br label %for.body86 for.body86: ; preds = %for.body86.preheader, %readline_insert_char.exit101 %38 = phi i32 [ %35, %for.body86.preheader ], [ %45, %readline_insert_char.exit101 ] - %indvars.iv127 = phi i64 [ %37, %for.body86.preheader ], [ %indvars.iv.next128, %readline_insert_char.exit101 ] + %indvars.iv126 = phi i64 [ %37, %for.body86.preheader ], [ %indvars.iv.next127, %readline_insert_char.exit101 ] %cmp.i89 = icmp slt i32 %38, 4095 br i1 %cmp.i89, label %if.then.i90, label %readline_insert_char.exit101 if.then.i90: ; preds = %for.body86 %39 = load ptr, ptr %completions, align 8 - %arrayidx90 = getelementptr i8, ptr %39, i64 %indvars.iv127 + %arrayidx90 = getelementptr i8, ptr %39, i64 %indvars.iv126 %40 = load i8, ptr %arrayidx90, align 1 %idx.ext.i91 = sext i32 %38 to i64 %add.ptr.i92 = getelementptr i8, ptr %rs, i64 %idx.ext.i91 @@ -945,34 +945,33 @@ if.then.i90: ; preds = %for.body86 readline_insert_char.exit101: ; preds = %for.body86, %if.then.i90 %45 = phi i32 [ %38, %for.body86 ], [ %inc14.i100, %if.then.i90 ] - %indvars.iv.next128 = add nsw i64 %indvars.iv127, 1 - %exitcond131.not = icmp eq i64 %indvars.iv.next128, %wide.trip.count130 - br i1 %exitcond131.not, label %if.end95.loopexit, label %for.body86, !llvm.loop !16 + %indvars.iv.next127 = add nsw i64 %indvars.iv126, 1 + %exitcond130.not = icmp eq i64 %indvars.iv.next127, %wide.trip.count129 + br i1 %exitcond130.not, label %if.end95.loopexit, label %for.body86, !llvm.loop !16 if.end95.loopexit: ; preds = %readline_insert_char.exit101 %.pre = load i32, ptr %nb_completions, align 8 %46 = icmp sgt i32 %.pre, 0 br label %if.end95 -if.end95: ; preds = %if.else, %for.body86.lr.ph, %if.end95.loopexit, %if.then81, %for.end78 - %max_width.0.lcssa147 = phi i32 [ %33, %if.end95.loopexit ], [ %33, %if.then81 ], [ %33, %for.end78 ], [ %33, %for.body86.lr.ph ], [ 2, %if.else ] - %cmp107114 = phi i1 [ %46, %if.end95.loopexit ], [ true, %if.then81 ], [ true, %for.end78 ], [ true, %for.body86.lr.ph ], [ false, %if.else ] - %spec.store.select = tail call i32 @llvm.smin.i32(i32 %max_width.0.lcssa147, i32 80) +if.end95: ; preds = %for.body86.lr.ph, %if.end95.loopexit, %if.then81, %for.end78 + %cmp107113 = phi i1 [ %46, %if.end95.loopexit ], [ true, %if.then81 ], [ true, %for.end78 ], [ true, %for.body86.lr.ph ] + %spec.store.select = tail call i32 @llvm.smin.i32(i32 %33, i32 80) %max_width.2 = tail call i32 @llvm.smax.i32(i32 %spec.store.select, i32 10) - %div.rhs.trunc = trunc nuw nsw i32 %max_width.2 to i8 - %div102 = udiv i8 80, %div.rhs.trunc - %div.zext = zext nneg i8 %div102 to i32 - br i1 %cmp107114, label %for.body109, label %for.end128 + %div.rhs.trunc = trunc nsw i32 %max_width.2 to i8 + %div152 = udiv i8 80, %div.rhs.trunc + %div.zext = zext nneg i8 %div152 to i32 + br i1 %cmp107113, label %for.body109, label %for.end128 for.body109: ; preds = %if.end95, %for.inc126 - %indvars.iv132 = phi i64 [ %indvars.iv.next133, %for.inc126 ], [ 0, %if.end95 ] - %j.1115 = phi i32 [ %j.2, %for.inc126 ], [ 0, %if.end95 ] + %indvars.iv131 = phi i64 [ %indvars.iv.next132, %for.inc126 ], [ 0, %if.end95 ] + %j.1114 = phi i32 [ %j.2, %for.inc126 ], [ 0, %if.end95 ] %47 = load ptr, ptr %printf_func, align 8 %48 = load ptr, ptr %opaque, align 8 - %arrayidx114 = getelementptr [256 x ptr], ptr %completions, i64 0, i64 %indvars.iv132 + %arrayidx114 = getelementptr [256 x ptr], ptr %completions, i64 0, i64 %indvars.iv131 %49 = load ptr, ptr %arrayidx114, align 8 tail call void (ptr, ptr, ...) %47(ptr noundef %48, ptr noundef nonnull @.str.2, i32 noundef %max_width.2, ptr noundef %49) #13 - %inc115 = add i32 %j.1115, 1 + %inc115 = add i32 %j.1114, 1 %cmp116 = icmp eq i32 %inc115, %div.zext br i1 %cmp116, label %if.then122, label %lor.lhs.false @@ -980,25 +979,25 @@ lor.lhs.false: ; preds = %for.body109 %50 = load i32, ptr %nb_completions, align 8 %sub119 = add i32 %50, -1 %51 = zext i32 %sub119 to i64 - %cmp120 = icmp eq i64 %indvars.iv132, %51 + %cmp120 = icmp eq i64 %indvars.iv131, %51 br i1 %cmp120, label %if.then122, label %for.inc126 if.then122: ; preds = %lor.lhs.false, %for.body109 %52 = load ptr, ptr %printf_func, align 8 %53 = load ptr, ptr %opaque, align 8 tail call void (ptr, ptr, ...) %52(ptr noundef %53, ptr noundef nonnull @.str.1) #13 - %.pre143 = load i32, ptr %nb_completions, align 8 + %.pre142 = load i32, ptr %nb_completions, align 8 br label %for.inc126 for.inc126: ; preds = %lor.lhs.false, %if.then122 - %54 = phi i32 [ %.pre143, %if.then122 ], [ %50, %lor.lhs.false ] + %54 = phi i32 [ %.pre142, %if.then122 ], [ %50, %lor.lhs.false ] %j.2 = phi i32 [ 0, %if.then122 ], [ %inc115, %lor.lhs.false ] - %indvars.iv.next133 = add nuw nsw i64 %indvars.iv132, 1 + %indvars.iv.next132 = add nuw nsw i64 %indvars.iv131, 1 %55 = sext i32 %54 to i64 - %cmp107 = icmp slt i64 %indvars.iv.next133, %55 + %cmp107 = icmp slt i64 %indvars.iv.next132, %55 br i1 %cmp107, label %for.body109, label %for.end128, !llvm.loop !17 -for.end128: ; preds = %for.inc126, %if.end95 +for.end128: ; preds = %for.inc126, %if.else, %if.end95 %56 = load ptr, ptr %printf_func, align 8 %57 = load ptr, ptr %opaque, align 8 %prompt.i = getelementptr inbounds i8, ptr %rs, i64 10820 @@ -1017,22 +1016,22 @@ for.end128: ; preds = %for.inc126, %if.end if.end129: ; preds = %if.then.i76, %if.then24, %for.end, %land.lhs.true, %for.end128 %60 = load i32, ptr %nb_completions, align 8 - %cmp132119 = icmp sgt i32 %60, 0 - br i1 %cmp132119, label %for.body134.lr.ph, label %for.end140 + %cmp132118 = icmp sgt i32 %60, 0 + br i1 %cmp132118, label %for.body134.lr.ph, label %for.end140 for.body134.lr.ph: ; preds = %if.end129 %completions135 = getelementptr inbounds i8, ptr %rs, i64 8744 br label %for.body134 for.body134: ; preds = %for.body134.lr.ph, %for.body134 - %indvars.iv140 = phi i64 [ 0, %for.body134.lr.ph ], [ %indvars.iv.next141, %for.body134 ] - %arrayidx137 = getelementptr [256 x ptr], ptr %completions135, i64 0, i64 %indvars.iv140 + %indvars.iv139 = phi i64 [ 0, %for.body134.lr.ph ], [ %indvars.iv.next140, %for.body134 ] + %arrayidx137 = getelementptr [256 x ptr], ptr %completions135, i64 0, i64 %indvars.iv139 %61 = load ptr, ptr %arrayidx137, align 8 tail call void @g_free(ptr noundef %61) #13 - %indvars.iv.next141 = add nuw nsw i64 %indvars.iv140, 1 + %indvars.iv.next140 = add nuw nsw i64 %indvars.iv139, 1 %62 = load i32, ptr %nb_completions, align 8 %63 = sext i32 %62 to i64 - %cmp132 = icmp slt i64 %indvars.iv.next141, %63 + %cmp132 = icmp slt i64 %indvars.iv.next140, %63 br i1 %cmp132, label %for.body134, label %for.end140, !llvm.loop !18 for.end140: ; preds = %for.body134, %if.end129, %entry diff --git a/bench/spdlog/optimized/spdlog.cpp.ll b/bench/spdlog/optimized/spdlog.cpp.ll index ab96d6a59f0..b073fc4b616 100644 --- a/bench/spdlog/optimized/spdlog.cpp.ll +++ b/bench/spdlog/optimized/spdlog.cpp.ll @@ -65550,9 +65550,9 @@ entry: %retval.sroa.0.0.copyload.i1.i = load i64, ptr %last_message_time_, align 8 %sub.i.i = sub nsw i64 %retval.sroa.0.0.copyload.i.i, %retval.sroa.0.0.copyload.i1.i %.sroa.speculated = tail call i64 @llvm.smax.i64(i64 %sub.i.i, i64 0) - %div.i.i14 = udiv i64 %.sroa.speculated, 1000 + %div.i.i = udiv i64 %.sroa.speculated, 1000 store i64 %retval.sroa.0.0.copyload.i.i, ptr %last_message_time_, align 8 - %or.i.i.i.i = or i64 %div.i.i14, 1 + %or.i.i.i.i = or i64 %div.i.i, 1 %1 = tail call range(i64 0, 64) i64 @llvm.ctlz.i64(i64 %or.i.i.i.i, i1 true) %xor.i.i.i.i = xor i64 %1, 63 %arrayidx.i.i.i.i = getelementptr inbounds [64 x i8], ptr @_ZZN3fmt2v96detail15do_count_digitsEmE9bsr2log10, i64 0, i64 %xor.i.i.i.i @@ -65560,7 +65560,7 @@ entry: %conv.i.i.i.i = zext i8 %2 to i64 %arrayidx2.i.i.i.i = getelementptr inbounds [21 x i64], ptr @_ZZN3fmt2v96detail15do_count_digitsEmE20zero_or_powers_of_10, i64 0, i64 %conv.i.i.i.i %3 = load i64, ptr %arrayidx2.i.i.i.i, align 8 - %cmp.i.i.i.i = icmp ult i64 %div.i.i14, %3 + %cmp.i.i.i.i = icmp ult i64 %div.i.i, %3 %conv3.neg.i.i.i.i = sext i1 %cmp.i.i.i.i to i64 %sub.i.i.i.i = add nsw i64 %conv3.neg.i.i.i.i, %conv.i.i.i.i %conv = and i64 %sub.i.i.i.i, 4294967295 @@ -65572,7 +65572,7 @@ entry: br i1 %cmp119.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i while.body.i.i.i.i: ; preds = %entry, %while.body.i.i.i.i - %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i14, %entry ] + %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i, %entry ] %out.addr.020.i.i.i.i = phi ptr [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ], [ %add.ptr.i.i.i.i, %entry ] %add.ptr2.i.i.i.i = getelementptr inbounds i8, ptr %out.addr.020.i.i.i.i, i64 -2 %rem.i.i.i.i = urem i64 %value.addr.021.i.i.i.i, 100 @@ -65586,7 +65586,7 @@ while.body.i.i.i.i: ; preds = %entry, %while.body. while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, %entry %out.addr.0.lcssa.i.i.i.i = phi ptr [ %add.ptr.i.i.i.i, %entry ], [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ] - %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i14, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] + %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] %cmp4.i.i.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i.i.i, 10 br i1 %cmp4.i.i.i.i, label %if.then.i.i.i.i, label %if.end.i.i.i.i @@ -65820,9 +65820,9 @@ entry: %retval.sroa.0.0.copyload.i1.i = load i64, ptr %last_message_time_, align 8 %sub.i.i = sub nsw i64 %retval.sroa.0.0.copyload.i.i, %retval.sroa.0.0.copyload.i1.i %.sroa.speculated = tail call i64 @llvm.smax.i64(i64 %sub.i.i, i64 0) - %div.i.i14 = udiv i64 %.sroa.speculated, 1000000 + %div.i.i = udiv i64 %.sroa.speculated, 1000000 store i64 %retval.sroa.0.0.copyload.i.i, ptr %last_message_time_, align 8 - %or.i.i.i.i = or i64 %div.i.i14, 1 + %or.i.i.i.i = or i64 %div.i.i, 1 %1 = tail call range(i64 0, 64) i64 @llvm.ctlz.i64(i64 %or.i.i.i.i, i1 true) %xor.i.i.i.i = xor i64 %1, 63 %arrayidx.i.i.i.i = getelementptr inbounds [64 x i8], ptr @_ZZN3fmt2v96detail15do_count_digitsEmE9bsr2log10, i64 0, i64 %xor.i.i.i.i @@ -65830,7 +65830,7 @@ entry: %conv.i.i.i.i = zext i8 %2 to i64 %arrayidx2.i.i.i.i = getelementptr inbounds [21 x i64], ptr @_ZZN3fmt2v96detail15do_count_digitsEmE20zero_or_powers_of_10, i64 0, i64 %conv.i.i.i.i %3 = load i64, ptr %arrayidx2.i.i.i.i, align 8 - %cmp.i.i.i.i = icmp ult i64 %div.i.i14, %3 + %cmp.i.i.i.i = icmp ult i64 %div.i.i, %3 %conv3.neg.i.i.i.i = sext i1 %cmp.i.i.i.i to i64 %sub.i.i.i.i = add nsw i64 %conv3.neg.i.i.i.i, %conv.i.i.i.i %conv = and i64 %sub.i.i.i.i, 4294967295 @@ -65842,7 +65842,7 @@ entry: br i1 %cmp119.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i while.body.i.i.i.i: ; preds = %entry, %while.body.i.i.i.i - %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i14, %entry ] + %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i, %entry ] %out.addr.020.i.i.i.i = phi ptr [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ], [ %add.ptr.i.i.i.i, %entry ] %add.ptr2.i.i.i.i = getelementptr inbounds i8, ptr %out.addr.020.i.i.i.i, i64 -2 %rem.i.i.i.i = urem i64 %value.addr.021.i.i.i.i, 100 @@ -65856,7 +65856,7 @@ while.body.i.i.i.i: ; preds = %entry, %while.body. while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, %entry %out.addr.0.lcssa.i.i.i.i = phi ptr [ %add.ptr.i.i.i.i, %entry ], [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ] - %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i14, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] + %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] %cmp4.i.i.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i.i.i, 10 br i1 %cmp4.i.i.i.i, label %if.then.i.i.i.i, label %if.end.i.i.i.i @@ -66090,9 +66090,9 @@ entry: %retval.sroa.0.0.copyload.i1.i = load i64, ptr %last_message_time_, align 8 %sub.i.i = sub nsw i64 %retval.sroa.0.0.copyload.i.i, %retval.sroa.0.0.copyload.i1.i %.sroa.speculated = tail call i64 @llvm.smax.i64(i64 %sub.i.i, i64 0) - %div.i.i14 = udiv i64 %.sroa.speculated, 1000000000 + %div.i.i = udiv i64 %.sroa.speculated, 1000000000 store i64 %retval.sroa.0.0.copyload.i.i, ptr %last_message_time_, align 8 - %or.i.i.i.i = or i64 %div.i.i14, 1 + %or.i.i.i.i = or i64 %div.i.i, 1 %1 = tail call range(i64 0, 64) i64 @llvm.ctlz.i64(i64 %or.i.i.i.i, i1 true) %xor.i.i.i.i = xor i64 %1, 63 %arrayidx.i.i.i.i = getelementptr inbounds [64 x i8], ptr @_ZZN3fmt2v96detail15do_count_digitsEmE9bsr2log10, i64 0, i64 %xor.i.i.i.i @@ -66100,7 +66100,7 @@ entry: %conv.i.i.i.i = zext i8 %2 to i64 %arrayidx2.i.i.i.i = getelementptr inbounds [21 x i64], ptr @_ZZN3fmt2v96detail15do_count_digitsEmE20zero_or_powers_of_10, i64 0, i64 %conv.i.i.i.i %3 = load i64, ptr %arrayidx2.i.i.i.i, align 8 - %cmp.i.i.i.i = icmp ult i64 %div.i.i14, %3 + %cmp.i.i.i.i = icmp ult i64 %div.i.i, %3 %conv3.neg.i.i.i.i = sext i1 %cmp.i.i.i.i to i64 %sub.i.i.i.i = add nsw i64 %conv3.neg.i.i.i.i, %conv.i.i.i.i %conv = and i64 %sub.i.i.i.i, 4294967295 @@ -66112,7 +66112,7 @@ entry: br i1 %cmp119.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i while.body.i.i.i.i: ; preds = %entry, %while.body.i.i.i.i - %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i14, %entry ] + %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i, %entry ] %out.addr.020.i.i.i.i = phi ptr [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ], [ %add.ptr.i.i.i.i, %entry ] %add.ptr2.i.i.i.i = getelementptr inbounds i8, ptr %out.addr.020.i.i.i.i, i64 -2 %rem.i.i.i.i = urem i64 %value.addr.021.i.i.i.i, 100 @@ -66126,7 +66126,7 @@ while.body.i.i.i.i: ; preds = %entry, %while.body. while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, %entry %out.addr.0.lcssa.i.i.i.i = phi ptr [ %add.ptr.i.i.i.i, %entry ], [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ] - %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i14, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] + %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] %cmp4.i.i.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i.i.i, 10 br i1 %cmp4.i.i.i.i, label %if.then.i.i.i.i, label %if.end.i.i.i.i @@ -69617,7 +69617,7 @@ entry: %retval.sroa.0.0.copyload.i1.i = load i64, ptr %last_message_time_, align 8 %sub.i.i = sub nsw i64 %retval.sroa.0.0.copyload.i.i, %retval.sroa.0.0.copyload.i1.i %.sroa.speculated = tail call i64 @llvm.smax.i64(i64 %sub.i.i, i64 0) - %div.i.i7 = udiv i64 %.sroa.speculated, 1000 + %div.i.i = udiv i64 %.sroa.speculated, 1000 store i64 %retval.sroa.0.0.copyload.i.i, ptr %last_message_time_, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %i.i) %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %i.i, i64 21 @@ -69625,7 +69625,7 @@ entry: br i1 %cmp119.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i while.body.i.i.i.i: ; preds = %entry, %while.body.i.i.i.i - %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i7, %entry ] + %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i, %entry ] %out.addr.020.i.i.i.i = phi ptr [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ], [ %add.ptr.i.i.i.i, %entry ] %add.ptr2.i.i.i.i = getelementptr inbounds i8, ptr %out.addr.020.i.i.i.i, i64 -2 %rem.i.i.i.i = urem i64 %value.addr.021.i.i.i.i, 100 @@ -69639,7 +69639,7 @@ while.body.i.i.i.i: ; preds = %entry, %while.body. while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, %entry %out.addr.0.lcssa.i.i.i.i = phi ptr [ %add.ptr.i.i.i.i, %entry ], [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ] - %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i7, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] + %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] %cmp4.i.i.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i.i.i, 10 br i1 %cmp4.i.i.i.i, label %if.then.i.i.i.i, label %if.end.i.i.i.i @@ -69746,7 +69746,7 @@ entry: %retval.sroa.0.0.copyload.i1.i = load i64, ptr %last_message_time_, align 8 %sub.i.i = sub nsw i64 %retval.sroa.0.0.copyload.i.i, %retval.sroa.0.0.copyload.i1.i %.sroa.speculated = tail call i64 @llvm.smax.i64(i64 %sub.i.i, i64 0) - %div.i.i7 = udiv i64 %.sroa.speculated, 1000000 + %div.i.i = udiv i64 %.sroa.speculated, 1000000 store i64 %retval.sroa.0.0.copyload.i.i, ptr %last_message_time_, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %i.i) %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %i.i, i64 21 @@ -69754,7 +69754,7 @@ entry: br i1 %cmp119.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i while.body.i.i.i.i: ; preds = %entry, %while.body.i.i.i.i - %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i7, %entry ] + %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i, %entry ] %out.addr.020.i.i.i.i = phi ptr [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ], [ %add.ptr.i.i.i.i, %entry ] %add.ptr2.i.i.i.i = getelementptr inbounds i8, ptr %out.addr.020.i.i.i.i, i64 -2 %rem.i.i.i.i = urem i64 %value.addr.021.i.i.i.i, 100 @@ -69768,7 +69768,7 @@ while.body.i.i.i.i: ; preds = %entry, %while.body. while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, %entry %out.addr.0.lcssa.i.i.i.i = phi ptr [ %add.ptr.i.i.i.i, %entry ], [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ] - %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i7, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] + %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] %cmp4.i.i.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i.i.i, 10 br i1 %cmp4.i.i.i.i, label %if.then.i.i.i.i, label %if.end.i.i.i.i @@ -69875,7 +69875,7 @@ entry: %retval.sroa.0.0.copyload.i1.i = load i64, ptr %last_message_time_, align 8 %sub.i.i = sub nsw i64 %retval.sroa.0.0.copyload.i.i, %retval.sroa.0.0.copyload.i1.i %.sroa.speculated = tail call i64 @llvm.smax.i64(i64 %sub.i.i, i64 0) - %div.i.i7 = udiv i64 %.sroa.speculated, 1000000000 + %div.i.i = udiv i64 %.sroa.speculated, 1000000000 store i64 %retval.sroa.0.0.copyload.i.i, ptr %last_message_time_, align 8 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %i.i) %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %i.i, i64 21 @@ -69883,7 +69883,7 @@ entry: br i1 %cmp119.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i while.body.i.i.i.i: ; preds = %entry, %while.body.i.i.i.i - %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i7, %entry ] + %value.addr.021.i.i.i.i = phi i64 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ %div.i.i, %entry ] %out.addr.020.i.i.i.i = phi ptr [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ], [ %add.ptr.i.i.i.i, %entry ] %add.ptr2.i.i.i.i = getelementptr inbounds i8, ptr %out.addr.020.i.i.i.i, i64 -2 %rem.i.i.i.i = urem i64 %value.addr.021.i.i.i.i, 100 @@ -69897,7 +69897,7 @@ while.body.i.i.i.i: ; preds = %entry, %while.body. while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, %entry %out.addr.0.lcssa.i.i.i.i = phi ptr [ %add.ptr.i.i.i.i, %entry ], [ %add.ptr2.i.i.i.i, %while.body.i.i.i.i ] - %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i7, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] + %value.addr.0.lcssa.i.i.i.i = phi i64 [ %div.i.i, %entry ], [ %div.i.i.i.i, %while.body.i.i.i.i ] %cmp4.i.i.i.i = icmp samesign ult i64 %value.addr.0.lcssa.i.i.i.i, 10 br i1 %cmp4.i.i.i.i, label %if.then.i.i.i.i, label %if.end.i.i.i.i diff --git a/bench/stockfish/optimized/tbprobe.ll b/bench/stockfish/optimized/tbprobe.ll index aa4250c023b..74904d8ca38 100644 --- a/bench/stockfish/optimized/tbprobe.ll +++ b/bench/stockfish/optimized/tbprobe.ll @@ -3917,17 +3917,17 @@ define dso_local noundef zeroext i1 @_ZN9Stockfish10Tablebases10root_probeERNS_8 %13 = load ptr, ptr %1, align 8 %14 = getelementptr inbounds i8, ptr %1, i64 8 %15 = load ptr, ptr %14, align 8 - %.not7274 = icmp eq ptr %13, %15 - br i1 %.not7274, label %._crit_edge, label %.lr.ph + %.not7172 = icmp eq ptr %13, %15 + br i1 %.not7172, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %3 %16 = getelementptr inbounds i8, ptr %6, i64 2048 %17 = add i32 %10, -262144 br label %18 -18: ; preds = %.lr.ph, %84 - %.sroa.064.075 = phi ptr [ %13, %.lr.ph ], [ %87, %84 ] - %19 = getelementptr inbounds i8, ptr %.sroa.064.075, i64 32 +18: ; preds = %.lr.ph, %86 + %.sroa.064.073 = phi ptr [ %13, %.lr.ph ], [ %89, %86 ] + %19 = getelementptr inbounds i8, ptr %.sroa.064.073, i64 32 %20 = load ptr, ptr %19, align 8 %.sroa.09.0.copyload = load i16, ptr %20, align 2 %21 = call noundef zeroext i1 @_ZNK9Stockfish8Position11gives_checkENS_4MoveE(ptr noundef nonnull align 8 dereferenceable(865) %0, i16 %.sroa.09.0.copyload) #24 @@ -3989,8 +3989,8 @@ _ZN9Stockfish12_GLOBAL__N_118dtz_before_zeroingENS_10Tablebases8WDLScoreE.exit: %.sroa.0.0.copyload = load i16, ptr %49, align 2 call void @_ZN9Stockfish8Position9undo_moveENS_4MoveE(ptr noundef nonnull align 8 dereferenceable(865) %0, i16 %.sroa.0.0.copyload) #24 %50 = load i32, ptr %4, align 4 - %.not80.not = icmp ne i32 %50, 0 - br i1 %.not80.not, label %51, label %._crit_edge + %.not78.not = icmp ne i32 %50, 0 + br i1 %.not78.not, label %51, label %._crit_edge 51: ; preds = %.critedge %52 = icmp sgt i32 %.1, 0 @@ -4020,16 +4020,16 @@ _ZN9Stockfish12_GLOBAL__N_118dtz_before_zeroingENS_10Tablebases8WDLScoreE.exit: .thread70: ; preds = %57, %59 %.ph = phi i32 [ 0, %57 ], [ -262144, %59 ] - %65 = getelementptr inbounds i8, ptr %.sroa.064.075, i64 24 + %65 = getelementptr inbounds i8, ptr %.sroa.064.073, i64 24 store i32 %.ph, ptr %65, align 8 br label %76 66: ; preds = %53, %63 %67 = phi i32 [ %64, %63 ], [ %spec.select54, %53 ] - %68 = getelementptr inbounds i8, ptr %.sroa.064.075, i64 24 + %68 = getelementptr inbounds i8, ptr %.sroa.064.073, i64 24 store i32 %67, ptr %68, align 8 %.not52 = icmp slt i32 %67, %12 - br i1 %.not52, label %69, label %84 + br i1 %.not52, label %69, label %86 69: ; preds = %66 %70 = icmp sgt i32 %67, 0 @@ -4039,37 +4039,36 @@ _ZN9Stockfish12_GLOBAL__N_118dtz_before_zeroingENS_10Tablebases8WDLScoreE.exit: %72 = call i32 @llvm.umax.i32(i32 %67, i32 261947) %73 = mul i32 %72, 208 %74 = add i32 %73, -54484352 - %75 = udiv i32 %74, 200 - br label %84 + %75 = sdiv i32 %74, 200 + br label %86 76: ; preds = %.thread70, %69 %77 = phi i32 [ %.ph, %.thread70 ], [ %67, %69 ] %78 = icmp eq i32 %77, 0 - br i1 %78, label %84, label %79 + br i1 %78, label %86, label %79 79: ; preds = %76 %80 = icmp sgt i32 %77, %.neg - br i1 %80, label %81, label %84 + br i1 %80, label %81, label %86 81: ; preds = %79 %82 = call i32 @llvm.umin.i32(i32 %77, i32 -261947) - %.neg73 = mul i32 %82, -208 - %.nonneg = add i32 %.neg73, -54484352 - %83 = udiv i32 %.nonneg, 200 - %.neg71 = sub nsw i32 0, %83 - br label %84 - -84: ; preds = %71, %81, %79, %76, %66 - %85 = phi i32 [ 31753, %66 ], [ %75, %71 ], [ 0, %76 ], [ %.neg71, %81 ], [ -31753, %79 ] - %86 = getelementptr inbounds i8, ptr %.sroa.064.075, i64 28 - store i32 %85, ptr %86, align 4 - %87 = getelementptr inbounds i8, ptr %.sroa.064.075, i64 56 - %.not72 = icmp eq ptr %87, %15 - br i1 %.not72, label %._crit_edge, label %18 - -._crit_edge: ; preds = %.critedge, %84, %3 - %.not72.lcssa = phi i1 [ true, %3 ], [ %.not80.not, %84 ], [ %.not80.not, %.critedge ] - ret i1 %.not72.lcssa + %83 = mul i32 %82, 208 + %84 = add i32 %83, 54484352 + %85 = sdiv i32 %84, 200 + br label %86 + +86: ; preds = %71, %81, %79, %76, %66 + %87 = phi i32 [ 31753, %66 ], [ %75, %71 ], [ 0, %76 ], [ %85, %81 ], [ -31753, %79 ] + %88 = getelementptr inbounds i8, ptr %.sroa.064.073, i64 28 + store i32 %87, ptr %88, align 4 + %89 = getelementptr inbounds i8, ptr %.sroa.064.073, i64 56 + %.not71 = icmp eq ptr %89, %15 + br i1 %.not71, label %._crit_edge, label %18 + +._crit_edge: ; preds = %.critedge, %86, %3 + %.not71.lcssa = phi i1 [ true, %3 ], [ %.not78.not, %86 ], [ %.not78.not, %.critedge ] + ret i1 %.not71.lcssa } declare noundef zeroext i1 @_ZNK9Stockfish8Position12has_repeatedEv(ptr noundef nonnull align 8 dereferenceable(865)) local_unnamed_addr #0 diff --git a/bench/z3/optimized/mpz.cpp.ll b/bench/z3/optimized/mpz.cpp.ll index bfafb4e02aa..556828746ec 100644 --- a/bench/z3/optimized/mpz.cpp.ll +++ b/bench/z3/optimized/mpz.cpp.ll @@ -6326,11 +6326,7 @@ if.end3.i: ; preds = %if.end.i %cmp4.i = icmp eq i32 %shr.i, 1 %cmp5.i = icmp eq i32 %_b.0, 1 %or.cond.i = or i1 %cmp4.i, %cmp5.i - br i1 %or.cond.i, label %if.then6.i, label %if.end7.i - -if.then6.i: ; preds = %if.end3.i - %shl.i = shl nuw nsw i32 1, %2 - br label %if.then.i + br i1 %or.cond.i, label %_Z5u_gcdjj.exit, label %if.end7.i if.end7.i: ; preds = %if.end3.i %cmp8.i = icmp eq i32 %shr.i, %_b.0 @@ -6349,14 +6345,14 @@ do.body.i: ; preds = %if.end7.i, %do.body %cmp15.not.i = icmp eq i32 %sub14.i, 0 br i1 %cmp15.not.i, label %_Z5u_gcdjj.exit, label %do.body.i, !llvm.loop !6 -_Z5u_gcdjj.exit: ; preds = %do.body.i, %if.end7.i - %_b.0.pn = phi i32 [ %_b.0, %if.end7.i ], [ %add.i, %do.body.i ] - %retval.0.i = shl i32 %_b.0.pn, %2 +_Z5u_gcdjj.exit: ; preds = %do.body.i, %if.end7.i, %if.end3.i + %.pn = phi i32 [ 1, %if.end3.i ], [ %_b.0, %if.end7.i ], [ %add.i, %do.body.i ] + %retval.0.i = shl i32 %.pn, %2 %cmp.i54 = icmp sgt i32 %retval.0.i, -1 br i1 %cmp.i54, label %if.then.i, label %if.else.i -if.then.i: ; preds = %if.end.i, %if.then, %if.then6.i, %_Z5u_gcdjj.exit - %retval.0.i690 = phi i32 [ %retval.0.i, %_Z5u_gcdjj.exit ], [ %spec.select, %if.end.i ], [ %_b.0, %if.then ], [ %shl.i, %if.then6.i ] +if.then.i: ; preds = %if.end.i, %if.then, %_Z5u_gcdjj.exit + %retval.0.i690 = phi i32 [ %retval.0.i, %_Z5u_gcdjj.exit ], [ %spec.select, %if.end.i ], [ %_b.0, %if.then ] store i32 %retval.0.i690, ptr %c, align 8 %m_kind.i.i = getelementptr inbounds i8, ptr %c, i64 4 %bf.load.i.i = load i8, ptr %m_kind.i.i, align 4 @@ -20838,11 +20834,7 @@ if.end3.i: ; preds = %if.end.i %cmp4.i = icmp eq i32 %shr.i, 1 %cmp5.i = icmp eq i32 %_b.0, 1 %or.cond.i = or i1 %cmp4.i, %cmp5.i - br i1 %or.cond.i, label %if.then6.i, label %if.end7.i - -if.then6.i: ; preds = %if.end3.i - %shl.i = shl nuw nsw i32 1, %2 - br label %if.then.i + br i1 %or.cond.i, label %_Z5u_gcdjj.exit, label %if.end7.i if.end7.i: ; preds = %if.end3.i %cmp8.i = icmp eq i32 %shr.i, %_b.0 @@ -20861,14 +20853,14 @@ do.body.i: ; preds = %if.end7.i, %do.body %cmp15.not.i = icmp eq i32 %sub14.i, 0 br i1 %cmp15.not.i, label %_Z5u_gcdjj.exit, label %do.body.i, !llvm.loop !6 -_Z5u_gcdjj.exit: ; preds = %do.body.i, %if.end7.i - %_b.0.pn = phi i32 [ %_b.0, %if.end7.i ], [ %add.i, %do.body.i ] - %retval.0.i = shl i32 %_b.0.pn, %2 +_Z5u_gcdjj.exit: ; preds = %do.body.i, %if.end7.i, %if.end3.i + %.pn = phi i32 [ 1, %if.end3.i ], [ %_b.0, %if.end7.i ], [ %add.i, %do.body.i ] + %retval.0.i = shl i32 %.pn, %2 %cmp.i54 = icmp sgt i32 %retval.0.i, -1 br i1 %cmp.i54, label %if.then.i, label %if.else.i -if.then.i: ; preds = %if.end.i, %if.then, %if.then6.i, %_Z5u_gcdjj.exit - %retval.0.i714 = phi i32 [ %retval.0.i, %_Z5u_gcdjj.exit ], [ %spec.select, %if.end.i ], [ %_b.0, %if.then ], [ %shl.i, %if.then6.i ] +if.then.i: ; preds = %if.end.i, %if.then, %_Z5u_gcdjj.exit + %retval.0.i714 = phi i32 [ %retval.0.i, %_Z5u_gcdjj.exit ], [ %spec.select, %if.end.i ], [ %_b.0, %if.then ] store i32 %retval.0.i714, ptr %c, align 8 %m_kind.i.i = getelementptr inbounds i8, ptr %c, i64 4 %bf.load.i.i = load i8, ptr %m_kind.i.i, align 4 diff --git a/bench/zstd/optimized/zstd_compress.c.ll b/bench/zstd/optimized/zstd_compress.c.ll index 6e86208960f..6d240c1d05a 100644 --- a/bench/zstd/optimized/zstd_compress.c.ll +++ b/bench/zstd/optimized/zstd_compress.c.ll @@ -12312,21 +12312,21 @@ if.end183.thread: ; preds = %lor.lhs.false.i189 %entropyWorkspace = getelementptr inbounds i8, ptr %zc, i64 3520 store ptr %add.ptr.i169, ptr %entropyWorkspace, align 8 store ptr %add.ptr.i183, ptr %19, align 8 - %allocFailed.i199607 = getelementptr inbounds i8, ptr %zc, i64 736 - store i8 0, ptr %allocFailed.i199607, align 8 - %phase.i200608 = getelementptr inbounds i8, ptr %zc, i64 744 + %allocFailed.i199606 = getelementptr inbounds i8, ptr %zc, i64 736 + store i8 0, ptr %allocFailed.i199606, align 8 + %phase.i200607 = getelementptr inbounds i8, ptr %zc, i64 744 br label %ZSTD_cwksp_clear.exit if.end183: ; preds = %ZSTD_cwksp_check_wasteful.exit %objectEnd.i196.phi.trans.insert = getelementptr inbounds i8, ptr %zc, i64 696 %.pre = load ptr, ptr %objectEnd.i196.phi.trans.insert, align 8 %phase.i200.phi.trans.insert = getelementptr inbounds i8, ptr %zc, i64 744 - %.pre598 = load i32, ptr %phase.i200.phi.trans.insert, align 8 - %.pre600 = and i64 %sub.ptr.lhs.cast.i156, -64 - %.pre601 = inttoptr i64 %.pre600 to ptr - %27 = icmp ugt i32 %.pre598, 1 + %.pre597 = load i32, ptr %phase.i200.phi.trans.insert, align 8 + %.pre599 = and i64 %sub.ptr.lhs.cast.i156, -64 + %.pre600 = inttoptr i64 %.pre599 to ptr + %27 = icmp ugt i32 %.pre597, 1 store ptr %.pre, ptr %19, align 8 - store ptr %.pre601, ptr %20, align 8 + store ptr %.pre600, ptr %20, align 8 %allocFailed.i199 = getelementptr inbounds i8, ptr %zc, i64 736 store i8 0, ptr %allocFailed.i199, align 8 %phase.i200 = getelementptr inbounds i8, ptr %zc, i64 744 @@ -12337,10 +12337,10 @@ if.then.i: ; preds = %if.end183 br label %ZSTD_cwksp_clear.exit ZSTD_cwksp_clear.exit: ; preds = %if.end183.thread, %if.end183, %if.then.i - %phase.i200616 = phi ptr [ %phase.i200608, %if.end183.thread ], [ %phase.i200, %if.end183 ], [ %phase.i200, %if.then.i ] - %allocFailed.i199614 = phi ptr [ %allocFailed.i199607, %if.end183.thread ], [ %allocFailed.i199, %if.end183 ], [ %allocFailed.i199, %if.then.i ] - %needsIndexReset.0609 = phi i32 [ 1, %if.end183.thread ], [ %cond57, %if.end183 ], [ %cond57, %if.then.i ] - %objectEnd.i196610 = getelementptr inbounds i8, ptr %zc, i64 696 + %phase.i200615 = phi ptr [ %phase.i200607, %if.end183.thread ], [ %phase.i200, %if.end183 ], [ %phase.i200, %if.then.i ] + %allocFailed.i199613 = phi ptr [ %allocFailed.i199606, %if.end183.thread ], [ %allocFailed.i199, %if.end183 ], [ %allocFailed.i199, %if.then.i ] + %needsIndexReset.0608 = phi i32 [ 1, %if.end183.thread ], [ %cond57, %if.end183 ], [ %cond57, %if.then.i ] + %objectEnd.i196609 = getelementptr inbounds i8, ptr %zc, i64 696 %cParams186 = getelementptr inbounds i8, ptr %zc, i64 3472 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %cParams186, ptr noundef nonnull align 4 dereferenceable(28) %cParams4, i64 28, i1 false) %prefetchCDictTables = getelementptr inbounds i8, ptr %zc, i64 408 @@ -12384,7 +12384,7 @@ do.end200: ; preds = %if.then196, %ZSTD_c %litlength_repeatMode.i = getelementptr inbounds i8, ptr %29, i64 5612 store i32 0, ptr %litlength_repeatMode.i, align 4 %30 = load i32, ptr %useRowMatchFinder, align 8 - %call211 = tail call fastcc i64 @ZSTD_reset_matchState(ptr noundef nonnull %matchState, ptr noundef nonnull %workspace, ptr noundef nonnull %cParams4, i32 noundef %30, i32 noundef %crp, i32 noundef %needsIndexReset.0609, i32 noundef 1) + %call211 = tail call fastcc i64 @ZSTD_reset_matchState(ptr noundef nonnull %matchState, ptr noundef nonnull %workspace, ptr noundef nonnull %cParams4, i32 noundef %30, i32 noundef %crp, i32 noundef %needsIndexReset.0608, i32 noundef 1) %cmp.i203 = icmp ult i64 %call211, -119 br i1 %cmp.i203, label %do.end224, label %return @@ -12392,7 +12392,7 @@ do.end224: ; preds = %do.end200 %mul = shl i64 %div.i, 3 %add.i.i = add i64 %mul, 63 %and.i.i205 = and i64 %add.i.i, -64 - %31 = load i32, ptr %phase.i200616, align 8 + %31 = load i32, ptr %phase.i200615, align 8 %cmp.i.i.i = icmp ult i32 %31, 2 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %ZSTD_cwksp_internal_advance_phase.exit.i.i @@ -12401,7 +12401,7 @@ if.then.i.i.i: ; preds = %do.end224 br i1 %cmp3.i.i.i, label %if.then5.i.i.i, label %if.end29.i.i.i if.then5.i.i.i: ; preds = %if.then.i.i.i - %32 = load ptr, ptr %objectEnd.i196610, align 8 + %32 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %32, ptr %tableValidEnd.i.i.i, align 8 %ws.val.i.i.i = load ptr, ptr %18, align 8 @@ -12418,7 +12418,7 @@ if.then5.i.i.i: ; preds = %if.then.i.i.i br i1 %cmp10.i.i.i, label %ZSTD_cwksp_reserve_aligned.exit, label %do.end20.i.i.i do.end20.i.i.i: ; preds = %if.then5.i.i.i - store ptr %add.ptr.i.i.i, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i, ptr %19, align 8 %cmp24.not.i.i.i = icmp eq i64 %and2.i.i.i.i, 0 br i1 %cmp24.not.i.i.i, label %if.end29.i.i.i, label %if.then25.i.i.i @@ -12428,7 +12428,7 @@ if.then25.i.i.i: ; preds = %do.end20.i.i.i br label %if.end29.i.i.i if.end29.i.i.i: ; preds = %if.then25.i.i.i, %do.end20.i.i.i, %if.then.i.i.i - store i32 2, ptr %phase.i200616, align 8 + store i32 2, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i ZSTD_cwksp_internal_advance_phase.exit.i.i: ; preds = %if.end29.i.i.i, %do.end224 @@ -12445,7 +12445,7 @@ if.end.i.i206: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i, label %do.end2.i.i.i, label %if.end.i.i.i do.end2.i.i.i: ; preds = %if.end.i.i206 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_aligned.exit if.end.i.i.i: ; preds = %if.end.i.i206 @@ -12482,7 +12482,7 @@ if.then230: ; preds = %ZSTD_cwksp_reserve_ br i1 %cmp.i.i.i214, label %if.then5.i.i.i234, label %ZSTD_cwksp_internal_advance_phase.exit.i.i215 if.then5.i.i.i234: ; preds = %if.then230 - %43 = load ptr, ptr %objectEnd.i196610, align 8 + %43 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i236 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %43, ptr %tableValidEnd.i.i.i236, align 8 %ws.val.i.i.i237 = load ptr, ptr %18, align 8 @@ -12499,7 +12499,7 @@ if.then5.i.i.i234: ; preds = %if.then230 br i1 %cmp10.i.i.i243, label %ZSTD_cwksp_reserve_aligned.exit248, label %do.end20.i.i.i244 do.end20.i.i.i244: ; preds = %if.then5.i.i.i234 - store ptr %add.ptr.i.i.i242, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i242, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i242, ptr %19, align 8 %cmp24.not.i.i.i246 = icmp eq i64 %and2.i.i.i.i241, 0 br i1 %cmp24.not.i.i.i246, label %if.end29.i.i.i233, label %if.then25.i.i.i247 @@ -12509,7 +12509,7 @@ if.then25.i.i.i247: ; preds = %do.end20.i.i.i244 br label %if.end29.i.i.i233 if.end29.i.i.i233: ; preds = %if.then25.i.i.i247, %do.end20.i.i.i244 - store i32 2, ptr %phase.i200616, align 8 + store i32 2, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i215 ZSTD_cwksp_internal_advance_phase.exit.i.i215: ; preds = %if.end29.i.i.i233, %if.then230 @@ -12525,7 +12525,7 @@ if.end.i.i217: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i222, label %do.end2.i.i.i229, label %if.end.i.i.i223 do.end2.i.i.i229: ; preds = %if.end.i.i217 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_aligned.exit248 if.end.i.i.i223: ; preds = %if.end.i.i217 @@ -12551,7 +12551,7 @@ ZSTD_cwksp_reserve_aligned.exit248: ; preds = %if.then5.i.i.i234, %mul239 = mul i64 %call52, 12 %add.i.i249 = add i64 %mul239, 63 %and.i.i250 = and i64 %add.i.i249, -64 - %50 = load i32, ptr %phase.i200616, align 8 + %50 = load i32, ptr %phase.i200615, align 8 %cmp.i.i.i252 = icmp ult i32 %50, 2 br i1 %cmp.i.i.i252, label %if.then.i.i.i269, label %ZSTD_cwksp_internal_advance_phase.exit.i.i253 @@ -12560,7 +12560,7 @@ if.then.i.i.i269: ; preds = %ZSTD_cwksp_reserve_ br i1 %cmp3.i.i.i270, label %if.then5.i.i.i272, label %if.end29.i.i.i271 if.then5.i.i.i272: ; preds = %if.then.i.i.i269 - %51 = load ptr, ptr %objectEnd.i196610, align 8 + %51 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i274 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %51, ptr %tableValidEnd.i.i.i274, align 8 %ws.val.i.i.i275 = load ptr, ptr %18, align 8 @@ -12577,7 +12577,7 @@ if.then5.i.i.i272: ; preds = %if.then.i.i.i269 br i1 %cmp10.i.i.i281, label %ZSTD_cwksp_reserve_aligned.exit286, label %do.end20.i.i.i282 do.end20.i.i.i282: ; preds = %if.then5.i.i.i272 - store ptr %add.ptr.i.i.i280, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i280, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i280, ptr %19, align 8 %cmp24.not.i.i.i284 = icmp eq i64 %and2.i.i.i.i279, 0 br i1 %cmp24.not.i.i.i284, label %if.end29.i.i.i271, label %if.then25.i.i.i285 @@ -12587,7 +12587,7 @@ if.then25.i.i.i285: ; preds = %do.end20.i.i.i282 br label %if.end29.i.i.i271 if.end29.i.i.i271: ; preds = %if.then25.i.i.i285, %do.end20.i.i.i282, %if.then.i.i.i269 - store i32 2, ptr %phase.i200616, align 8 + store i32 2, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i253 ZSTD_cwksp_internal_advance_phase.exit.i.i253: ; preds = %if.end29.i.i.i271, %ZSTD_cwksp_reserve_aligned.exit248 @@ -12604,7 +12604,7 @@ if.end.i.i255: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i260, label %do.end2.i.i.i267, label %if.end.i.i.i261 do.end2.i.i.i267: ; preds = %if.end.i.i255 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_aligned.exit286 if.end.i.i.i261: ; preds = %if.end.i.i255 @@ -12661,7 +12661,7 @@ if.then247: ; preds = %if.end244 br i1 %cmp.i.i.i294, label %if.then5.i.i.i314, label %ZSTD_cwksp_internal_advance_phase.exit.i.i295 if.then5.i.i.i314: ; preds = %if.then247 - %62 = load ptr, ptr %objectEnd.i196610, align 8 + %62 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i316 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %62, ptr %tableValidEnd.i.i.i316, align 8 %ws.val.i.i.i317 = load ptr, ptr %18, align 8 @@ -12678,7 +12678,7 @@ if.then5.i.i.i314: ; preds = %if.then247 br i1 %cmp10.i.i.i323, label %ZSTD_cwksp_reserve_aligned.exit328, label %do.end20.i.i.i324 do.end20.i.i.i324: ; preds = %if.then5.i.i.i314 - store ptr %add.ptr.i.i.i322, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i322, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i322, ptr %19, align 8 %cmp24.not.i.i.i326 = icmp eq i64 %and2.i.i.i.i321, 0 br i1 %cmp24.not.i.i.i326, label %if.end29.i.i.i313, label %if.then25.i.i.i327 @@ -12688,7 +12688,7 @@ if.then25.i.i.i327: ; preds = %do.end20.i.i.i324 br label %if.end29.i.i.i313 if.end29.i.i.i313: ; preds = %if.then25.i.i.i327, %do.end20.i.i.i324 - store i32 2, ptr %phase.i200616, align 8 + store i32 2, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i295 ZSTD_cwksp_internal_advance_phase.exit.i.i295: ; preds = %if.end29.i.i.i313, %if.then247 @@ -12705,7 +12705,7 @@ if.end.i.i297: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i302, label %do.end2.i.i.i309, label %if.end.i.i.i303 do.end2.i.i.i309: ; preds = %if.end.i.i297 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_aligned.exit328 if.end.i.i.i303: ; preds = %if.end.i.i297 @@ -12739,7 +12739,7 @@ if.then.i.i.i347: ; preds = %if.end251 br i1 %cmp3.i.i.i348, label %if.then5.i.i.i350, label %if.end29.i.i.i349 if.then5.i.i.i350: ; preds = %if.then.i.i.i347 - %72 = load ptr, ptr %objectEnd.i196610, align 8 + %72 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i352 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %72, ptr %tableValidEnd.i.i.i352, align 8 %ws.val.i.i.i353 = load ptr, ptr %18, align 8 @@ -12756,7 +12756,7 @@ if.then5.i.i.i350: ; preds = %if.then.i.i.i347 br i1 %cmp10.i.i.i359, label %if.then5.i.i.i385, label %do.end20.i.i.i360 do.end20.i.i.i360: ; preds = %if.then5.i.i.i350 - store ptr %add.ptr.i.i.i358, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i358, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i358, ptr %19, align 8 %cmp24.not.i.i.i362 = icmp eq i64 %and2.i.i.i.i357, 0 br i1 %cmp24.not.i.i.i362, label %if.end29.i.i.i349, label %if.then25.i.i.i363 @@ -12766,11 +12766,11 @@ if.then25.i.i.i363: ; preds = %do.end20.i.i.i360 br label %if.end29.i.i.i349 if.end29.i.i.i349: ; preds = %if.then25.i.i.i363, %do.end20.i.i.i360, %if.then.i.i.i347 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %if.end.i.i333 if.end.i.i333: ; preds = %if.end251, %if.end29.i.i.i349 - %76 = phi i32 [ %71, %if.end251 ], [ 3, %if.end29.i.i.i349 ] + %76 = phi i32 [ 3, %if.end29.i.i.i349 ], [ %71, %if.end251 ] %77 = load ptr, ptr %20, align 8 %idx.neg.i.i.i335 = sub nuw i64 -32, %.cond27 %add.ptr.i4.i.i336 = getelementptr inbounds i8, ptr %77, i64 %idx.neg.i.i.i335 @@ -12779,7 +12779,7 @@ if.end.i.i333: ; preds = %if.end251, %if.end2 br i1 %cmp.i6.i.i338, label %do.end2.i.i.i345, label %if.end.i.i.i339 do.end2.i.i.i345: ; preds = %if.end.i.i333 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit.thread if.end.i.i.i339: ; preds = %if.end.i.i333 @@ -12798,14 +12798,14 @@ if.end6.i.i.i342: ; preds = %if.then4.i.i.i344, ZSTD_cwksp_reserve_buffer.exit.thread: ; preds = %do.end2.i.i.i345, %if.end6.i.i.i342 %retval.0.i.i343.ph = phi ptr [ %add.ptr.i4.i.i336, %if.end6.i.i.i342 ], [ null, %do.end2.i.i.i345 ] - %litStart620 = getelementptr inbounds i8, ptr %zc, i64 968 - store ptr %retval.0.i.i343.ph, ptr %litStart620, align 8 - %maxNbLit621 = getelementptr inbounds i8, ptr %zc, i64 1016 - store i64 %.cond27, ptr %maxNbLit621, align 8 - %bufferedPolicy622 = getelementptr inbounds i8, ptr %zc, i64 3528 - store i32 %zbuff, ptr %bufferedPolicy622, align 8 - %inBuffSize623 = getelementptr inbounds i8, ptr %zc, i64 3544 - store i64 %cond50, ptr %inBuffSize623, align 8 + %litStart619 = getelementptr inbounds i8, ptr %zc, i64 968 + store ptr %retval.0.i.i343.ph, ptr %litStart619, align 8 + %maxNbLit620 = getelementptr inbounds i8, ptr %zc, i64 1016 + store i64 %.cond27, ptr %maxNbLit620, align 8 + %bufferedPolicy621 = getelementptr inbounds i8, ptr %zc, i64 3528 + store i32 %zbuff, ptr %bufferedPolicy621, align 8 + %inBuffSize622 = getelementptr inbounds i8, ptr %zc, i64 3544 + store i64 %cond50, ptr %inBuffSize622, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i366 if.then5.i.i.i385: ; preds = %if.then5.i.i.i350 @@ -12817,7 +12817,7 @@ if.then5.i.i.i385: ; preds = %if.then5.i.i.i350 store i32 %zbuff, ptr %bufferedPolicy, align 8 %inBuffSize = getelementptr inbounds i8, ptr %zc, i64 3544 store i64 %cond50, ptr %inBuffSize, align 8 - %80 = load ptr, ptr %objectEnd.i196610, align 8 + %80 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i387 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %80, ptr %tableValidEnd.i.i.i387, align 8 %ws.val.i.i.i388 = load ptr, ptr %18, align 8 @@ -12834,7 +12834,7 @@ if.then5.i.i.i385: ; preds = %if.then5.i.i.i350 br i1 %cmp10.i.i.i394, label %if.then5.i.i.i421, label %do.end20.i.i.i395 do.end20.i.i.i395: ; preds = %if.then5.i.i.i385 - store ptr %add.ptr.i.i.i393, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i393, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i393, ptr %19, align 8 %cmp24.not.i.i.i397 = icmp eq i64 %and2.i.i.i.i392, 0 br i1 %cmp24.not.i.i.i397, label %if.end29.i.i.i384, label %if.then25.i.i.i398 @@ -12844,7 +12844,7 @@ if.then25.i.i.i398: ; preds = %do.end20.i.i.i395 br label %if.end29.i.i.i384 if.end29.i.i.i384: ; preds = %if.then25.i.i.i398, %do.end20.i.i.i395 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i366 ZSTD_cwksp_internal_advance_phase.exit.i.i366: ; preds = %ZSTD_cwksp_reserve_buffer.exit.thread, %if.end29.i.i.i384 @@ -12861,7 +12861,7 @@ if.end.i.i368: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i373, label %do.end2.i.i.i380, label %if.end.i.i.i374 do.end2.i.i.i380: ; preds = %if.end.i.i368 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit399.thread if.end.i.i.i374: ; preds = %if.end.i.i368 @@ -12880,10 +12880,10 @@ if.end6.i.i.i377: ; preds = %if.then4.i.i.i379, ZSTD_cwksp_reserve_buffer.exit399.thread: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i366, %do.end2.i.i.i380, %if.end6.i.i.i377 %retval.0.i.i378.ph = phi ptr [ %add.ptr.i4.i.i371, %if.end6.i.i.i377 ], [ null, %do.end2.i.i.i380 ], [ null, %ZSTD_cwksp_internal_advance_phase.exit.i.i366 ] - %inBuff626 = getelementptr inbounds i8, ptr %zc, i64 3536 - store ptr %retval.0.i.i378.ph, ptr %inBuff626, align 8 - %outBuffSize627 = getelementptr inbounds i8, ptr %zc, i64 3584 - store i64 %cond42581, ptr %outBuffSize627, align 8 + %inBuff625 = getelementptr inbounds i8, ptr %zc, i64 3536 + store ptr %retval.0.i.i378.ph, ptr %inBuff625, align 8 + %outBuffSize626 = getelementptr inbounds i8, ptr %zc, i64 3584 + store i64 %cond42581, ptr %outBuffSize626, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i402 if.then5.i.i.i421: ; preds = %if.then5.i.i.i385 @@ -12891,7 +12891,7 @@ if.then5.i.i.i421: ; preds = %if.then5.i.i.i385 store ptr null, ptr %inBuff, align 8 %outBuffSize = getelementptr inbounds i8, ptr %zc, i64 3584 store i64 %cond42581, ptr %outBuffSize, align 8 - %88 = load ptr, ptr %objectEnd.i196610, align 8 + %88 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i423 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %88, ptr %tableValidEnd.i.i.i423, align 8 %ws.val.i.i.i424 = load ptr, ptr %18, align 8 @@ -12908,7 +12908,7 @@ if.then5.i.i.i421: ; preds = %if.then5.i.i.i385 br i1 %cmp10.i.i.i430, label %ZSTD_cwksp_reserve_buffer.exit435, label %do.end20.i.i.i431 do.end20.i.i.i431: ; preds = %if.then5.i.i.i421 - store ptr %add.ptr.i.i.i429, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i429, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i429, ptr %19, align 8 %cmp24.not.i.i.i433 = icmp eq i64 %and2.i.i.i.i428, 0 br i1 %cmp24.not.i.i.i433, label %if.end29.i.i.i420, label %if.then25.i.i.i434 @@ -12918,7 +12918,7 @@ if.then25.i.i.i434: ; preds = %do.end20.i.i.i431 br label %if.end29.i.i.i420 if.end29.i.i.i420: ; preds = %if.then25.i.i.i434, %do.end20.i.i.i431 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i402 ZSTD_cwksp_internal_advance_phase.exit.i.i402: ; preds = %ZSTD_cwksp_reserve_buffer.exit399.thread, %if.end29.i.i.i420 @@ -12935,7 +12935,7 @@ if.end.i.i404: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i409, label %do.end2.i.i.i416, label %if.end.i.i.i410 do.end2.i.i.i416: ; preds = %if.end.i.i404 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit435 if.end.i.i.i410: ; preds = %if.end.i.i404 @@ -12973,7 +12973,7 @@ if.then262: ; preds = %ZSTD_cwksp_reserve_ br i1 %cmp.i.i.i437, label %if.then5.i.i.i457, label %ZSTD_cwksp_internal_advance_phase.exit.i.i438 if.then5.i.i.i457: ; preds = %if.then262 - %100 = load ptr, ptr %objectEnd.i196610, align 8 + %100 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i459 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %100, ptr %tableValidEnd.i.i.i459, align 8 %ws.val.i.i.i460 = load ptr, ptr %18, align 8 @@ -12990,7 +12990,7 @@ if.then5.i.i.i457: ; preds = %if.then262 br i1 %cmp10.i.i.i466, label %ZSTD_cwksp_reserve_buffer.exit471, label %do.end20.i.i.i467 do.end20.i.i.i467: ; preds = %if.then5.i.i.i457 - store ptr %add.ptr.i.i.i465, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i465, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i465, ptr %19, align 8 %cmp24.not.i.i.i469 = icmp eq i64 %and2.i.i.i.i464, 0 br i1 %cmp24.not.i.i.i469, label %if.end29.i.i.i456, label %if.then25.i.i.i470 @@ -13000,7 +13000,7 @@ if.then25.i.i.i470: ; preds = %do.end20.i.i.i467 br label %if.end29.i.i.i456 if.end29.i.i.i456: ; preds = %if.then25.i.i.i470, %do.end20.i.i.i467 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i438 ZSTD_cwksp_internal_advance_phase.exit.i.i438: ; preds = %if.end29.i.i.i456, %if.then262 @@ -13012,7 +13012,7 @@ ZSTD_cwksp_internal_advance_phase.exit.i.i438: ; preds = %if.end29.i.i.i456, br i1 %cmp.i6.i.i445, label %do.end2.i.i.i452, label %if.end.i.i.i446 do.end2.i.i.i452: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i438 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit471 if.end.i.i.i446: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i438 @@ -13034,11 +13034,11 @@ ZSTD_cwksp_reserve_buffer.exit471: ; preds = %if.then5.i.i.i457, %bucketOffsets = getelementptr inbounds i8, ptr %zc, i64 1088 store ptr %retval.0.i.i450, ptr %bucketOffsets, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %retval.0.i.i450, i8 0, i64 %shl267, i1 false) - %.pre599 = load i32, ptr %phase.i200616, align 8 + %.pre598 = load i32, ptr %phase.i200615, align 8 br label %if.end272 if.end272: ; preds = %ZSTD_cwksp_reserve_buffer.exit471, %ZSTD_cwksp_reserve_buffer.exit435 - %107 = phi i32 [ %.pre599, %ZSTD_cwksp_reserve_buffer.exit471 ], [ %96, %ZSTD_cwksp_reserve_buffer.exit435 ] + %107 = phi i32 [ %.pre598, %ZSTD_cwksp_reserve_buffer.exit471 ], [ %96, %ZSTD_cwksp_reserve_buffer.exit435 ] %externSeqStore.i = getelementptr inbounds i8, ptr %zc, i64 3160 %maxNbSeq274 = getelementptr inbounds i8, ptr %zc, i64 1008 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %externSeqStore.i, i8 0, i64 40, i1 false) @@ -13051,7 +13051,7 @@ if.then.i.i.i490: ; preds = %if.end272 br i1 %cmp3.i.i.i491, label %if.then5.i.i.i493, label %if.end29.i.i.i492 if.then5.i.i.i493: ; preds = %if.then.i.i.i490 - %108 = load ptr, ptr %objectEnd.i196610, align 8 + %108 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i495 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %108, ptr %tableValidEnd.i.i.i495, align 8 %ws.val.i.i.i496 = load ptr, ptr %18, align 8 @@ -13068,7 +13068,7 @@ if.then5.i.i.i493: ; preds = %if.then.i.i.i490 br i1 %cmp10.i.i.i502, label %if.then5.i.i.i529, label %do.end20.i.i.i503 do.end20.i.i.i503: ; preds = %if.then5.i.i.i493 - store ptr %add.ptr.i.i.i501, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i501, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i501, ptr %19, align 8 %cmp24.not.i.i.i505 = icmp eq i64 %and2.i.i.i.i500, 0 br i1 %cmp24.not.i.i.i505, label %if.end29.i.i.i492, label %if.then25.i.i.i506 @@ -13078,7 +13078,7 @@ if.then25.i.i.i506: ; preds = %do.end20.i.i.i503 br label %if.end29.i.i.i492 if.end29.i.i.i492: ; preds = %if.then25.i.i.i506, %do.end20.i.i.i503, %if.then.i.i.i490 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i474 ZSTD_cwksp_internal_advance_phase.exit.i.i474: ; preds = %if.end29.i.i.i492, %if.end272 @@ -13094,7 +13094,7 @@ if.end.i.i476: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i481, label %do.end2.i.i.i488, label %if.end.i.i.i482 do.end2.i.i.i488: ; preds = %if.end.i.i476 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit507.thread if.end.i.i.i482: ; preds = %if.end.i.i476 @@ -13113,14 +13113,14 @@ if.end6.i.i.i485: ; preds = %if.then4.i.i.i487, ZSTD_cwksp_reserve_buffer.exit507.thread: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i474, %do.end2.i.i.i488, %if.end6.i.i.i485 %retval.0.i.i486.ph = phi ptr [ %add.ptr.i4.i.i479, %if.end6.i.i.i485 ], [ null, %do.end2.i.i.i488 ], [ null, %ZSTD_cwksp_internal_advance_phase.exit.i.i474 ] - %llCode630 = getelementptr inbounds i8, ptr %zc, i64 984 - store ptr %retval.0.i.i486.ph, ptr %llCode630, align 8 + %llCode629 = getelementptr inbounds i8, ptr %zc, i64 984 + store ptr %retval.0.i.i486.ph, ptr %llCode629, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i510 if.then5.i.i.i529: ; preds = %if.then5.i.i.i493 %llCode = getelementptr inbounds i8, ptr %zc, i64 984 store ptr null, ptr %llCode, align 8 - %115 = load ptr, ptr %objectEnd.i196610, align 8 + %115 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i531 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %115, ptr %tableValidEnd.i.i.i531, align 8 %ws.val.i.i.i532 = load ptr, ptr %18, align 8 @@ -13137,7 +13137,7 @@ if.then5.i.i.i529: ; preds = %if.then5.i.i.i493 br i1 %cmp10.i.i.i538, label %if.then5.i.i.i565, label %do.end20.i.i.i539 do.end20.i.i.i539: ; preds = %if.then5.i.i.i529 - store ptr %add.ptr.i.i.i537, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i537, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i537, ptr %19, align 8 %cmp24.not.i.i.i541 = icmp eq i64 %and2.i.i.i.i536, 0 br i1 %cmp24.not.i.i.i541, label %if.end29.i.i.i528, label %if.then25.i.i.i542 @@ -13147,7 +13147,7 @@ if.then25.i.i.i542: ; preds = %do.end20.i.i.i539 br label %if.end29.i.i.i528 if.end29.i.i.i528: ; preds = %if.then25.i.i.i542, %do.end20.i.i.i539 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i510 ZSTD_cwksp_internal_advance_phase.exit.i.i510: ; preds = %ZSTD_cwksp_reserve_buffer.exit507.thread, %if.end29.i.i.i528 @@ -13163,7 +13163,7 @@ if.end.i.i512: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i517, label %do.end2.i.i.i524, label %if.end.i.i.i518 do.end2.i.i.i524: ; preds = %if.end.i.i512 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit543.thread if.end.i.i.i518: ; preds = %if.end.i.i512 @@ -13182,14 +13182,14 @@ if.end6.i.i.i521: ; preds = %if.then4.i.i.i523, ZSTD_cwksp_reserve_buffer.exit543.thread: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i510, %do.end2.i.i.i524, %if.end6.i.i.i521 %retval.0.i.i522.ph = phi ptr [ %add.ptr.i4.i.i515, %if.end6.i.i.i521 ], [ null, %do.end2.i.i.i524 ], [ null, %ZSTD_cwksp_internal_advance_phase.exit.i.i510 ] - %mlCode633 = getelementptr inbounds i8, ptr %zc, i64 992 - store ptr %retval.0.i.i522.ph, ptr %mlCode633, align 8 + %mlCode632 = getelementptr inbounds i8, ptr %zc, i64 992 + store ptr %retval.0.i.i522.ph, ptr %mlCode632, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i546 if.then5.i.i.i565: ; preds = %if.then5.i.i.i529 %mlCode = getelementptr inbounds i8, ptr %zc, i64 992 store ptr null, ptr %mlCode, align 8 - %122 = load ptr, ptr %objectEnd.i196610, align 8 + %122 = load ptr, ptr %objectEnd.i196609, align 8 %tableValidEnd.i.i.i567 = getelementptr inbounds i8, ptr %zc, i64 712 store ptr %122, ptr %tableValidEnd.i.i.i567, align 8 %ws.val.i.i.i568 = load ptr, ptr %18, align 8 @@ -13206,7 +13206,7 @@ if.then5.i.i.i565: ; preds = %if.then5.i.i.i529 br i1 %cmp10.i.i.i574, label %ZSTD_cwksp_reserve_buffer.exit579, label %do.end20.i.i.i575 do.end20.i.i.i575: ; preds = %if.then5.i.i.i565 - store ptr %add.ptr.i.i.i573, ptr %objectEnd.i196610, align 8 + store ptr %add.ptr.i.i.i573, ptr %objectEnd.i196609, align 8 store ptr %add.ptr.i.i.i573, ptr %19, align 8 %cmp24.not.i.i.i577 = icmp eq i64 %and2.i.i.i.i572, 0 br i1 %cmp24.not.i.i.i577, label %if.end29.i.i.i564, label %if.then25.i.i.i578 @@ -13216,7 +13216,7 @@ if.then25.i.i.i578: ; preds = %do.end20.i.i.i575 br label %if.end29.i.i.i564 if.end29.i.i.i564: ; preds = %if.then25.i.i.i578, %do.end20.i.i.i575 - store i32 3, ptr %phase.i200616, align 8 + store i32 3, ptr %phase.i200615, align 8 br label %ZSTD_cwksp_internal_advance_phase.exit.i.i546 ZSTD_cwksp_internal_advance_phase.exit.i.i546: ; preds = %ZSTD_cwksp_reserve_buffer.exit543.thread, %if.end29.i.i.i564 @@ -13232,7 +13232,7 @@ if.end.i.i548: ; preds = %ZSTD_cwksp_internal br i1 %cmp.i6.i.i553, label %do.end2.i.i.i560, label %if.end.i.i.i554 do.end2.i.i.i560: ; preds = %if.end.i.i548 - store i8 1, ptr %allocFailed.i199614, align 8 + store i8 1, ptr %allocFailed.i199613, align 8 br label %ZSTD_cwksp_reserve_buffer.exit579 if.end.i.i.i554: ; preds = %if.end.i.i548 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..9f7aca5dc04 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/115305 # Please rebase manually # git fetch origin